zl程序教程

您现在的位置是:首页 >  工具

当前栏目

【SaaS播客】onboard8. MLOps:下一个基础软件百亿美金战场?

SaaS软件基础 一个 亿美金 战场 播客
2023-06-13 09:14:14 时间

机器学习是我一直很关注的领域,我觉得最有意思的一点是:它不像传统软件是把已有的知识固化,而是通过数据衍生(预测、推断)出未知的知识。这种从有限游戏到无限游戏的转变我觉得对拓展思路很有帮助。讨论中提到的Data-centric, HuggingFace(AI Github)等我也在近期略有接触,还是挺前沿的内容。

MLOps是主持人Monica熟悉的Infra领域,她之前还是AWS SageMaker的员工,嘉宾也都是机器学习领域的老兵。我不是这方面直接的从业人员,但在多年前就通过Coursera入门,也试用过Tensorflow、GCE AutoML这样的产品,尤其是近期AIGC的产品众多。因为机器学习偏技术,所以嘉宾们会讲得比较细致,如果原文摘录会太长;而我在该领域的知识也没有SaaS那么熟,所以总结得难免有偏差,请见谅。

这次是来自2022年4月9日的直播https://mp.weixin.qq.com/s/e6-1QBcmVtAcVOdzpI08dQ,播客发表于2022年5月24日,如果想边听边看可以点击“阅读原文”或访问https://u3cexcdeqf.feishu.cn/minutes/obcnk2s11265wm8ff9m4x581 。以下,Enjoy!

问题:到底什么叫做 MLOps的产品?

Monica:从Nvidia的一个blog上可以理解为:MLOps就是在大的DevOps的框架下,针对开发ML的应用的一套流程和相应的工具链。从数据收集、模型开发、训练,一直到ML的CICD、环境部署还有监控,还有实验管理等一切的工具。

Yifan:做ML我会把它定义成:从0 到1,然后 1 到100,然后再加一个 production,这么三个大的workflow。

0到1就是从0要把model 建起来。这时候需要一套工具,可能需要数据、可能最常用的是一种 IDE如notebook。0到1这块workflow非常不 standard。每个人可能prefer的IDE非常不一样,或者说所需要的数据的type也非常不一样,就是每一个use case都非常不 standard decision。

然后 1 到 100 意思就是说已经有一个模型了,就一直要在这个模型的基础上做一些 improvement。然后可能是你会re-train或者fine-tuning,或者是你会重新加一些 data进来,或者说你就是 take based model 做一定的改进,然后去 push 到下一步。在这一块我是觉得很重要的一块就是怎么去orchestrate,怎么去 re feature engineering。如果能在这块能真做得efficient高效的话,整个deployment的 cycle 能把它缩得很短,这样子的话你的 train 的 model 就越多。那你可能就找到 right model 可能chance就更大。

最后一块就是model 已经有了,要去一起去运行一起去跑。然后就 productionization。这块的话,可能比较重要的就更多是一些reliability问题,就可能又是一套不同的需求。

Amazon SageMaker针对不同ML生命周期的功能:

Chaoyu:我觉得从 0到1、1到 100 这样一个区分。这两个阶段有一个最大区别其实是他所负责的团队和stakeholder非常不一样,然后不同的stakeholder他关注的点也会非常不一样。一开始机器学习的模型开发者可能更多关注的是模型本身的性能和精确度。他们想要的 infra 是可以更快的去训练模型,他们想要更好的数据集,然后更容易的去做不同的实验,最后产生出来一个更好的模型。但是模型上线之后可能更多是我们说的MLEng 机器学习工程师和 DEV OPS,去负责把这个模型真正的可以大规模的去应用到产品中。这个阶段对于infra和工具的需求,更多在于它的稳定性,它的安全性、它的可扩展性、性能。或者这个阶段 product manager 产品经理可能会说我用户对 latency 对这个模型的反应时间有需求,我对它能 serve 多少用户会有需求。所以到这个阶段,你可以看到有非常多不同的stakeholder会进来提出不同的需求。这也是为什么一个模型在开发阶段,可能更多是单一的对于 machine learning scientist 在去的需求,但是到了部署的阶段,会有更复杂的一些需求进来。这也是为什么会衍生出来 ML OPS 这样一个领域。

