模型算子¶
模型算子用于在智能任务流产品中实现模型新建功能(类比智能集市产品中的注册模型)、模型版本上架、模型实例创建、单一模型版本部署上线等系统功能,以及基于已部署上线的模型服务或模型文件进行预测的功能。实现从模型训练到服务部署,以及基于训练的模型进行预测的业务闭环。
智能任务流提供以下几种与注册和部署机器学习模型相关的算子:
- Model(模型注册) 
- Mlflow Model Version Register(模型版本上架) 
- Docker Model Version Register(模型版本上架) 
- S2i Model Version Register(模型版本上架) 
- Thirdparty Model Version Register(模型版本上架) 
- Latest Model Version (获取最新模型版本) 
- Mlflow Model Version Prediction(基于机器学习模型镜像进行预测) 
- Model Instance(创建模型部署实例) 
- Model Test(模型测试) 
- Single Model Deployment(单个模型版本部署) 
- Model Version Info (多版本部署场景中获取模型版本信息) 
- Model Deployment(多模型版本部署) 
- Service Prediction(基于模型部署服务进行预测) 
- External Mlflow Prediction(基于外部环境通过 Mlflow 记录的模型文件进行预测) 
- Internal Mlflow Prediction(基于内部环境通过 Mlflow 记录的模型文件进行预测) 
- Model Monitor(模型监控) 
- Model Log (通过时间或关键词获取模型日志) 
Model 算子¶
Model 算子用于新建模型(类似智能集市中的模型注册功能)。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| category | 必需 | String | 模型类目,可选: 
 | 
| model_name | 必需 | String | 模型名称,支持小写字母、数字、短横线,不超过32个字符。 | 
| alias | 可选 | String | 模型的别名。 | 
| input_data_type | 必需 | String | 输入数据类型,可选:Text、Tabular 或 Image。 | 
| scope | 必需 | String | 模型应用范围,可选:Private 或 Public。 | 
| technique | 必需 | String | 模型技术归属,可选: 
 | 
| usecase | 必需 | String | 模型应用领域,可选: 
 | 
| publisher | 必需 | String | 模型创建人名称 | 
| input_format | 必需 | String | 以 JSON 格式的模型特征输入参数,参见 input_format 示例。 | 
| output_format | 必需 | String | 以 JSON 格式的模型目标输出,参见 output_format 示例。 | 
| interface | 必需 | String | API 类型,可选 REST 或 GRPC(即模型服务API的调用方式)。 | 
| error_on_exist | 可选 | String | 指定在模型名称存在时,是否跳过不报错。当选为  | 
input_format 示例¶
[
  {
       "name":"X-basic.hour",
       "dtype":"int",
       "ftype":"continuous",
       "range": [
           0,
           23
       ],
       "annotations":"",
       "repeat":null,
       "defaultValue":10
   },
    {
       "name":"X-basic.horizon",
       "dtype":"int",
       "ftype":"continuous",
       "range": [
           0,
           50
       ],
       "annotations":"",
       "repeat":null,
       "defaultValue":8
   }
]
output_format 示例¶
[
  {
    "name": "test",
    "dtype": "float",
    "ftype": "continuous",
    "range": [
      1,
      11
    ],
    "annotations": null,
    "repeat": 4,
    "defaultValue": 1
  }
]
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| model_name_output | String | 输出创建的模型名称,用于 Mlflow Model Version Register 等算子的输入。 | 
Mlflow Model Version Register 算子¶
Mlflow Model Version Register 算子用于通过 MLflow 导入方式构建模型版本的文件并上架模型版本。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| input_data | 必需 | String | 模型版本参数输入,参见 input_data 示例。 | 
| alias | 可选 | String | 模型的别名。 | 
| version_rule | 必需 | model_version_rule | 模型版本名称规则,默认为time,根据当前时间戳进行版本命名。 | 
| annotation | 可选 | String | 模型版本描述信息。 | 
| architecture | 必需 | architecture | 运行模型版本的基础硬件,可选:x86 或 arm。 | 
| coprocessor | 可选 | coprocessor | 选择运行模型版本的协处理器,可选:GPU、TPV、VPU 或 None。 | 
| env_param | 可选 | List | 环境参数,参见 env_param 示例。 | 
| framework | 必需 | model_framework | 运行模型版本的计算框架,可选:sklearn、tensorflow、pytorch、h2o、spark 或 other。 | 
| language | 必需 | language | 开发模型版本的语言,可选:python3 或 java8。 | 
| model_reference | 必需 | String | 模型版本所属模型的名称,来自 Model 算子的输出的  | 
| publisher | 必需 | String | 模型版本创建人名称。 | 
| minio_paths | 可选 | List | minio路径,参见 minio_path 示例。 | 
| enforce_register | 可选 | Boolean | 指定是否强制上架。 | 
| serve_as_file | 可选 | Boolean | 
 | 
