云服务器内容精选

  • 使用说明 任何实体均可与xDM-F元模型建立关系。 单个数据模型(包括数据实体、关系实体和接口模型)下的属性数量不允许超过1664个。如果应用的数据库类型为mysql,则单个数据模型(包括数据实体、关系实体和接口模型)下,其属性总长度不允许超过16000个字符。 创建数据模型时,该模型名称不能和XDM应用中的模型名称相同。 如果数据实体与抽象模型建立关系实体,该抽象模型的所有子实体模型均建立或继承了关系。 如果数据实体与存在扩展子模型的数据实体建立关系实体,该数据实体的所有扩展子模型均继承关系实体。 如果数据实体与接口模型建立关系实体,引用该接口模型的所有数据实体均建立了关系(接口模型不能直接作为父模型被其他实体模型继承,需先在功能列表中添加)。
  • 接口模型 xDM-F内置了多种功能,在创建数据实体/关系实体时,不仅自具备从xDM-F继承的基本功能能力,还可根据实际业务需求勾选xDM-F提供的可选功能,每个功能会继承一个或者多个属性。每勾选一个功能,该实体会自动生成相应功能继承的一个或者多个属性。当xDM-F内置的功能无法满足您实际业务需求时,可通过接口模型进行定义。自定义的接口模型将作为自定义功能,在创建数据实体时,被数据实体通过勾选自定义功能的方式被继承和使用。 在已经确定的应用数据模型结构上,需要对具有相似功能、相似结构、相同属性的数据模型进行归一化处理,可通过接口模型定义这些相似功能、相似结构和相同属性。为这些数据模型提供了标准接口,降低参数的重复性,方便管理模型属性。 例如机械产品中,各部件间有一部分是通过销、铆钉、螺栓等常用标准件直接连接,有一部分是通过联轴器、减速器等部件间接连接。尽管这些常用的零部件大多都已经实现系列化或标准化,但这些零部件易损坏,产品在多次更换过程中需要反复操作和记录。您可以分别创建包含这些具有相似功能的零部件接口模型,然后在创建数据实体时,勾选对应接口模型即可继承该接口模型的属性和关系。
  • 数据实体 实体指现实世界中客观存在的并可以相互区分的对象或事物,可以是具体的人、事或物,也可以是抽象的概念或联系。这些独立事物个体的特性称为实体属性,每个实体都具有多个属性。在xDM-F中,这些独立的事物个体都可以看做是数据实体。数据实体是xDM-F原子接口的承载体之一,用于定义数据对象的基本信息、业务属性以及配置所需的功能(如基础数据服务、树形结构、生命周期管理等)。 数据实体按元模型类型的维度分为如表1所示类型。 表1 元模型实体 类型 说明 独立实体 又称“单实体”,适用于关系上不依附、不隶属,单独存在的业务对象。例如,企业的组织架构、部门、机房等。 创建数据实体时,“父模型”为“BusinessObject”或“BasicObject”的数据实体均为单实体。 多版本实体 又称“Master-Version(M-V)模型实体”,适用于只对同一业务对象进行局部的改进,或者需要对业务对象的历史演变过程进行记录和维护。例如,研发过程的技术文档、部件等业务对象会不断修改,需要能够随时查看历史版本数据及修改记录。 创建数据实体时,“父模型”为“VersionObject”的数据实体均为M-V模型实体。
  • 关系实体 关系实体用于描述两个或更多数据实体相互如何关联,是xDM-F原子接口的承载体之一。 基于xDM-F支持的数据关系,提供如下关系类型: 表3 元模型关系 类型 说明 1:N组合关系 又称“参考关系”,主要用于为对象之间建立1:N或主外键关系,可分为: 组合关系:1:N组合关系,即整体和部分的关系。例如公司和部门,如果公司不存在了,部门也不存在了。 非组合关系:1:N聚合关系,即普通的1:N参考关系或主外键关系。例如部门和员工,一个部门有多个员工。 在创建属性时,将属性的“类型”定义为“参考对象”,则属性对应的数据模型具有参考关系。 适用于传统主外键数据的关联。例如,一个部门可以有多个员工,它们之间为一对多聚合关系;公司是部门的父项,部门随着公司而存在,它们之间为一对多组合关系。 说明: 仅支持“模型类型”为“实体模型”的单实体定义组合关系的参考对象属性,“模型类型”为“抽象模型”的单实体、M-V模型实体和关系实体仅支持定义非组合关系的参考对象属性。 1:N聚合关系 M:N关系 即多对多关系,用于为数据实体/接口模型建立M:N关系。 创建关系实体时,“关系类型”为“多对多”的关系实体均具有此关系能力。可为应用运行态提供:创建/删除关系实体实例,查询关系实体,获取关联实体/被关联实体清单等操作。 适用于为不同数据实体/接口模型建立多对多关系。例如,在汽车电器相关的零件开发中,工程师和零件开发为多对多关系。一个工程师可进行多个零件开发,一个零件可由多个工程师进行开发。 M:xN关系 又称“单边不确定关系”,用于为一边不确定的数据实体/接口模型建立M:N关系,不确定的数据实体或接口模型(目标端)默认为基类抽象模型“basicObject”。 创建关系实体时,“关系类型”为“单边不确定”的关系实体均具有此关系能力。可为应用运行态提供:创建/删除关系实体实例,查询关系实体,查询目标端对象等操作。 适用于基础数据与业务数据的关联。例如,标签数据与业务数据的关联。标签可给任何对象打标签,在创建实例时确定打标签的目标端对象。 UsageLink使用关系 又称“多叉树关系”,适用于实现复杂的数据结构的存储,高效地查找数据,方便管理节点数据的场景。例如,部件和部件之间的使用和被使用关系。一辆汽车有四个轮子,汽车和轮胎都是部件,创建一个关系实体承载汽车和轮胎的使用关系,并在关系实体上定义一个“使用数量”属性用于标识一辆汽车使用了四个轮胎。 自循环树形关系 又称“树形结构”,是数据对象之间存在着“一对多”的树形关系的数据结构,适用于数据间上下级的关联。例如,企业的组织结构、软件应用的结构、工作计划、项目管理等。 创建数据实体/关系实体时,通过勾选xDM-F内置的“树形结构”、“分类管理”、“文件夹管理”等能力实现。
  • 执行结果 索引的执行结果主要分为:初始态、执行中、待创建、成功和失败。 表1 执行结果 名称 说明 初始态 表示索引定义完成,待系统调用执行接口,将索引添加至应用的数据库中。 执行中 表示索引规则正在应用的数据库中执行,待返回结果。 待创建 表示索引规则未提交/应用上不存在此模型/索引字段在表中不存在,请联系运维人员处理。 成功 表示索引在应用的数据库中创建成功。 失败 表示索引在应用的数据库中创建失败,请联系运维人员处理。
  • 响应参数 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 最小长度:8 最大长度:36 error_msg String 错误描述 最小长度:2 最大长度:512
  • 请求示例 /v1/111/applications/222/uni-search/nlp-models { "name" : "pangu_38b", "detail" : "pangu_38b", "type" : "nlp", "endpoint" : "http://10.0.0.169:31010", "extend_config" : { "deployment_id" : "123", "iam_info" : { "iam_enabled" : false, "agency_enabled" : false } } }
  • 常见问题 模型文件目录下不能出现dockerfile文件; “查看构建日志”中显示“Not only a Dockerfile in your OBS path, please make sure, The dockerfile list”,表示dockerfile文件目录有问题,模型文件目录下不能出现dockerfile文件,需要去掉模型文件目录下存在dockerfile文件。 图2 构建日志:dockerfile文件目录有问题 pip软件包版本不匹配,需要修改为日志中打印的存在的版本。 图3 pip版本不匹配 构建日志中出现报错:“exec /usr/bin/sh: exec format error”。 这种报错一般是因为所用镜像系统引擎和构建镜像的系统引擎不一致引起的,例如使用的是x86的镜像却标记的是arm的系统架构。 可以通过查看模型详情看到配置的系统运行架构。基础镜像的系统架构详情可以参考推理基础镜像列表。
  • 问题定位和处理 创建模型失败有两种场景:创建模型时直接报错或者是调用API报错和创建模型任务下发成功,但最终模型创建失败。 创建模型时直接报错或者是调用API报错。一般都是输入参数不合法导致的。您可以根据提示信息进行排查修改即可。 创建模型任务下发成功,但最终模型创建失败。需要从以下几个方面进行排查: 在模型详情页面,查看“事件”页签中的事件信息。根据事件信息分析模型失败原因,进行处理。 如果模型状态为“构建失败”,可以在模型详情页面,查看“事件”页签中的“查看构建日志”。构建日志中有对应的构建镜像失败的详细原因,根据构建失败的原因进行排查处理。 图1 查看构建日志
  • 在线编辑模型 平台提供模型编辑器,在模型详情页单击“在线编辑”,进入该模型的在线编辑页面。如图,界面左侧显示的是该模型包内的所有文件,以目录树的形式展示,支持编程语言的渲染,支持MarkDown文件的实时双屏预览。 图10 在线编辑 新建文件夹:选中文件夹并单击,用户将新建一个该文件夹的子文件夹。选中工程文件并单击,将会新建一个新的文件夹,与用户已有的文件夹同级。 新建文件:单击,或右键文件夹,单击“新建文件”。 修改文件:单击,用户可对文件名称进行修改。 删除文件:单击,用户可删除文件。 文件(夹)名称不能为空,且只能包含数字、英文、中文、点、下划线和中划线。 删除后不可恢复,请谨慎操作。 配置界面:单击,按照喜好配置界面基本属性,查看快捷键说明。 图11 配置界面 删除当前模型文件:单击“删除”,删除当前页面的模型文件。删除后不可恢复,请谨慎操作。 保存模型文件:单击“保存”,保存当前模型。模型更新完毕请及时保存。
  • 新建版本 Octopus支持用户对已有的模型进行版本更新,步骤如下: 单击模型管理名称进入详情界面,单击“新建版本”或者模型列表页单击“新建版本”。 输入模型版本描述。 图9 模型版本描述 模型版本描述,不得超过256个字符。 关联已有算法:可选择关联的算法。 上传本地模型文件。 将本地模型文件夹拖入框内或单击选择本地模型文件夹 单击“上传”,页面提示“模型文件已加入上传队列中,等待上传”。 上传中刷新或关闭浏览器会导致文件上传异常,请谨慎操作!
  • 智驾模型列表相关操作 智驾模型列表可以进行以下操作。 表1 智驾模型列表相关操作 任务 操作步骤 编辑模型 单击操作栏中的“编辑”,编辑智驾模型。仅支持修改描述信息。初始模型不支持编辑。 删除模型 单击操作栏中的“删除”,删除智驾模型。初始模型不支持删除。 查看模型详情 单击模型名称,查看模型详情。 在模型详情页,查看模型基本信息和模型版本列表。可以对模型版本进行“模型微调”、“创建在线服务”和“删除”操作。 说明: 初始模型不支持“创建在线服务”和“删除”。 只有“创建成功”的模型版本支持“模型微调”和“创建在线服务”。 查询模型 在搜索输入框中输入搜索条件,按回车键即可查询。
  • 如何创建包 在工程根节点下面建包,需要单击工程名称菜单项的“新建包”按钮。 在包目录下面建子包目录节点,则选中包目录节点,在菜单中使用“新建包”功能即可。 选择要增加包的包节点,单击后面的选项按钮,选择“新建包”。 建包需要创建包的角色权限,如果看不到新增包的菜单项,需要申请建包对应的角色权限,权限介绍可参考权限管理,申请对应的角色。 在弹出的窗口中输入新增包的名称后单击“保存”。 父主题: 模型管理
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 1 2 3 4 5 from modelarts.session import Session from modelarts.model import Model from modelarts.config.model_config import ServiceConfig, Params, Dependencies, Packages session = Session() 方式1:初始化已存在模型 1 model_instance = Model(session, model_id="your_model_id") 方式2:创建模型 基于预置镜像和OBS路径创建模型 1 2 3 4 5 6 7 8 9 10 11 12 13 model_location = "/your_obs_bucket/model_path" # 修改为真实的模型文件OBS路径 execution_code = "/your_obs_bucket/model_path/customize_service.py" runtime = "python3.7" model_instance = Model( session, model_name="input_model_name", # (可选)模型名称 model_version="1.0.0", # (可选)模型版本 source_location=model_location, # 模型文件所在的OBS路径,如:"/your_obs_bucket/model_path" model_type="PyTorch", # 模型类型 execution_code=execution_code, # (可选)存放执行脚本的OBS路径,如:"/your_obs_bucket/model_path/customize_service.py" runtime=runtime # (可选)支持的运行环境 ) dependencies会覆盖样例中config.json的相关内容,上述无需使用dependencies,dependencies格式样例可参考下方格式定义。 dependencies参数组的定义格式 SDK提供了Dependencies类对其定义,dependencies为list,list中的元组对象是Dependencies。 定义代码如下: 1 2 3 4 5 6 dependencies = [] dependency1 = Dependencies( installer="pip", # 安装方式,目前支持pip packages=packages # 依赖包集合, 定义格式参考下文关于packages的定义 ) dependencies.append(dependency1) package参数组的定义格式 SDK提供了Packages类对其定义,packages为list,list中的元组对象是Packages。 定义代码如下: 1 2 3 4 5 6 7 packages = [] package1 = Packages( package_name="package_name", # 包名 package_version="version", # 包版本号 restraint="EXACT" ) packages.append(package1) dependencies参数组的创建样例: dependencies = [] packages = [{ "package_name": "numpy", "package_version": "1.15.0", "restraint": "EXACT" }, { "package_name": "h5py", "package_version": "2.8.0", "restraint": "EXACT" }] dependency = Dependencies(installer="pip", packages=packages) dependencies.append(dependency) 基于 自定义镜像 创建模型 适用于推理服务的脚本已经内置在自定义镜像中,镜像启动时会自动拉起服务的场景。 from modelarts.session import Session from modelarts.model import Model session = Session() image_path = "custom_image_path" # 自定义镜像的swr路径 model_instance = Model( session, model_name="your_model_name", # 模型名称 model_version="0.1.0", # 模型版本 source_location="image_path", # 模型文件路径 model_type="Image" # 模型类型 )
  • 在线编辑模型 平台提供模型编辑器,在模型详情页,“版本管理”模块的“模型编辑”栏,单击“模型编辑”,进入该模型的在线编辑页面。如图,界面左侧显示的是该模型包内的所有文件,以目录树的形式展示,支持编程语言的渲染,支持MarkDown文件的实时双屏预览。 图10 在线编辑 新建文件夹:选中文件夹并单击,用户将新建一个该文件夹的子文件夹。选中工程文件并单击,将会新建一个新的文件夹,与用户已有的文件夹同级。 新建文件:单击,或右键文件夹,单击“新建文件”。 修改文件:单击,用户可对文件名称进行修改。 删除文件:单击,用户可删除文件。 文件(夹)名称不能为空,且只能包含数字、英文、中文、点、下划线和中划线。 删除后不可恢复,请谨慎操作。 配置界面:单击,按照喜好配置界面基本属性,查看快捷键说明。 图11 配置界面 删除当前模型文件:单击“删除”,删除当前页面的模型文件。删除后不可恢复,请谨慎操作。 保存模型文件:单击“保存”,保存当前模型。模型更新完毕请及时保存。