Amazon SageMaker面向不同的stakeholders:

Quinn:很多技术,它在实验室表现得非常好,在纯净的环境,各方面都很perfect的环境,表现比较好,生产良率比较高的这样一些技术。到 scale up 时候,到了现实这个 production 的时候,就会出各种各样的问题,良率再上去完全是两码事。所以我们当时在做投资的时候,有 lab 这个 proof of concept,和有这个 scale up production 是完全两个概念。我觉得machine learning也是这样。

问题:为什么这个时间节点突然出现了那么多MLOps的公司?它最主要的driver 是什么?

FAANG等最领先的科技公司已经实践了一些应用,越来越多的公司看到了已经被证实过的策略和ROI。而市场上机器学习工程师、infrastructure工程师是非常难招到的,所以会尝试去用MLOps的工具。因为对于一个机器学习团队来说,使用一个更好的工具意味着他们需要招聘更少的工程师来完成这项工作。最后一个点是过去几年在data infra领域的工具越来越成熟,在数据这一层面有非常好的工具去支撑他们的后续的机器学习应用的开发。

供给驱动,传统企业由于有Databricks、Snowflake或者其他产品的出现,使得他们现在可以做ML了。在经济可能会下滑或者说增量不是很多,同样市场比较大的时候,大家也会期待用人工智能带来更好的推荐,带来更好的 intelligence,带来更好的商业决策或者说把一些过程自动化。这些都是AI擅长的。

ML data infrastructure:

问题:早期early adopter是怎样的公司?在使用专门的MLOps 的工具之前,他们怎么解决问题的?通常是怎样的trigger让他们用专门针对 ML 的工具,来去替代原来的比较 general 的工具了?

Early adopter是科技公司的深度用户比较多,另外一个比较典型的adopter是ML consultant 公司。早期其实都是有ML engineer,然后有能力去做这些开发的公司。他们选择这样的工具更多就是觉得这个工具可以帮他们省下非常多的时间,然后可以允许他们去做一些他们可能觉得更有趣的事情。

用户画像很有趣,他首先这个公司要足够 sophisticated,他要足够做这个人工智能已经做的到一定程度,他能意识到就这个 deploy 就是部署也好,或者monitoring监督也好,或者他要意识到有什么这个 data drift 这样的问题,或者意识到他们这个 data set imbalance 这种问题,他才可能会去会发现说这些问题解决起来真麻烦。所以我会觉得,但是这对我们ML OPS 来说可能,就可能是一个 sweet spot。因为他们又真的想往里面去放钱,又有这个实力,但可能又hire不全人,或者说没有那么多的这个资源去,人力资源啊,他可能钱很多,他没有那么多人力资源可能会就是这个 ML OPS 一个比较好的 early adopter。

问题:甲方在做MLOps是否自己 build,build vs. buy,还有最后怎么做选型?

在Cruise大部分都是自己搭的工具。然后可能一些我们会买的工具,可能更多是 focus on,因为我们的ML engineer比较多,我们build model的人很多,所以说我们可能会 focus on 买一些就是 UI 的一些产品。然后这些产品可能我们内部也没有这个expertise去做这件事情。第二点就是可能他的productivity gain是比如说 10% 到 5%的,但是我的engineer人很多,这样子整个加起来它就是一个很划算的。

我们有看到团队本身完全没有任何在 infrastructure 或者是DevOps上的那种专家。所以如果没有BentoML或者其他类似的产品,ML flow 等等,他们可能是完全没有办法把模型上线,所以更多是一个对他们来说是有或没有的一个问题。当时一方面是一些在技术上非常有实力、非常有资源的公司,他们在模型上线的阶段可能会选择一个非常贵的方案,就是当一个模型训练好之后,数据科学家会把他们的代码、他们的notebook和他们训练好的模型转交给另外一个工程师团队,让他们来负责把这些模型上线。工程师团队就交接之后,会有一个相当长的开发周期。他们可能会用另一种编程语言来重新实现一遍这些数据科学家已经有的一些代码、甚至模型,来保证那些对产品生产环境的一些需求。

问题:哪一类人群更有动力去推动MLOps产品?