| use_ou_harbor | 可选 | Boolean | 
 | 
| test_timeout | 可选 | test_timeout | 
input_data 示例¶
{
  "data": {
    "names": [
      "AGE",
      "RACE",
      "DCAPS",
      "VOL"
    ],
    "ndarray": [
      [
        68,
        2,
        2,
        0
      ]
    ]
  }
}
env_param 示例¶
[
  {
    "name": "string",
    "value": "string",
    "annotations": "string"
  }
]
minio_paths 示例¶
[
  {
    "bucket": "xxx",
    "path": "xxx",
    "destination": "xxx"
  }
]
输出参数说明¶
| 参数 | 说明 | 
|---|---|
| create_model_revision | 模型版本是否构建成功。 | 
| model_revision_name | 已上架模型版本名称。 | 
| model_builder_name | 模型构建名称。 | 
Docker Model Version Register 算子¶
Docker Model Version Register 算子用于通过容器镜像文件导入方式构建模型版本的文件,上架模型版本。可以从 Artifacts 源和 Git 源的多个层级目录中选择构建模型需要的目标文件。部署模型时,系统将使用指定的镜像文件部署成服务。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| input_data | 必需 | String | 模型版本参数输入,参见 input_data 示例。 | 
| alias | 可选 | String | 模型的别名。 | 
| version_rule | 必需 | String | 模型版本名称规则,默认为 time,根据当前时间戳进行版本命名。 | 
| annotation | 可选 | String | 模型版本描述信息。 | 
| architecture | 必需 | String | 运行模型版本的基础硬件,可选:x86 或 arm。 | 
| coprocessor | 可选 | String | 选择运行模型版本的协处理器,可选:GPU、TPV、VPU 或 None。 | 
| env_param | 可选 | List | 环境参数,参见 env_param 示例。 | 
| framework | 必需 | String | 运行模型版本的计算框架,可选:sklearn、tensorflow、pytorch、h2o、spark 或 other。 | 
| language | 必需 | String | 开发模型版本的语言,可选:python3 或 java8。 | 
| model_reference | 必需 | String | 模型版本所属模型的名称,来自 Model 算子的输出的  | 
| publisher | 必需 | String | 模型版本创建人名称。 | 
| minio_paths | 可选 | List | minio 路径,参见 minio_path 示例。 | 
| git_setting | 可选 | List | Git 源设置,参见 git_setting 示例。 | 
| docker_dockerfile | 可选 | String | 镜像文件的名称。 | 
git_setting 示例¶
[
  {
    "url": "xxx",
    "user": "xxx",
    "token": "xxx",
    "branch": "xxx",
    "paths": [
      {
        "path": "xxx",
        "destination": "xxx"
      }
    ]
  }
]
输出参数说明¶
| 参数 | 说明 | 
|---|---|
| create_model_revision | 模型版本是否构建成功。 | 
| model_revision_name | 已上架模型版本名称。 | 
| model_builder_name | 模型构建名称。 | 
S2i Model Version Register 算子¶
S2i Model Version Register 算子用于通过使用 s2i build 从源代码创建模型版本 Docker 镜像,上架模型版本。可以从 Artifacts 源和 Git 源的多个层级目录中选择构建模型需要的目标文件。部署模型时,系统将使用指定的镜像文件部署成服务。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| input_data | 必需 | String | 模型版本参数输入,参见 input_data 示例。 | 
| alias | 可选 | String | 模型的别名。 | 
| version_rule | 必需 | String | 模型版本名称规则,默认为 time,根据当前时间戳进行版本命名。 | 
| annotation | 可选 | String | 模型版本描述信息。 | 
| architecture | 必需 | String | 运行模型版本的基础硬件,可选:x86 或 arm。 | 
| coprocessor | 可选 | String | 选择运行模型版本的协处理器,可选:GPU、TPV、VPU 或 None。 | 
| env_param | 可选 | List | 环境参数,参见 env_param 示例。 | 
| framework | 必需 | String | 运行模型版本的计算框架,可选:sklearn、tensorflow、pytorch、h2o、spark 或 other。 | 
| language | 必需 | String | 开发模型版本的语言,可选:python3 或 java8。 | 
| model_reference | 必需 | String | 模型版本所属模型的名称,来自 Model 算子的输出的  | 
| publisher | 必需 | String | 模型版本创建人名称。 | 
| minio_paths | 可选 | List | minio 路径,参见 minio_path 示例。 | 
| git_setting | 可选 | List | Git 源设置,参见 git_setting 示例。 | 
| s2i_model | 可选 | String | s2i 模型文件的名称。 | 
| serve_as_file | 可选 | Boolean | 
 | 
