模型算子


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


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

  • 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

模型日志文件。