先解释一个东西:MDLC模型开发生命周期。用来描述一个机器学习模型开发的全过程:从data explore到model deployment。(这词也不是什么专有名词,明显是从PDLC/SDLC拿过来用的)。
关键不在词上,而是现有的机器学习开发模式完全不行。一般来说各家公司搞起来的是一个团队,一帮子人做数据,另一帮人做工程化。我们就简单称之为Data Scientist(DS)和Machine Learning Engineer(MLE)。但是实际上代码总是有入侵性的,这两边的工作职责时不时会混到一起,大家打成一片,结果也非常恶心。DS发现自己天天在爬数据,做infra,做了几个月没有engineer support进度缓慢,转行去当PM了。MLE发现自己天天在存数据、读数据、洗数据…大家都觉得进展缓慢,但也没什么办法。据说data project 项目失败率87%,平均落地时间长达6-12个月。Data Scientist 会说这是机器学习的特殊性导致的,模型开发和prod落地之间总是不一致,线下如何如何,到了线上效果不一定那么好,模型需要不断调整如何如何... SDE和DevOps听了直呼外行,表示这不是废话么,都2021年DS还在搞瀑布流开发?
有一点倒是达成了共识,机器学习的项目中,真正机器学习的内容占比不到5%,有大量的成本浪费在了工程实践上。于是一个概念诞生了:MLOps,就像DevOps一样,来解决model开发到落地之间的差距。方案也不是没有,各家云厂商其实都在做:AI Platform pipeline。像AirFlow MLFlow Clipper多少都能算这个领域,大家的功能基本差不多。Google 在Kubernetes上开发的kubeflow
kubeflow 是什么
Kubeflow解决了机器学习从research到production落地的问题,可以看作是一个云原生工具的集合,用于MDLC的所有阶段(数据探索、特征准备、模型训练/调整、模型服务、模型测试和模型版本)。它允许用户建立集成的end-to-end pipeline,连接其MDLC的所有组件。
官方说法就是上面这样,但是事实上有个问题:它不好用,或者说上手难度还是比较高的。现实中还是有很多问题,比如说很多数据分析师并不懂为什么要搞容器化…隔行如隔山了属于是。所以光是提供一个AI Platform 是走不通的,最近几年MLOps这个词虽然存在,但是大家普遍认为这是炒概念,没有解决任何实际痛点。
Vertex AI
直到今年Google Cloud 正式推出了Vertex AI,之前小范围试行过,今年5月才正式对外发布。从几家大用户的反馈来看,这东西简直神了。其实真要说技术上的改进,其实不多kubeflow和TFX都是之前就已经开源的项目。
Vertex AI真正超越了原来的Cloud AI Platform或者kubeflow的地方还是用户体验,说白了用户要的是开箱即用,一键部署:
- Vertex AI简化了所有的操作流程,减少了80%的工程代码
- Vertex AI继承了以前的Cloud AI Platform,可以直接提供 Auto ML和BigQuery ML
- 把jupyter作为DS的操作界面。kubeflow包含了jupyter notebook的集群;Vertex AI更进一步,直接托管。用户可以在jupyter notebook里面发布 自动调优 上线部署一气呵成。据说项目落地时间从6-12个月降低到了2-4周。
Vertex AI对数据分析团队的影响
Vertex AI减少了80%的工程量之后,DS瞬间就从缺乏engineer support的场景下解脱了,业务重点只剩下洗数据、找特征、开发model原型。MLE也解脱了,工作重心回到了收集数据、处理数据。从用户反馈来看,不仅业务上线快了,连机器学习的效果都提升了…比较离谱的是,机器学习效果提升是因为DS和MLE能把更多的时间花在处理数据上,数据质量大幅度提升了。至于Training model,我发现大部分乙方公司的水平也就跟NAS自动做出来的五五开。合着之前就是在garbage in garbage out…
话又说回来了,这跟DevOps有什么关系。原因是这套基于kubeflow平台的方案其实并不轻量。如果有某些原因不能直接使用Google 的Vertex AI,那就不得不自己搭建一套了。公司需要额外的一群DevOps来管理集群了,也就是实际上的MLOps。(以前那种想让MLE或者DS来做MLOps的思路不能说行不通,只能说不合理…
最后说一句
目前看来,这东西可能真是一片蓝海。Vertex AI在市场上暂时没有竞争对手,AWS Sagemaker都不行。唯一有点接近的是IBM的Waston AI Platform。毕竟是kubeflow方面仅次于Google的厂商。
国内这块基本上也是空的,阿里和华为的参与度目前都不高,多半以后会自建一套平台。之前有个CaiCloud才云科技,也参与了kubeflow,被字节收购进了火山引擎。但是不管哪一家都离Vertex AI相去甚远。MLOps目前还是很有搞头的