模型算子¶
模型算子用于在智能任务流产品中实现模型新建功能(类比智能集市产品中的注册模型)、模型版本上架、模型实例创建、单一模型版本部署上线等系统功能,以及基于已部署上线的模型服务或模型文件进行预测的功能。实现从模型训练到服务部署,以及基于训练的模型进行预测的业务闭环。
智能任务流提供以下几种与注册和部署机器学习模型相关的算子:
- 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 | 指定在模型名称存在时,是否跳过不报错。当选为 false 时,不报错;当选为 true 时,如果待创建的模型名称已存在,直接报错。 |
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
}
]
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 算子的输出的 model_name_output 。 |
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 算子的输出的 model_name_output 。 |
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 算子的输出的 model_name_output 。 |
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 算子的输出的 model_name_output 。 |
publisher | 必需 | String | 模型版本创建人名称。 |
thirdparty_url | 可选 | String | 加载模型版本文件的地址。 |
输出参数说明¶
参数 | 说明 |
---|---|
create_model_revision | 模型版本是否构建成功。 |
model_revision_name | 已上架模型版本名称。 |
model_builder_name | 模型构建名称。 |
Mlflow Model Version Prediction 算子¶
实现基于机器学习模型镜像进行预测的功能。
输入参数说明¶
名称 | 必需/可选 | 类型 | 描述 |
---|---|---|---|
model_name | 必需 | model_name | 模型名称。 |
model_version_name | 必需 | model_version | 指定模型名称后选择部署的模型版本。 |
data | 必需 | File | 输入数据。 |
data_type | 必需 | data_type | 数据类型,可选 csv 或 json。 |
Model Instance 算子¶
Model Instance 算子用于在指定资源池内创建云端模型部署实例。
输入参数说明¶
名称 | 必需/可选 | 类型 | 描述 |
---|---|---|---|
name | 必需 | String | 部署实例名称。 |
resource_pool | 必需 | String | 资源池名称,来自通过 资源管理 申请的资源名称。 |
model_name | 必需 | String | 模型名称,来自 Model 算子输出的 model_name_output 。 |
labels | 可选 | List | 标签列表。 |
description | 可选 | String | 部署实例描述。 |
deploy_mode | 必需 | String | 部署模式,仅支持 ONLINE(即当前环境部署)。 |
error_on_exist | 必需 | String | 指定在模型名称存在时,是否跳过不报错。当选为 false 时,不报错;当选为 true 时,如果模型名称已存在,直接报错。 |
Model Test 算子¶
Model Test 算子可基于指定的输入对已上架的模型版本进行测试。
输入参数说明¶
名称 | 必需/可选 | 类型 | 描述 |
---|---|---|---|
input_data | 必需 | String | 输入JSON格式的模型测试数据。 |
model_builder | 必需 | String | 模型构建人,来自任一 Model Version Register 算子输出的 model_builder_name 。 |
Single Model Deployment 算子¶
Single Model Deployment 算子用于将单个模型版本指定某一实例部署上线,并可根据实际需要配置资源和超时设置。
输入参数说明¶
名称 | 必需/可选 | 类型 | 描述 |
---|---|---|---|
model_revision | 必需 | String | 待部署的模型版本名称,来自任一 Model Version Register 算子输出的 model_revision_name 。 |
instance_name | 必需 | String | 部署实例名称,来自 Model Instance 算子输出的 instance_name_output 。 |
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秒。 |
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 |
|
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 |
|
Service Prediction 算子¶
Service Prediction 算子针对已部署在实例上的模型服务进行预测。常与 Git Directory 算子组合使用,基于 Git Directory 算子输出的数据文件进行预测。
输入参数说明¶
名称 | 必需/可选 | 类型 | 描述 |
---|---|---|---|
model | 必需 | String | 模型名称。 |
instance | 必需 | String | 部署实例名称。 |
namespace | 必需 | String | 资源池名称,来自通过 资源管理 申请的资源名称。 |
data_type | 必需 | data_type |
|
data | 必需 | 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 格式输出,如:pandas==1.0.0 。 |
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格式输出,如:pandas==1.0.0 。 |
Model Monitor 算子¶
监控指定时间范围内模型的表现,根据模型输出的指标作为业务判断依据,如:是否需要重新训练模型,或使用其它算法训练新的模型以取代现有的模型版本等。一个部署实例可添加多个监控指标,每个 Model Monitor 算子只监控一个指标。
输入参数说明¶
名称 | 必需/可选 | 类型 | 描述 |
---|---|---|---|
model_name | 必需 | String | 模型名称。 |
deployment_instance | 必需 | String | 模型部署实例名称。 |
start_time | 必需 | Timestamp | 监控起始时间(通过日期组件选择,精确到秒)。 |
end_time | 必需 | Timestamp | 监控结束时间(通过日期组件选择,精确到秒)。 |
metric_name | 必需 | String | 监控指标名称(通过 智能集市 > 模型部署实例 中的 指标监控 页面添加自定义指标)。 |