| use_ou_harbor | 可选 | Boolean | 
 | 
输出参数说明¶
| 参数 | 说明 | 
|---|---|
| create_model_revision | 模型版本是否构建成功。 | 
| model_revision_name | 已上架模型版本名称。 | 
| model_builder_name | 模型构建名称。 | 
Thirdparty Model Version Register 算子¶
Thirdparty Model Version Register 算子用于通过在第三方自定义的系统上将模型打包成为 Docker 镜像文件,上架模型版本。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| input_data | 必需 | String | 模型版本参数输入,参见 input_data 示例。 | 
| alias | 可选 | String | 模型的别名。 | 
| version_rule | 必需 | String | 模型版本名称规则,默认为 time,根据当前时间戳进行版本命名。 | 
| annotation | 可选 | String | 模型版本描述信息。 | 
| architecture | 必需 | String | 运行模型版本的基础硬件,可选:x86 或 arm。 | 
| coprocessor | 可选 | String | 选择运行模型版本的协处理器,可选:GPU、TPV、VPU 或 None。 | 
| env_param | 可选 | List | 环境参数,参见 env_param 示例。 | 
| framework | 必需 | String | 运行模型版本的计算框架,可选:sklearn、tensorflow、pytorch、h2o、spark 或 other。 | 
| language | 必需 | String | 开发模型版本的语言,可选:python3 或 java8。 | 
| model_reference | 必需 | String | 模型版本所属模型的名称,来自 Model 算子的输出的  | 
| publisher | 必需 | String | 模型版本创建人名称。 | 
| thirdparty_url | 可选 | String | 加载模型版本文件的地址。 | 
输出参数说明¶
| 参数 | 说明 | 
|---|---|
| create_model_revision | 模型版本是否构建成功。 | 
| model_revision_name | 已上架模型版本名称。 | 
| model_builder_name | 模型构建名称。 | 
Latest Model Version 算子¶
Latest Model Version 算子用于获取模型的最新版本。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_name | 必需 | model_name | 指定模型名称。 | 
| serve_as_file | 必需 | boolean | 选择是否以模型文件形式提供服务。 | 
输出参数说明¶
| 参数 | 类型 | 描述 | 
|---|---|---|
| lastest_version | model_version | 最新模型版本。 | 
Mlflow Model Version Prediction 算子¶
实现基于机器学习模型镜像进行预测的功能。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_name | 必需 | model_name | 模型名称。 | 
| model_version_name | 必需 | model_version | 指定模型名称后选择部署的模型版本。 | 
| data | 必需 | File | 输入数据。 | 
| data_type | 必需 | data_type | 数据类型,可选 csv 或 json。 | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| predictions | File | 输出预测结果。 | 
Model Instance 算子¶
Model Instance 算子用于在指定资源池内创建云端模型部署实例。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| name | 必需 | String | 部署实例名称。 | 
| resource_pool | 必需 | String | 资源池名称,来自通过 资源管理 申请的资源名称。 | 
| model_name | 必需 | String | 模型名称,来自 Model 算子输出的  | 
| labels | 可选 | List | 标签列表。 | 
| description | 可选 | String | 部署实例描述。 | 
| deploy_mode | 必需 | String | 部署模式,仅支持 ONLINE(即当前环境部署)。 | 
| error_on_exist | 必需 | String | 指定在模型名称存在时,是否跳过不报错。当选为  | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| instance_name_output | String | 部署实例名称。 | 
Model Test 算子¶
Model Test 算子可基于指定的输入对已上架的模型版本进行测试。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| input_data | 必需 | String | 输入JSON格式的模型测试数据。 | 
| model_builder | 必需 | String | 模型构建人,来自任一 Model Version Register 算子输出的  | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| create_model_test | String | 模型测试名称。 | 
| model_test_output | String | JSON 格式的模型测试返回结果。 | 
Single Model Deployment 算子¶
Single Model Deployment 算子用于将单个模型版本指定某一实例部署上线,并可根据实际需要配置资源和超时设置。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_revision | 必需 | String | 待部署的模型版本名称,来自任一 Model Version Register 算子输出的  | 
| instance_name | 必需 | String | 部署实例名称,来自 Model Instance 算子输出的  | 
| request_cpu | 必需 | request_cpu | 部署模型版本所需 CPU 请求值,最小值支持0.01 core,默认值为0.01 core。 | 
| request_memory | 必需 | request_memory | 部署模型版本所需内存请求值,最小值支持0.1 G,默认值为0.1 G。 | 
| limit_cpu | 必需 | limit_cpu | 部署模型版本所需 CPU 上限值,最大值支持32 core,默认值为1.0 core。 | 
| limit_memory | 必需 | limit_memory | 部署模型版本所需内存上限值,最大值支持64 G,默认值为2.0。 | 
| request_timeout | 必需 | request_timeout | 请求超时设置,默认值为20秒。 | 
| deploy_timeout | 必需 | Number | 部署超时设置,默认值为300秒。 | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| create_model_deployment | String | 部署的模型版本名称。 | 
Model Version Info 算子¶
Model Version Info 算子用于在多模型部署场景中后去模型版本信息。
备注
仅能在 Model Deployment 算子的子画布中添加此算子。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_name | 必需 | model_name | 自动选择 Model Deployment 算子的 model_name 参数指定的模型。 | 
| model_revision | 必需 | model_version | 指定模型版本。 | 
| request_cpu | 必需 | request_cpu | 指定 CPU 请求值。 | 
| request_memory | 必需 | request_memory | 指定内存请求值。 | 
| limit_cpu | 必需 | limit_cpu | 指定 CPU 最大值。 | 
| limit_memory | 必需 | limit_memory | 指定内存最大值。 | 
| canary_rate | 可选 | number | 
 | 
