Spark团队新作MLFlow 解决了什么问题

前言

中午的时候看到了Spark团队新作MLFlow,因为我本身也在做类似的解决方案MLSQL,自然要看看Meitai是怎么做的。所以第一时间把MLFlow相关文档 浏览了一遍,并且将MLFlow源码 clone下来大致也看了一遍。

看完之后,发现工程项目和文档非常干净利落,体现了Spark团队一如既往的工程能力以及对事物分析高超的抽象能力。 这里先说说我看完后的一个总结:

MLFlow至少现阶段还是一款Python ML pipeline的辅助工具

MLFlow要解决的问题以及相应的方案

MLFlow解决了如下几个问题:

  1. 算法训练实验难于追踪,所以我们需要有一个实验管理工具Tracking。这个工具能够记录算法,算法参数,模型结果,效果等数据。
  2. 算法脚本难于重复运行,原因很多,比如代码版本,以来的参数,还有运行环境。解决办法就是所有的算法项目应该都有一套标准的Projects概念,记录下来这些东西。并且这个Projects是可以拟合所有算法框架的。
  3. 部署模型是一个艰难的过程,在ML界,目前还没有一个标准的打包和部署模型的机制。解决的办法是Models概念,Models提供了工具和标准帮助你部署各种算法框架的模型

我想这几个问题带来的痛楚也是做ML的感同身受的。其实这三个点,每个点都有很多软件和工具在解决,核心问题在于,他们都没有成为事实的标准。

如何和亲儿子Spark做集成

在现阶段版本里,MLFlow 做算法训练是基于单机运行的,不过利用Pyspark可以很方便的实现多机同时运行。从而可以给定不同的参数,然后让Pyspark进行调度,最后把所有实验结果汇报给Tracking Server.

在预测方面,对于一些标准的库比如SKLearn,因为一般而言都有predict方法,所以无需开发即可通过MLFlow进行部署,如果是自定义的一些算法,则需要提供一个模块,实现里面定义方法签名(比如predict),然后可以动态import到API Server里或者转化一个Spark UDF函数部署到PySpark里。

和MLSQL对比

相比较而言,MLFLow更像一个辅助工具和标准,你只要按这个标准写ML程序(选用你喜欢的算法框架),就能实现实验记录的追踪,多环境的部署(比如可以很容易从我的笔记本移植到你的笔记本上跑),以及通过写一个规范的预测脚本,就能把模型部署成API服务,或者Spark里。

但其实MLFlow还有几个问题没有解决:

  1. 数据预处理在两个环节存在,一个训练,一个是预测,并且很多场景预测的时候的数据预处理是需要依赖训练时数据预处理产生的元信息的。 而且按MLFlow的架构,整个流程都是算法工程师来完成的,这样就无法保证数据预处理的性能(算法可以用任何库来完成数据的处理),研发只会负责后面模型的部署或者嵌入到spark中(而且必须用pyspark了)。
  2. 完全基于python完成数据处理和训练,显然会有性能上的损耗。最好的方式还是把数据预处理和训练剥离开了。
  3. 没有解决Spark和MLFlow的数据衔接问题,也就是说,MLFlow单个实例如何全量或者按批次获取数据?

而MLSQL 除了没有解决Tracking问题以外,已经解决了MLFlow解决的其他的两个问题,当然还有MLFlow没有解决的几个问题。

MLSQL核心在于

  1. 提供了一个7*24小时的运行平台,算法的工作在IDE中完成调试,Web界面上完成开发和部署,共享CPU/GPU/内存资源。
  2. MLSQL提供了一套统一的DSL语言完成算法训练和模型部署的功能。
  3. MLSQL在允许用户自定义脚本进行训练和预测的过程中,制定更为严格的规范,虽然允许你用自己喜欢的任何算法框架完成训练脚本和预测脚本的开发,但是需要符合响应的规范从而嵌入到MLSQL语法里使用。MLSQL要求你大部分训练参数都需要通过SQL语法进行暴露从而使得你的训练脚本具有更好的封装和通用性。

1,2 解决了算法脚本难于重复运行的问题,以及模型部署的问题,同时还解决了数据预处理复用的问题。

  1. 允许算法嵌入任何算法框架完成训练和预测,给了算法工程师足够的灵活性。

总结

当然,MLFlow目前的模式没有强行绑定到Spark上,而是作为ML的一个辅助工具和标准,最大程度的减少算法同学的学习和使用成本,减少对现有流程干扰,可以使得MLFlow更容易被算法同学接受,从而享受到它的好处,这是MLSQL无法比拟的。所以我前面说了,MLFlow更像一个Pipeline工具和标准,MLSQL则更像一个AI平台。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352