模型算子


模型算子用于在智能任务流产品中实现模型新建功能(类比智能集市产品中的注册模型)、模型版本上架、模型实例创建、单一模型版本部署上线等系统功能,以及基于已部署上线的模型服务或模型文件进行预测的功能。实现从模型训练到服务部署,以及基于训练的模型进行预测的业务闭环。


智能任务流提供以下几种与注册和部署机器学习模型相关的算子:

  • 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

模型类目,可选:

  • 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 时,如果待创建的模型名称已存在,直接报错。

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 算子的输出的 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  

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
  • 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 模型构建名称。

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 算子输出的 model_name_output
labels 可选 List 标签列表。
description 可选 String 部署实例描述。
deploy_mode 必需 String 部署模式,仅支持 ONLINE(即当前环境部署)。
error_on_exist 必需 String 指定在模型名称存在时,是否跳过不报错。当选为 false 时,不报错;当选为 true 时,如果模型名称已存在,直接报错。

输出参数说明


名称 类型 描述
instance_name_output String 部署实例名称。

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 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
  • 指定融合优选方式,支持 `Weighted Average`(加权平均) 和 `Specify Only`(指定为一)。
  • 仅在蓝绿部署下生效。
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
数据类型,可选 csv 或 json。
  • csv 文件的首行应为表头。

  • json文件必须数据完整,格式为:

    {
    "data":
    
    { "names": [ "AGE", "RACE", "DCAPS", "VOL" ], "ndarray": [ [ 0, 0, 0, 0 ] ] }
    
    }
    
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 格式输出,如:pandas==1.0.0

输出参数说明


名称 类型 描述
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格式输出,如: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 输出模型监控指标结果。

Model Log 算子


Model Log 算子可用于查询过去 7 天至多 5000 条模型日志记录。

输入参数说明


名称 必需/可选 类型 描述
model_name 必需 String 指定模型。
instance_name 必需 model_instance 指定模型部署实例。
keyword 可选 String 指定用于筛选日志的关键词。
time_duration 必需 time_duration 指定模型日志的时间区间。

输出参数说明


名称 类型 描述
matched_times number 模型日志的时间信息。
log file 模型日志文件。