机器学习平台实践

一、背景

期望通过强大易用的功能,来辅助算法研发人员,帮助大家脱离繁琐的工程化开发,把有限的精力聚焦于算法策略的迭代上面。通过一站式打通特征工程、模型训练、在线预测&上线等重要步骤,避免重复造轮子,以及解决特征穿越等问题。

二、调研

我们参考多个大公司的机器学习平台的实践经验,几乎都是拖拽+组件构成DAG图执行的方式来做。以下是几个重要的调研地址:

  1. 阿里PAI
  2. 腾讯TI-ONE
  3. 美团一站式机器学习平台

通过剖析和理解,大概有了几点实现思路:

  1. 它核心是一个调度系统,支持手动和定时运行DAG
  2. 支持扩展组件,尤其是机器学习组件
  3. 支持组件之间参数传递
  4. 打通hive、hdfs等存储系统
  5. 打通特征平台、模型管理平台等外部系统

对于2-3人开发团队来说,要完成这个大系统,很难从零自研去做,只好借助开源的力量。

算法原本使用azkaban系统,用shell、python脚本来完成算法侧所有工作,所以想基于azkaban来二次开发。但azkaban缺少DAG拖拽UI支持;机器学习组件扩展也不方便;且是基于flow调度,而不是job,粒度太大。

我们关注到海豚调度(ds)这个项目在apache孵化,当时刚release 1.2.1版本,非常适合这个场景。ds官网dolphinscheduler.apache.org,体验地址106.75.43.194:8888/dolp

三、实现

实现是基于ds的二次开发,首先完善调度核心改造,然后和算法RD合作,完成机器学习组件制作。

1、改造工作

  1. 兼容azkaban:新平台定位是调度+机器学习,除了算法RD外,还有数据分析工程师使用,大家对azk使用习惯特别深入。新平台借鉴了azk的一些特性,比如“流程运行趋势图”、“手动执行选节点enable/disable”等。同时增加azk任务依赖组件,打通ds和azk任务依赖。
  2. 任务(组件)参数传递:ds之前不支持参数传递,但机器学习下层组件,依赖上层组件的输出,参数传递很有必要,目前实现了文件(hdfs),数据库(hive)两种输出类型。
  3. 参数体系改造:增加手动运行参数,调整参数优先级,目前是按天补数>运行参数>局部参数>全局参数(azk特性,支持手动调试DAG)。
  4. 搭建ds的发版机制及预发环境,加速迭代效率。
  5. gitlab hook注册,用户只需idea提交代码,平台自动pull,可直接在平台引用。
  6. 执行机器定制,方便业务定制自己的执行机器。
  7. 机器学习组件的开发,需要工程RD对算法领域有比较多的涉猎,比如理解tensorflow,xgboost,特征预处理,模型训练,模型评估等知识,和算法RD通力协作。
  8. 二次开发遇到比较多BUG(毕竟当时ds才开源不久),比如容错失败、调度重复触发、状态异常等,依靠社区力量和团队努力都很好的解决了。遗憾的是平台重点在机器学习组件开发,对ds社区贡献不多。

2、重要页面原型

  1. 工作流(DAG)编辑
  2. 项目列表
  3. 工作流(DAG)定义列表
  4. 工作流(DAG)实例列表
  5. 任务(组件)列表
  6. 工作流(DAG)实例运行趋势图
  7. 简易发版程序
  8. gitlab hook注册管理
  9. 定制执行机器

v2-e6efbc4d050c6cfa6ca743f9282b3467_b.jpg
1.工作流(DAG)编辑

v2-cfacaec018ba70b80e191b9e547cff2c_b.jpg
2.项目列表

v2-692b65de1d18510e44885d9f7ad71200_b.jpg
3.工作流(DAG)定义列表

v2-6b23538713609a5feecac35594de5653_b.png
4.工作流实例列表

v2-9f00e6104c98b88cc5e096e7b3d92b13_b.jpg
5.任务(组件)列表

v2-515972d5eb36d5839b762cac22865d7c_b.jpg
6.工作流实例趋势图

v2-f69233495c71c0d9ee619742f1206a3b_b.png
7.简易发版程序

v2-54191d0b216ec0e57e1b522d55401d12_b.png
8.gitlab hook注册管理

v2-62faae929b36e5e4419cb8d8b8106571_b.png
9.定制执行机器


四、总结

这是机器学习平台的一个小实践,因为是公司项目,不能放太多细节。为了贴合公司业务特性,以业务优先,我们定制了很多东西,同时自身能力也有待提升,不能和阿里PAI、腾讯TI-ONE、美团Turing这种平台相提并论。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值