导入模型
导入模型功能包括:
- 初始化已存在的模型,根据模型ID生成模型对象。
- 创建模型。模型对象的属性,请参见查询模型详情。
示例模型文件
以PyTorch为例,编写模型文件。PyTorch模型包结构可参考模型包规范介绍。
OBS桶/目录名 ├── resnet │ ├── model 必选:固定子目录名称,用于放置模型相关文件 │ │ ├──<<自定义Python包>> 可选:用户自有的Python包,在模型推理代码中可以直接引用 │ │ ├──mnist_mlp.pt 必选,pytorch模型保存文件,保存为“state_dict”,存有权重变量等信息。 │ │ ├──config.json 必选:模型配置文件,文件名称固定为config.json,只允许放置一个 │ │ ├──customize_service.py 必选:模型推理代码,文件名称固定为customize_service.py,只允许放置一个,customize_service.py依赖的文件可以直接放model目录下
示例代码
在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:初始化已存在模型
1model_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)
- dependencies参数组的定义格式
- 基于自定义镜像创建模型
适用于推理服务的脚本已经内置在自定义镜像中,镜像启动时会自动拉起服务的场景。
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" # 模型类型 )
- 基于预置镜像和OBS路径创建模型
参数说明
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
session | 是 | Object | 会话对象,初始化方法参考Session鉴权。 |
model_id | 是 | String | 模型ID。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
session | 是 | Object | 会话对象,初始化方法见Session鉴权。 |
model_name | 否 | String | 模型名称,名称只能字母,中文开头,为字母、数字、下划线、中文或者中划线组成的合法字符,支持1-64个字符。如果未输入该参数,系统会自动生成模型name。 |
model_version | 是 | String | 模型版本,格式需为“数值.数值.数值”,其中数值为1-2位正整数。版本不可以出现以0开头的版本号形式,如“01.01.01”等。 |
publish | 否 | Bool | 是否发布模型。可选值:
|
source_location_type | 否 | String | 模型位置类型。可选值:
|
source_location | 是 | String | 模型文件所在路径,指定到模型文件的父目录。
|
environment | 否 | Environment实例 | 描述模型正常运行需要的环境,如使用的python版本、tensorflow版本等。 Environment实例的示例请参见示例代码。 |
source_job_id | 否 | String | 来源训练作业的ID,模型是从训练作业产生的可填写,用于溯源;如模型是从第三方元模型导入,则为空,默认值为空。 |
source_job_version | 否 | String | 来源训练作业的版本,模型是从训练作业产生的可填写,用于溯源;如模型是从第三方元模型导入,则为空,默认值为空。 |
source_type | 否 | String | 模型来源的类型,当前仅可取值auto,用于区分通过自动学习部署过来的模型(不提供模型下载功能);用户通过训练作业部署的模型不设置此值。默认值为空。 |
model_type | 是 | String | 模型类型,取值为:TensorFlow/MXNet/Spark_MLlib/Scikit_Learn/XGBoost/MindSpore/Image/PyTorch。 |
model_algorithm | 否 | String | 模型算法,表示模型的算法实现类型,如果已在模型配置文件中配置,则可不填。如:predict_analysis、object_detection 、image_classification。 |
description | 否 | String | 模型描述信息,不超过100个字符,且不能包含特殊字符!<>=&’”。 |
execution_code | 否 | String | 存放执行脚本的OBS路径,如果模型没有输出“customize_service.py”则需要通过该参数指定。推理脚本必须放于模型所在路径(请参见“source_location”参数)的model目录下,名称固定为:“customize_service.py”。 |
runtime | 否 | String | 支持的运行环境。如果使用了model_type参数,则需要填该参数。不同引擎对应的runtime可参见支持的常用引擎及其Runtime。 |
input_params | 否 | params结构数组 | 模型推理输入参数列表,默认为空。如果已在模型配置文件中配置apis信息时,则可不填,后台自动从配置文件的apis字段中读取输入参数信息。 |
output_params | 否 | params结构数组 | 模型推理输出参数列表,默认为空。如果已在模型配置文件中配置apis信息时,则可不填,后台自动从配置文件的apis字段中读取输出参数信息。 |
dependencies | 否 | dependency结构数组 | 运行代码及模型需安装的依赖包,默认为空。如果已在模型配置文件中配置dependencies信息时,则可不填,后台自动从配置文件的dependencies字段中读取需要安装的依赖包。 |
apis | 否 | String | 模型提供的推理接口列表,默认为空。如果已在模型配置文件中配置apis信息时,则可不填,后台自动从配置文件中的apis字段读取所配置的推理接口信息。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
url | 是 | String | 模型推理接口的请求路径。 |
param_name | 是 | String | 参数名,不超过64个字符。 |
param_type | 是 | String | JSON Schema基本参数类型,有string、object、array、boolean、number、integer。 |
min | 否 | Double | 当param_type为int或float时,可选填,默认为空。 |
max | 否 | Double | 当param_type为int或float时,可选填,默认为空。 |
param_desc | 否 | String | 参数描述,不超过100个字符,默认为空。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
installer | 是 | String | 安装方式,当前只支持“pip”。 |
packages | 是 | package结构数组 | 依赖包集合。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
package_name | 是 | String | 依赖包名称。 |
package_version | 否 | String | 依赖包版本。 |
restraint | 否 | String | 版本过滤条件,当且仅当package_version存在时必填。取值为:
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
model_instance | 是 | Model对象 | 模型对象,可以调用本章节模型管理的所有接口。 |

1 2 3 4 5 6 7 8 9 10 11 | from modelarts.session import Session from modelarts.model import Model session = Session() model_instance = Model(session, model_name="digit_recognition", model_version="1.0.0", source_location=model_location, model_type="MXNet", model_algorithm="image_classification" ) |