| bg_rate | 可选 | number | 
 | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| version_deploy_info | version_deploy_info | 模型版本的信息。 | 
Model Deployment 算子¶
Model Deployment 算子用于部署多个模型版本。
备注
需要在此算子的子画布中至少添加 2 个 Model Version Info 算子才可正常运行此算子。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_name | 必需 | model_name | 指定需要部署的模型。 | 
| instance_name | 必需 | instance_name | 选择需要部署的模型版本。 | 
| request_timeout | 必需 | request_timeout | 输入请求超时的阈值。 | 
| deploy_timeout | 可选 | deploy_timeout | 输入部署超时的阈值。 | 
| using_token | 必需 | boolean | 选择是否使用 Token。 | 
| upgrade_method | 必需 | upgrade_method | 选择模型升级的方式,支持 `Blue/Green`(蓝绿部署)、`Canary`(金丝雀部署)和 `Multi-Armed`(老虎机部署)。 | 
| combiner_strategy | 必需 | combiner_strategy | |
| specify_version | 必需 | string | 
 | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| create_model_deployment | string | 部署实例名称。 | 
Service Prediction 算子¶
Service Prediction 算子针对已部署在实例上的模型服务进行预测。常与 Git Directory 算子组合使用,基于 Git Directory 算子输出的数据文件进行预测。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model | 必需 | String | 模型名称。 | 
| instance | 必需 | String | 部署实例名称。 | 
| namespace | 必需 | String | 资源池名称,来自通过 资源管理 申请的资源名称。 | 
| data_type | 必需 | data_type | 
 | 
