Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

在进行机器学习实验的过程中,为了简化和加速模型的构建、训练和部署,使用自动化机器学习功能更快速地识别合适的算法并优化超参数。

Table of Contents

服务工作流示例

服务工作流是将数据挖掘以服务的方式进行发布。

要求:输入层必须是“服务输入”节点,输出层必须是“服务输出”节点。

通过部署服务后,通常用于数据预测的应用。“服务输入”的处理层可以实现数据来源于其它接口。

下图是一个简单的服务工作流示例:

在这个工作流中,实现的是对输入的数据进行派生列处理后输出。

部署服务

概述

服务部署指的是当用户用实验训练好了一个预测模型 ,并将此预测模型部署成一个web的服务。当前发布的web服务就可以作为预测模型应用于类似场景的预测,当用户要预测一个新样本,只需要把样本特征信息用 restful api 传给服务,服务就可以依据训练好的预测模型返回预测结果。

前提条件:服务工作流完成搭建且执行成功。工作流中每个节点旁边显示绿色的勾即表示该节点是执行成功的。

部署方法

数据输入

服务输入中的数据支持“手工输入”和“选择节点数据”两种方式:

  • 手工输入:是手工输入json列数据。
  • 选择节点数据:是选择运行通过后的某节点输出结果数据。

部署方式

部署服务包括以下三种方式:

名称说明
新增服务

输入服务名称新增一个服务:

一个服务实验可以生成多个服务。

更新服务

选择一个原服务更新其实验节点:

灰度服务灰度部署

灰度服务用于使多版本模型并行运行,并保持多版本模型运行的结果,通过结果比较灰度测试的模型版本的准确性和稳定性。灰度部署用于使多版本模型并行运行,并保持多版本模型运行的结果,通过结果比较灰度测试的模型版本的准确性和稳定性。

Info
  • 灰度测试:又名A/B测试、灰度发布,一种在黑白之间发布平滑过渡的方式。可以对其执行A/B测试,一些用户继续使用产品功能A,一些用户开始使用产品功能B,如果用户不反对B,则逐渐扩大范围并迁移所有用户到B来。

灰度测试可以确保整个系统的稳定性,并且可以在初始灰度级找到并调整问题以确保其影响度。

  • 灰度服务是基于某个服务灰度部署是基于某个服务(主服务/A服务),创建一个新的服务(B服务),此服务与主服务按照“加权采样”进行分流处理。

例如:A服务流量设置60,则B服务流量为40,将会有40%的概率调用B服务,将会有60%的概率执行A服务(主服务)。生成的B服务名称是以A服务名称加此时的时间戳,一个服务只能产生一个B服务。

在灰度测试中,已经生成过灰度服务的服务将不能被选择。在灰度部署中,已经生成过灰度服务的服务将不能被选择。

  • 关联服务:基于当前服务再创建一个关联的服务;
  • 新增服务流量/关联服务流量:用于分流处理中分配服务的流量,流量之和为100%,即设置新增服务流量值为50,将会有50%的流量分配给新增服务,50%的流量分配给关联服务;

生成的服务将会在服务管理中显示,如图灰度部署生成两个服务,上面的为A服务,下面的为B服务。

其中“流量控制”列显示的是对应服务的流量,点击对应服务的流量值,可进行对应A/B服务的流量配置。

应用服务

目前服务工作流的应用通常为:对于已创建好的分类模型、回归模型、聚类模型,我们将新的数据输入后,通过模型计算预测出结果。

选择部署服务方式或成功部署服务后,可进行服务的应用。

应用入口:在“服务监控”界面的服务列表中,双击“名称”列中的服务,进入到“服务配置”界面,再单击 服务测试 页签,显示“服务测试”界面:

在“测试数据”文本框中按照示例填写数据,单击 测试 按钮,这些数据进入到当前服务部署的模型中执行后显示测试结果。

Info

