AI开发平台MODELARTS-导入模型:示例代码

时间:2024-09-07 09:06:07

示例代码

在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"                         # 模型类型
                            )
support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0194.html