模型算子¶
模型算子用于在智能任务流产品中实现模型新建功能(类比智能集市产品中的注册模型)、模型版本上架、模型实例创建、单一模型版本部署上线等系统功能,以及基于已部署上线的模型服务或模型文件进行预测的功能。实现从模型训练到服务部署,以及基于训练的模型进行预测的业务闭环。
智能任务流提供以下几种与注册和部署机器学习模型相关的算子:
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 |
模型日志文件。 |