对于灰度服务,测试数据将按照流量分配选择A服务、B服务中的一列进行运行,返回最后的测试结果,测试结果即算法选择服务输出的结果。对于灰度部署,测试数据将按照流量分配选择A服务、B服务中的一列进行运行,返回最后的测试结果,测试结果即算法选择服务输出的结果。

示例

1、通过数据源或数据预处理定义实验模型,并运行该实验模型。

2、拖拽“服务输入”节点到画布,并选择节点,该节点的数据结果是用于服务发布的节点。

3、将“服务输入”节点在实验模型中替换所选的节点,并将所选节点前的所有节点删除,点击 设置输入数据 按钮。

输入数据默认为“选择节点数据”。

4、拖拽“服务输出”节点到流程节点最末,流程执行通过后单击工具栏的 部署服务 按钮。

5、选择新增服务并输入服务名称。

6、选择“服务测试”页面,点击 测试 按钮对服务进行应用。

7、选择服务管理界面,点击 刷新 按钮,可对新建的服务进行启用、下线、编辑等操作,详情请参考 服务监控

服务监控

服务监控是指对所有已经搭建的服务工作流进行管理。

功能入口:在“数据挖掘”界面中选择 服务管理 页签,显示“服务管理”界面,如下图所示:

该界面分为如下几个区:

  • 功能区:用于手动刷新列表和搜索。

操作

图标

说明

下载SDK

用于将服务提供给其他系统调用。

手动刷新

手动刷新服务列表。

搜索服务

服务流程名称关键字模糊匹配搜索结果。

  • 状态栏:显示所有服务流程不同状态的统计数据。
  • 列表区:显示服务流程列表,支持如下操作:


操作

图标

说明

服务启用

用于启用当前服务流程。

若当前服务呈启用状态,该按钮置灰。

服务下线

用于设置当前服务下线。

若当前服务呈下线状态,该按钮置灰。

编辑

用于编辑当前服务,进入“服务配置”界面(如下图所示),支持修改服务的别名和描述。

服务调用统计

用于对某个时间段服务调用执行记录进行统计。

  • 查询方式:按照月份、日期、小时三个时间段查询;
  • 服务统计:通过折线图、柱图展现统计的某个时间段成功、失败的条数。
服务调用记录

记录了服务调用的服务器名、开始时间、结束时间、执行时间、运行结果、错误日志等信息。可用于监控模型的运行时长、稳定性等。

错误日志:在资源有限的情况下,用于排查某个模型服务卡死。只有执行失败的服务记录才会有错误日志,点击错误日志即可下载日志到本地查看。

删除

用于删除当前服务流程。


Note

服务监控只能使用ClickHouse高速缓存库,如果更改了错误的高速缓存库,需要重启服务引擎后才能使用。

服务调用示例

调用流程说明:

1. 示例附件(ServiceInvokeDemo.zip)解压后,得到Demo目录结构如下:

2. 各目录说明

1) doc——文档目录,demo说明文档在该目录下。

2) example——服务示例目录,自带一个可运行的服务Dag示例,可以在平台中进行流程导入,并部署成服务。

3) java——java语言编写的demo工程,该项目为maven工程,可以使用开发工具以maven项目的形式进行导入,maven环境自行安装。

4) python——python语言编写的demo工程,开发工具以python项目的形式进行导入,python环境自行安装(推荐使用anaconda3和python3.6及其以上版本)。

3. 调用执行

1) java语言,成功导入工程后,在ServiceInvokeDemo.java文件中根据实际调用的服务环境,修改对应的ip、端口、服务ID和输入数据,然后运行。运行成功返回如图所示:

备注:该图片返回数据是自带服务Dag示例的返回数据。如果不是使用该服务示例,可能返回数据有一定差异。

2) python语言,成功导入工程后,在ServiceInvokeDemo.py文件中根据实际调用的服务环境,修改对应的ip、端口、服务ID和输入数据,然后运行。运行成功返回如图所示:

备注:该图片返回数据是自带服务Dag示例的返回数据。如果不是使用该服务示例,可能返回数据有一定差异。