📖
tbds
  • 前言
  • 部署
    • 安装步骤
  • 平台管理
    • 用户管理
    • 项目管理
    • 系统设置
  • 组件访问开发
    • kafka
    • hadoop
    • hbase
    • accessKey
    • hive
    • spark
    • ftp
    • portalApi
    • hermes
    • 代码访问组件demos
      • hbase
      • hdfs
      • kafka
      • hive
  • 数据接入
    • 数据接入
      • TDBank产品化介绍及使用指引
      • TDBank数据接入指引
      • TDBank采集接口详解
      • OGG Flume Adapter 部署文档
      • DB Demo
      • HDFS Demo
    • Hippo管理
    • 进度监控
    • 血缘分析
  • 实时计算
    • 任务管理
    • 库表模板管理
  • 数据分析
    • 数据交互
    • ideX
  • 任务调度
    • 操作指引
    • 工作流
      • 基本概念
      • 任务基本信息
      • 任务调度设置
      • 任务参数配置
        • shell 脚本
        • ftp导入hdfs
        • kafka导入hbase
        • kafka导入hdfs
        • hdfs导出hbase
        • hive sql 脚本
        • hive导入hdfs
        • hdfs导出DB(mysql,postgreSQL,sql server)
        • tstorm任务
        • spark任务
        • mapreduce任务
        • db导入hdfs
        • hdfs导出hive
        • hdfs导出hive-tdsort
        • hive导出mysql
        • mysql导入hive
      • Demo
        • FTP导入HDFS
        • HDFS导出HBASE
        • HDFS导出Mysql
        • HDFS导入HIVE
        • Hive SQL脚本
        • Hive导出MySQL
        • Hive导入HDFS
        • KAFKA导出HBASE
        • KAFKA导出HDFS
        • MYSQL导入HDFS
        • MySQL导入Hive
        • Shell脚本
        • SPARK任务
      • 升级
        • 集成代码更新
        • rpm升级
      • 补充
        • 手动迁移base组件
        • 手动安装runner组件
        • 自定义任务开发文档
        • 时间隐式变量说明
        • 下发并发数说明和调整操作
        • Issues版本说明
        • 设置分组
        • 跨工作流依赖
      • 常见问题定位和解决方式
        • 常用操作
        • 实时接入任务hdfs2hive (tdsort)
        • 实例日志获取失败
        • 实例日志中提示下载文件失败
        • taskSchedule指标为空定位方法
        • 实例依赖失效确认方式
        • 任务实例诊断按钮无调度信息
        • 诊断和定位操作参考
        • 实例一直等待终止定位
        • mongodb 常见问题和处理办法
    • 任务管理
      • 工作流列表
      • 任务管理
      • 任务运行管理
      • 其他
    • 服务器配置
      • 基本概念
      • 操作指南
  • Tstorm
    • Tstorm介绍
    • 开发实例
      • wordcount
  • 数据展现
    • 自助报表
  • 数据资产
    • 库表管理
      • 可管理库表
      • 可读写库表
      • 无归属库表
      • 维表管理
      • 新建表
    • 数据血缘
    • 数据提取
      • 数据地图
      • 任务列表
      • 架构关联
  • 运维中心
    • 系统运维
      • 组件部署
      • 链接归集
      • 诊断
      • 备份
    • 访问管理
    • 文件管理
    • 监控告警
      • 监控
      • 告警
  • 机器学习
    • 系统简介
    • TDInsight功能介绍
      • 工作流
        • 新建工程
        • 新建工作流
        • 创建和配置节点
        • 运行
        • 日志查看
      • 数据输入输出
      • 组件
        • Spark组件
        • Sparkstreaming组件
        • pySpark组件
        • xgboost组件
    • 多实例并发
      • 3种方式驱动实例
      • 实例查询
      • 历史实例
    • TDInsight模型与在线推理
      • 数据流
      • 模型的训练与使用
      • 模型在线服务
    • TDInsight算法/组件说明
      • 数据说明
      • 特征工程
        • 数据预处理
        • 特征提取
        • 特征转换
        • 特征选择
        • 特征评估
      • 机器学习
        • 分类算法
        • 聚类算法
        • 回归算法
        • 推荐算法
        • 关联规则
      • 模型评估
        • Binary Evaluator
        • Multi Evaluator
        • Regression Evaluator
      • 可视化
        • 关系
        • 分布
        • 对比
        • 组合
      • 深度学习算法简介
        • 计算机视觉
        • 自然语言处理
        • 表示学习
Powered by GitBook
On this page
  • 1. 模型部署
  • 2. 模型服务
  • 新增模型服务组
  • 模型服务权限
  • 3.模型服务指标
  • 4.模型服务的使用
  • 完整的参考例子:

Was this helpful?

  1. 机器学习
  2. TDInsight模型与在线推理

模型在线服务

Previous模型的训练与使用NextTDInsight算法/组件说明

Last updated 4 years ago

Was this helpful?

模型部署和服务,目的是将模型从离线服务轻松变成在线服务,对闭环模型非常重要,尤其在深度学习中更是如此。TDInsight上就可以把模型通过在线部署方式,让您的模型可以直接对用户提供服务