| data | 必需 | File | 输入数据。 | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| predictions | File | 输出预测结果。 | 
External Mlflow Prediction 算子¶
实现基于外部环境通过 Mlflow 记录的模型文件进行预测的功能。外部环境是指非智能实验室里的 Jupyter Lab 环境。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_path | 必需 | Directory | 模型文件路径,可来自 Git Directory 算子的输出。 | 
| data_type | 必需 | data_type | 数据类型,可选 csv 或 json。 | 
| data | 必需 | File | 输入数据,支持 json 和 csv 两种格式。 | 
| requirements | 可选 | List | requirements.txt 文件的内容,以 List 格式输出,如: | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| predictions | File | 输出预测结果。 | 
Internal Mlflow Prediction 算子¶
实现基于内部环境通过 Mlflow 记录的模型文件进行预测的功能。内部环境是指智能实验室里的 Jupyter Lab 环境。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| minio_paths | 必需 | List | 模型文件路径,为 minio 上模型文件的路径。 | 
| data_type | 必需 | data_type | 数据类型,可选 csv 或 json。 | 
| data | 必需 | File | 输入数据,支持 json 和 csv 两种格式。 | 
| requirements | 可选 | List | requirements.txt 文件的内容,以List格式输出,如: | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| predictions | File | 输出预测结果。 | 
Model Monitor 算子¶
监控指定时间范围内模型的表现,根据模型输出的指标作为业务判断依据,如:是否需要重新训练模型,或使用其它算法训练新的模型以取代现有的模型版本等。一个部署实例可添加多个监控指标,每个 Model Monitor 算子只监控一个指标。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_name | 必需 | String | 模型名称。 | 
| deployment_instance | 必需 | String | 模型部署实例名称。 | 
| start_time | 必需 | Timestamp | 监控起始时间(通过日期组件选择,精确到秒)。 | 
| end_time | 必需 | Timestamp | 监控结束时间(通过日期组件选择,精确到秒)。 | 
| metric_name | 必需 | String | 监控指标名称(通过 智能集市 > 模型部署实例 中的 指标监控 页面添加自定义指标)。 | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| model_indicator_data | List | 输出模型监控指标结果。 | 
Model Log 算子¶
Model Log 算子可用于查询过去 7 天至多 5000 条模型日志记录。
输入参数说明¶
| 名称 | 必需/可选 | 类型 | 描述 | 
|---|---|---|---|
| model_name | 必需 | String | 指定模型。 | 
| instance_name | 必需 | model_instance | 指定模型部署实例。 | 
| keyword | 可选 | String | 指定用于筛选日志的关键词。 | 
| time_duration | 必需 | time_duration | 指定模型日志的时间区间。 | 
输出参数说明¶
| 名称 | 类型 | 描述 | 
|---|---|---|
| matched_times | number | 模型日志的时间信息。 | 
| log | file | 模型日志文件。 |