模型算子


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


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

  • 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 算子

Model 算子用于新建模型(类似智能集市中的模型注册功能)。

输入参数说明

名称

必需/可选

类型

描述

category

必需

String

模型类目,可选:

  • Predictor:模型预测器

  • Combiner:模型优选器

  • Data Transformer:数据预转换器

model_name

必需

String

模型名称,支持小写字母、数字、短横线,不超过32个字符。

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 示例

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 示例

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 示例

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 示例

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 模型文件的名称。

输出参数说明

参数

说明

create_model_revision

模型版本是否构建成功。

model_revision_name

已上架模型版本名称。

model_builder_name

模型构建名称。

Thirdparty Model Version Register 算子

Thirdparty Model Version Register 算子用于通过在第三方自定义的系统上将模型打包成为 Docker 镜像文件,上架模型版本。

输入参数说明

名称

必需/可选

类型

描述

input_data

必需

String

模型版本参数输入,参见 input_data 示例

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 算子

模型测试算子,用于对已上架的模型版本进行测试。

输入参数说明

名称

必需/可选

类型

描述

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 算子

模型部署算子,用于将单个模型版本部署上线。

输入参数说明

名称

必需/可选

类型

描述

model_revision

必需

String

待部署的模型版本名称,来自任一 Model Version Register 算子输出的 model_revision_name

instance_name

必需

String

部署实例名称,来自 Model Instance 算子输出的 instance_name_output

request_cpu

必需

Number

部署模型版本所需CPU请求值。

request_memory

必需

Number

部署模型版本所需内存请求值。

limit_cpu

必需

Number

部署模型版本所需CPU上限值。

limit_memory

必需

Number

部署模型版本所需内存上限值。

timeout

必需

Number

超时设置。

输出参数说明

名称

类型

描述

create_model_deployment

String

部署的模型版本名称。

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 算子

实现基于模型部署服务的预测功能。

输入参数说明

名称

必需/可选

类型

描述

model

必需

String

模型名称。

instance

必需

String

部署实例名称。

namespace

必需

String

资源池名称,来自通过 资源管理 申请的资源名称。

data_type

必需

String

数据类型,可选 csv 或 json。

data

必需

File

输入数据。

输出参数说明

名称

类型

描述

predictions

File

输出预测结果。

External Mlflow Prediction 算子

实现基于外部环境通过 Mlflow 记录的模型文件进行预测的功能。外部环境是指非 EAP 智能实验室里的 Jupyter Lab 环境。

输入参数说明

名称

必需/可选

类型

描述

model_path

必需

Directory

模型文件路径,可来自 Git Directory 算子的输出。

data_type

必需

String

数据类型,可选 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

必需

String

数据类型,可选 csv 或 json。

data

必需

File

输入数据,支持 json 和 csv 两种格式。

requirements

可选

List

requirements.txt 文件的内容,以List格式输出,如:pandas==1.0.0

输出参数说明

名称

类型

描述

predictions

File

输出预测结果。