近期,ML/AI Infra 行业的倒退引发了业内人士的热烈探讨。其中,硅谷守业公司 Bluesky 创始人 Mingsheng Hong 分享了他在这一畛域的心路历程,总结了 ML Infra 倒退的经验教训。他自己此前曾在 Google 的 Data Infra 工作,而后转向 ML Infra,2022 年初,他和 Zheng Shao 一起创建 Bluesky Data(getbluesky.io),再度回归 Data Infra。
以下是他的讲述,OneFlow 社区做了不扭转原意的编译。
撰文|Mingsheng Hong
翻译|周亚坤、张雨珊
1
从 Data Infra 到 ML Infra
2017 年,我在 Google 建设了一个全新的列存储索引,并且把所有的外围商业剖析工作负载(比方 AdWords 和 Display Ads)都移到了这个新零碎里(但迁徙过程自身也有几百个步骤,很简单)。
我花了两个季度的工夫来确保生产的稳定性(素来没有掉线过,思考到这是存储格局的迁徙,也算是个大工程了)。在这期间,我还率领团队让列存储在新一代零碎 Napa 和 F1 Lightning 中能失常运作。
一天,我在 Google Brain 发现了一个由 Chris Lattner 发动的新的 TensorFlow 我的项目,将一个编译器 + 运行时办法利用于构建 ML Infra。我很感兴趣,不仅仅因为 Chris 自己(LLVM、Swift 等我的项目的负责人)的号召力,还因为我认为 SQL 查问优化器和存储 / 执行引擎是一个专用的编译器 / 运行时零碎,这个畛域我曾经钻研了十年。
我很好奇构建 Data Infra 的哪些教训能够利用到 ML Infra 上,这两者也都能够从通用编译器 / 运行时上学到一些货色。
比方,只管上图所展现的内容不是在数据库背景下创立的,但它立即引起了我的共鸣,因为 Data Infra 行业领有 SQL 和 JDBC/ODBC 这样弱小的规范,使许多前端能够和一个独特的后端数据库“交换”,这反过来也能够部署到不同的硬件环境中。
同时,我也对这些新的学习机会感到很兴奋。就这样,我决定冒险一试。几年下来,这次单干产生了如下成绩:
(1) 一个新的 ML/TensorFlow runtime(TFRT)
(2) 一个新的 AI Infra 公司 Modular AI
(3) 一个实验性的 ML 框架 Swift for TensorFlow
2
三条经验教训
尽管我有很多技术、领导力和策略方面的经验教训能够分享,但我筛选了以下 3 条,可能会引起宽广受众的共鸣。
(1) 规范的力量
在 ML 之前,我次要做的是 Data Infra 工作,过后身处 SQL 和 JDBC/ODBC 这样的规范中,它们无处不在,但我并没有真正感触到它们的力量。
在 ML 中,Python 或多或少曾经成为了“规范主机语言”,但它的各种 ML 编程框架和 API,如 PyTorch、TensorFlow(有或没有 Keras)、Jax 和 MxNet,都有某些不同的编程模型和形象(例如 PyTorch 反对可变张量,而 Jax 是面向函数式编程设计的),这使得用户很难从一个框架迁徙到另一个框架。
不仅仅是面向用户编程 ML 模型的 API,还有其余重要的 API,例如用于再训练或服务(比方 TF SavedModel) 的可序列化的、经过训练的形象模型,还有让硬件供应商将加速器集成到 ML 框架中的 API,都十分须要规范。尽管你可能据说过 ML 中的规范,但它们看起来更像是这样:
我亲身经历过这种苦楚,因为我的一些我的项目(例如 TFRT)使 TensorFlow 变得更好,但这并没有主动将其劣势扩大到 PyTorch 和其余工作中,因为不足规范和框架之间的互通性。作为跨框架规范,ONNX 设定了一些指标,心愿其利益相关者能够持续推动。
如果没有弱小的 ML 规范,我放心当初蓬勃发展的 ML Infra 初创公司无奈长期凋敝——AWS 的 SageMaker 这类集成平台原本能够更好地向用户销售他们的垂直集成。由 AlphaZero 和 GPT- 3 等引人注目的人工智能冲破 / 里程碑(还有那些热门的风投资金)推动的“拆分时代(Era of Unbundling)”可能不会继续太久。
相比之下,Data Infra 也在进行拆分,但因为它有弱小的规范,我心愿看到更多胜利的 BI 工具、ETL 提供商、计算引擎和存储产品。在涉足 ML 之后,我从新爱上了 SQL。
(2) 理解并聚焦客户
深度学习是助推市场的重要 ML 分支,直到最近都在疾速倒退(在我看来,它的倒退逐步趋于平稳,对于这一点欢送探讨)。因而,ML 从业者的角色在 Data Infra 中十分重要。
然而,对于 ML Infra 供应商来说,明确他们的指标用户至关重要。例如:他们的指标是否是模型钻研人员,正要撰写对于新神经网络体系结构的钻研论文?如果是的话,那就不要吹捧 ML Infra 产品是如许“封装良好”和“一键启用”。许多钻研人员自身也是弱小的软件黑客,他们长于发现新的、乏味的应用(或“滥用”)低层级 Infra 的办法,以实现他们的翻新(例如 AlexNet 就源自一个聪慧的 GPU 黑客)。
相同,如果他们针对生产 ML 模型的工程师(也叫“ML Eng”),那么尽量不要裸露太多的低级“旋钮”,因为这会使产品难以使用,并且难以扩大 / 保护。同样,不足规范往往会让事件变得更加艰难。
(3) 减速 ML 执行
以下减速 ML 执行的示例技术很乏味,并且与其余畛域(如数据库查问优化)相干:
a) 应用像“Eigen”这样的软件库(https://eigen.tuxfamily.org/)实现沉重的代码,以优化 CPU 执行,或调用硬件供应商库(如 CuDNN)来执行加速器。
b) 执行 Python 生成“计算图”(相似于 SQL 查问打算),对其进行优化,而后执行。它还有其余技术名称,比方“跟踪 jit(tracing jit)”和“惰性张量(lazy tensors)”。
c) 在 ML 模型服务时应用非凡的背景常识,如模型权重为常数,这样就能够在模型执行之前进一步优化模型(相似于 SQL 优化,如果咱们晓得 FK-PK 束缚,能够将一些 LEFT JOINs 转化为 INNER JOINs)。
3
为什么回归 Data Infra
有人问我,为什么要从 ML 回归 Data Infra?Data Infra 不是更老派,而 AI 才是将来吗?
听下来有情理,AI 看起来更夺目。但我认为,这一转变是职业倒退的一个“提高”。当我转向 ML Infra 时,我次要是受到构建更宽泛技术根底的思维欲望的驱使,想弄清楚如何应用编译器 / 运行时框架在数据和 ML 中构建大规模零碎。
我已经是一个高兴的工程师,满足于我的白板探讨,解决前沿技术问题,在公司自助餐厅享受美味的午餐,然而,我没有深刻思考“影响力”(比方我的工作将如何扭转世界)。
当初,我曾经实现了上述思考工作,并从谷歌这个神奇的中央毕业,我感觉我“不在堪萨斯”了。我的下一个职业抉择不仅是看什么货色比拟酷,而更看重什么货色具备影响力。生命短暂,是时候谋求最大的影响力了。
将来几年,我置信我对 Data Infra 的关注会在 ML Infra 上产生更大的影响,次要有三点起因:
(1)机会
从我本人与不同行业、规模的公司研究性交换来看,简直每个人都会遇到数据问题(通常都比拟紧迫),只管许多人“心愿”有 ML 问题,但他们还没到那个境地。为了开发 ML 能力,他们首先须要稳固数据流水线,有高质量的数据,还须要雇佣 ML 人才来训练和部署模型。
如果不是行业还不成熟,我就会想要创立一个基于优化运行时(如 TFRT)的公司。话虽如此,尽管整个行业的 ML 实际依然是一个利基市场,但我置信世界将更多地承受 ML,包含关怀如何让 ML 更快、更便宜。
(2)ML 不足规范
如果没有弱小的 ML 规范,基于 ML Infra 产品来建设大规模业务将具备挑战性。相比之下,像 Cresta 这样的 e2e AI 产品是我心中的一种优越商业模式。
(3)合作者
除了与 Zheng Shao 单干,咱们的网络数据云用户、投资者、参谋、敌人和过来的共事也激情地反对咱们,目前咱们还是比较顺利的。
最初还有一些注意事项:
a) ML Infra 是一个很酷的畛域,具备弱小的长期后劲——以上想法仅仅是我本人的职业规划。我将持续反对在这一畛域工作的企业家敌人们。我置信他们的一些公司能够在他们的畛域建设真正的规范,比方在 ML 服务中的 BentoML,以及在 ML 编译器 / 运行时 Infra 中的 Modular AI。
b) 一旦咱们让 Bluesky 的数据云更快、更便宜、更智能(通过在适当的时候应用 ML),还打算让 ML 工作负载运行得更好。
c) Data Infra 依然有很多问题。上面是一个值得思考的例子:一个不审慎的数据云用户可能很容易破费 100 美元进行一次查问提交,但没有产生任何业务价值,那么,应该如何设计产品来调整定价模式,防止这种可怕的状况?
( 本文经受权后编译公布,原文:
https://www.linkedin.com/feed…)
欢送下载体验 OneFlow v0.7.0 最新版本:
https://github.com/Oneflow-In…