模型算子
模型算子用于在智能任务流产品中实现模型新建功能(类比智能集市产品中的注册模型)、模型版本上架、模型实例创建、单一模型版本部署上线等系统功能,以及基于已部署上线的模型服务或模型文件进行预测的功能。实现从模型训练到服务部署,以及基于训练的模型进行预测的业务闭环。
智能任务流提供以下几种与注册和部署机器学习模型相关的算子:
- Model(模型注册)
- Mlflow Model Version Register(模型版本上架)
- Docker Model Version Register(模型版本上架)
- S2i Model Version Register(模型版本上架)
- Thirdparty Model Version Register(模型版本上架)
- Model Test(模型测试)
- Single Model Deployment(单个模型版本部署)
- Model Instance(创建模型部署实例)
- Service Prediction(基于模型部署服务进行预测)
- External Mlflow Prediction(基于外部环境通过 Mlflow 记录的模型文件进行预测)
- Internal Mlflow Prediction(基于内部环境通过 Mlflow 记录的模型文件进行预测)
- Model Monitor(模型监控)
- Mlflow Model Version Prediction(基于机器学习模型镜像进行预测)
Model 算子
Model 算子用于新建模型(类似智能集市中的模型注册功能)。
输入参数说明
名称 |
必需/可选 |
类型 |
描述 |
category |
必需 |
String |
模型类目,可选:
- Predictor:模型预测器
- Combiner:模型优选器
- Data Transformer:数据预转换器
|
model_name |
必需 |
String |
模型名称,支持小写字母、数字、短横线,不超过32个字符。 |
alias |
可选 |
String |
模型的别名。 |
input_data_type |
必需 |
String |
输入数据类型,可选:Text、Tabular 或 Image。 |
scope |
必需 |
String |
模型应用范围,可选:Private 或 Public。 |
technique |
必需 |
String |
模型技术归属,可选:
- Classification:分类
- Regression:拟合
- Clustering:聚类
- Other:其他
|
usecase |
必需 |
String |
模型应用领域,可选:
- Wind:风电
- Solar:光伏
- Power Storage:储能
- Smart Factory:智慧工厂
- Smart City:智慧城市
- Other:其他
|
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 时,如果待创建的模型名称已存在,直接报错。 |
输出参数说明
名称 |
类型 |
描述 |
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 算子的输出的 model_name_output 。 |
publisher |
必需 |
String |
模型版本创建人名称。 |
minio_paths |
可选 |
List |
minio路径,参见 minio_path 示例。 |
enforce_register |
可选 |
Boolean |
指定是否强制上架。 |
serve_as_file |
可选 |
Boolean |
- 是否保存为模型文件,打包模型文件的镜像更为轻量。
true 表示采用模型文件打包方式。在智能预测套件中可以直接调用模型文件。
false 表示采用模型服务打包方式。
|
use_ou_harbor |
可选 |
Boolean |
true 表示镜像上传到 EnOS 对应的镜像仓库(harbor)。
false 表示镜像上传到 OU 内置的镜像仓库,仅支持使用模型文件保存。
|
test_timeout |
可选 |
test_timeout |
|
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 |
true 表示采用模型文件打包方式
false 表示采用模型服务打包方式
|
use_ou_harbor |
可选 |
Boolean |
true 表示镜像上传到 EnOS 对应的镜像仓库(harbor),模型版本不能发布成模型服务。
false 表示镜像上传到 OU 内置的镜像仓库
|
输出参数说明
参数 |
说明 |
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 |
模型构建名称。 |
Model Test 算子
Model Test 算子可基于指定的输入对已上架的模型版本进行测试。
输入参数说明
名称 |
必需/可选 |
类型 |
描述 |
input_data |
必需 |
String |
输入JSON格式的模型测试数据。 |
model_builder |
必需 |
String |
模型构建人,来自任一 Model Version Register 算子输出的 model_builder_name 。 |
输出参数说明
名称 |
类型 |
描述 |
create_model_test |
String |
模型测试名称。 |
model_test_output |
String |
JSON 格式的模型测试返回结果。 |
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秒。 |
输出参数说明
名称 |
类型 |
描述 |
create_model_deployment |
String |
部署的模型版本名称。 |
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 时,如果模型名称已存在,直接报错。 |
输出参数说明
名称 |
类型 |
描述 |
instance_name_output |
String |
部署实例名称。 |
Service Prediction 算子
Service Prediction 算子针对已部署在实例上的模型服务进行预测。常与 Git Directory 算子组合使用,基于 Git Directory 算子输出的数据文件进行预测。
输入参数说明
名称 |
必需/可选 |
类型 |
描述 |
model |
必需 |
String |
模型名称。 |
instance |
必需 |
String |
部署实例名称。 |
namespace |
必需 |
String |
资源池名称,来自通过 资源管理 申请的资源名称。 |
data_type |
必需 |
data_type |
- 数据类型,可选 csv 或 json。
csv 文件的首行应为表头。
json文件必须数据完整,格式为:
{
"data":
{ "names": [ "AGE", "RACE", "DCAPS", "VOL" ], "ndarray": [ [ 0, 0, 0, 0 ] ] }
}
|
data |
必需 |
File |
输入数据。 |
输出参数说明
名称 |
类型 |
描述 |
predictions |
File |
输出预测结果。 |
External Mlflow Prediction 算子
实现基于外部环境通过 Mlflow 记录的模型文件进行预测的功能。外部环境是指非 EAP 智能实验室里的 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 。 |
输出参数说明
名称 |
类型 |
描述 |
predictions |
File |
输出预测结果。 |
Internal Mlflow Prediction 算子
实现基于内部环境通过 Mlflow 记录的模型文件进行预测的功能。内部环境是指 EAP 智能实验室里的 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 。 |
输出参数说明
名称 |
类型 |
描述 |
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 |
输出模型监控指标结果。 |
Mlflow Model Version Prediction 算子
实现基于机器学习模型镜像进行预测的功能。
输入参数说明
名称 |
必需/可选 |
类型 |
描述 |
model_name |
必需 |
model_name |
模型名称。 |
model_version_name |
必需 |
model_version |
指定模型名称后选择部署的模型版本。 |
data |
必需 |
File |
输入数据。 |
data_type |
必需 |
data_type |
数据类型,可选 csv 或 json。 |
输出参数说明
名称 |
类型 |
描述 |
predictions |
File |
输出预测结果。 |