1. 模型部署

在模型训练节点(小尾巴),左侧工具栏中的个人模型/共享模型右键菜单里都有模型部署的入口。 如下

**小尾巴

**模型组件

进入部署参数配置页面,配置好以后就可以部署了

字段说明:

  1. 模型组:个人模型服务的组别,和工程类似,一个用户可以有多个模型服务组。系统给每个用户一个默认的模型服务组;

  2. 实例类型:。模型服务的资源配置(CPU,GPU,内存),平台初始化定制好多种类型

  3. 实例数:上述的资源配置的套数。

  4. 服务分类:分为2类TFServing和inference模式。机器学习(如Spark,xgBoost)模型部署为inference模式;深度学习则选择TFServing。

  5. L5 选项:服务的负载均衡策略,如果未指定模式,平台会为服务自动生成L5信息

  6. 部署版本:分为新增部署或替换部署。 新增指在原有的服务基础上,用当前的模型新建一个版本的服务,替换则是把原有的版本替换成当前的。

  7. 进入部署参数配置页面,配置好以后就可以部署了

2. 模型服务

新增模型服务组

系统为每个用户自动新增了一个“用户登陆名的模型服务组”,用户也可以新建自己的模型服务组,如下

模型服务状态有3种:

部署中:模型服务正在部署过程中

服务中:部署已经成功,可提供服务

部署失败: 失败后可查询部署的日志(卡片右上角)定位,如果申请的资源超过上限,也会部署失败

可以最多支持6个版本的模型服务,即可支持1个模型6个版本同时在线服务。

模型服务权限

和工程类似,模型组也可以分享给他人,并有,如下

上图中,右上角的日志按钮点击进去后,将列出该模型部署日志,下面的在版本卡片上的“日志”链接点击进去,可以看到这个版本的模型的服务日志,即APP日志。当然,如果部署失败,服务没有启动起来,那么服务日志是看不到内容的。

3.模型服务指标

点击模型服务的卡片,就可以进入到模型服务指标和可视化性能页面。 模型的指标都可以在这里看到,您可以在此查阅到模型自身信息以及服务的性能。

  1. 模型指标:模型基本信息,和训练时模型观察台看到的是一致的。

  2. 服务地址:本版本提供服务的URL

  3. 服务性能:该版本模型服务的访问量曲线

  4. 可视化性能:模型自身的服务性能。如上图中例子就是模型训练过程损失函数曲线

4.模型服务的使用

模型服务支持HTTP协议类型,仅支持spark。

这里说明一下HTTP的接口说明,在使用前需要准备Inference在线模型加载和处理类,该类中必须包括下面的内容。

//固定名称,实现的接口类,必须这样的名称,请不要修改。 class InferenceService:

// 类初始化函数,该函数包含了变量model_path,服务框架在加载类时会把模型所在目录或是模型文件传入进来,根据这个路径用户可以加载自己的模型到内存中以提供服务
def __init__(self, model_path):

完整的参考例子:

返回json结果: {"message": "SUCCESS", "code": 0, "data": {"insts": [0.6868814826011658]}}

模型部署后,可以在“模型服务”TAB进行管理,如下

模型部署后,可以在“模型服务”TAB进行管理,如下 对于模型服务的权限有以下3种,从前到后是被包容关系。 **可读**: 只对模型服务有查看权限,包括日志查询,模型及模型服务动态指标等。 **更改**: 除了只读权限,还可以进行重新部署模型,删除自己部署的服务及其下的实例(同一模型组其他人部署的服务不能删除) **管理**:除了上述的2种权限,还可以停止组内任意一个模型服务,删除这些模型服务。 #### 模型服务操作 1. 重新部署:部署后可能由于底层系统的app没启动起来,或者app执行异常退出部署失败,可进行重新部署。 2. 删除:点击卡片上的“删除”按钮是删除这个版本的模型服务,点击模型服务右上角的删除按钮则是一键删除模型的所有版本的在线实例。 #### 模型服务日志查看: 提供2种日志查看:

这个页面中会展示如下信息

//类的请求处理函数,传入的是http请求的json内容 例如请求的http请求为: //curl -H "Content-Type: application/json" -X POST --data '{"type":"libsvm","feature_num":"524","data":{"insts":"0 1:0 2:1.0 3:565 4:9 5:6 6:47200.0 7:15 8:0.48 9:1959200.0 10:-65535.0 11:0.0 12:0.6447333333333334 524:-65535.0"}}' //其中 request为 -Data指定的内容,这里用户可以自己定位传输数据的接口,我们这里建议接口为type:libsvm和dense feature_num:feasture的number数据,data为数据内容,可以支持多条数据,建议批量请求 def process_request(self, request):

用户的请求测试命令为: curl -H "Content-Type: application/json" -X POST --data '{"type":"libsvm","feature_num":"524","data":{"insts":"0 1:0 2:1.0 3:565 4:9 5:6 6:47200.0 7:15 8:0.48 9:1959200.0 10:-65535.0 11:0.0 12:0.6447333333333334 524:-65535.0"}}'

http://xxx.xxx.xx.xxx:39715/predict/m261/1
http://xxx.xx.xx.xx:39715/predict/m261/1