早期的时候开源产品其实推动更多的还是 engineer inside,MLEng。可能有很大一部分原因是,我们看到绝大多数团队里是 ML engineer 在负责模型的部署上线这一个阶段。但是越来越近期几个月,我们其实看到相当多算是 data science organization 的一些 leader,比如说ML的manager,或者是director of ML,会去驱动这一点。他们驱动的角度通常就是,一个是他们想标准化他们模型部署的流程,这样的话确保他们非常昂贵请来的 data scientist 训练出来的模型可以真正的被应用到产品当中去。另外一个方面就是,在刚刚应该是Quinn提到了 full stack ML engineer,就是整一个机器学习 stack 上都会去做的这样一个人,也是我们早期的时候看到非常多会去推动这样一个 adoption 的人,因为他是真正能看到BentoML这个产品在两边能带来的价值。

问题:单点VS.平台。怎么去选择切入点?最后如果要走平台化的话,什么样的一个时间点更适合去往上下游去延伸。真的是每个人都需要把整个链条做起来,还是说其实整个链条中间的一两个,它自己本身的价值点就足够高,就可以做到足够大呢?

创业或者说商业的一个基本逻辑就是最小的闭环,或者说你最少的流程创造出最大价值的点在哪里?那我觉得刚才像Chaoyu的模型部署场景就特别适合在这个场景去深入的切进去。因为这个 value 很明确,这个 value 非常大。但是对Scale或者说对Snorkel来说,大家一上来认识到我们解决的是标注数据这个问题,但标注数据的 value 其实不那么容易被直接在小闭环当中被体会到,因为你这个 data label 到底好不好?你实际上最后你不可能每个再去重复的去验证,那这个就没有意义,这个就成本太高,并且人工智能就没有意义了,就变成全是人工没有智能了。所以就是说你要去验证这个 data 好不好,最终其实你要去验证模型好不好。那么这实际上就是说最小闭环,你的销售团队去卖产品的时候,卖的是哪一个具体的落地的点最后给人有价值的感受。

问题:开源和商业化。开源产品商业化的过程,怎么设计商业化的产品?

Chaoyu:我们开源产品解决的可能更多是底层一点核心的高性能的模型 inference,模型叫 model serving 的一个组件,然后基于它有一系列的模型部署,然后到生产环境的工具。这一些最核心的开发工具其实我们都是开源的,我们希望更多人可以去使用它,我们不想在这个过程中添加任何的阻拦。我们的目标是让BentoML 核心的开源框架变成这个领域一个公开的开源的标准。就是不管你的模型上线的使用场景是怎样,是做实时的、通过一个 API 来提供你的模型,或是要去在 Spark 上跑一个 offline 离线的非常大的那种模型,inference的 job 它都可以做到很好的支持。但是要使用这样的工具,其实你还是有一定的 engineering 的那个门槛的,你还是需要一些工程师去理解这个产品如何使用,实际的去运维它、去部署它。像我们最近开发的一个新的框架叫Yati,是一个BentoML 的后续产品,它就更多是做大规模模型的管理,和在Kubernetes上的高性能的部署。这种产品本身的复杂度非常高,它有非常多的 component 去实际去运营它和部署,它也非常多的挑战。所以我们可以让用户很快的体验到这个产品,看到这个产品有怎么样的价值。如果他们有很好的工程师团队的话,他们可能可以选择自己去部署和使用这个产品。但是另外一方面有相当多团队急需一个方案,然后又没有那么多工程资源的话,可能就会选择我们商业的一个 hosted SaaS 的产品,可以很快的把它模型做大规模的部署和管理。

Databricks最大的使命是要让big data simple,就是让大数据变得简单。然后在做到那一点之前,有几个步骤,第一步是我们想要让 Spark 变成最好的大数据开源平台。然后第二个步骤是让Databricks的平台变成最好的,去使用和运行 Spark 的地方。然后第三步才让Databricks变成最好的、最容易去做大数据的一个 general 的平台,就不再只是spark。对,所以早期你可以想象这一个几乎就是给工程师的一个使命。

Quinn:我觉得开源产品对我们来说还是一个Leads Generation,就是有很多我们后来的这个客户都是当年可能用过或者是无论在academic还是在什么地方,就现在对我们来说也是非常好的一个带来新客户的这样一个渠道。但是我们其实在开源,刚才好像有观众问到,就是我们后来的确就已经没有再继续去 support 我们的这个开源的这样一个项目了,我们还是走enterprise路线,这之前可能开源项目的很多的功能和 code 我们也都不再用了。

Yifan:就一是你在你这个领域,你跟你的competitor竞争,你的优势有多大?这块我觉得大家都讲了。第二点就是即使你在这个领域里比别人优势都强,你客户群里有多少愿意去买这个 best breed,还是他说我在这个平台上拿一个他现有的这个 feature 帮我解决这问题,可能没有你这个解决那么好,但I'm OK with。我觉得这个可能是一个比较 interesting 一个话题,我一个比较好的例子就是比如在 data infra 这边,就是 security privacy 是一个很 typical 的一个 best breed 一个 example。就说很多公司愿意去花钱去买这个 best breed,尽管也许他在平台上可以有这种 security 或者或这种 compliance 这种 product 也可以做。但是这个 topic 对于大部分 enterprise 来说太重要,他愿意花钱去,他的意愿他去花钱去买这个 best breed意愿非常非常强。第二个问题就是开源。其实我个人对开源的想法一直就是,开源不是一个 business model,更多可能是一个 go to market strategy。就是我觉得一个 business model 是说我觉得 Databricks 我觉得可能我现在看就是我觉得它更多是一个 compute service 一个公司,它是卖一个software service, 它的尤其是玩 compute 这块,当然现在也 expand 到默认就是这个 manage Spark service 但是太原只是它一个名词,只是它尤其是对它前期它就说刚才昆阳还有也提到就是可能前期lead generation 一个帮助,可能还有一个产品开发的一个模式。但是ultimate到最后你还是在做一个公司对吧?你还是在做一个商业化产品。所以我觉得开源可能更多是一个,中文翻译就是 means to the end,更多是一个 go to market 一块就帮我们一个 framework,而不是一个 business model。

问题:你们现在做的事情你觉得最大的挑战。另外一个你觉得从MLOps这个行业,你觉得最需要解决一个挑战是什么?

Chaoyu:对于我们来说最大的挑战其实仍旧是两个方面,一方面是继续推进BentoML开源的adoption,让更多的公司使用它,让它真正建立起来一个行业的标准。第二个阶段就是从一些早期的BentoML 开源用户中去发掘好的潜在的商业用户。刚刚Monica也有问到这个问题,就是如何去选择早期的用户。这个对我们来说其实是一个相当大的挑战。一方面我们想要有一些非常大的企业的 logo 和名字对吧,然后看到他们去给我们去使用和买我们的商业产品。那另外一方面,早期创业公司做infra的也非常想要避免一件事情,就是被一个早期非常大的用户去 dictate,就是你的所有的产品开发的 roadmap 全都得围绕着一个公司来,那么你的产品可能变得不那么generic。就是你可能能把这一个用户服务的非常好,但是产品不再对其他的公司来说可能不再那么的实用。所以这两者之间需要找到一个瓶口,我觉得是可能开源到商业化最大的一个挑战,也是我们现阶段在面临的一个挑战。

问题:早期怎么招到优秀的人才?

Chaoyu:好的,我觉得早期创业公司,特别是最开始的几个员工,很多都是利用自己的 network,自己认识的朋友或者一些 social network 上了解的朋友,去从那个角度去招聘。然后现在一些比较多的招聘的 channel,可能一方面是在其他的大公司或者 AI 相关的公司。甚至在那里作AI infrastructure 的人,这些人会非常有经验。但是这些人相对来说会非常的 competitive,可能如果他们有人想跳槽的话,会有很多公司去抢。另一方面就是对于我们 Infra 这一块比较多的是,从之前就是做传统的软件的 infrastructure 和开发者工具的 engineer 当中去找,对机器学习和 ML OPS 领域有兴趣的人。其实这一部分也是非常非常多,可以去招到一些非常优秀的工程师。

Quinn:挑战挺多的,就是觉得难。但是我们后来我觉得我们还是跟一些 talent partner 可能他们后来找了几个 talent partner 他们pipeline就是带来了不少人,包括我们的投资人,像我们有好几个同事好像是,通过像什么Graylock他们的一个 pipeline 还有莱斯币,他们好像都有帮到。对,就这也非常感谢投资人,就是有专门的 program 去做这个事情。我现在感觉就是做投资,现在如果能帮到这一点,那真的是保持对好了。