
序
机器学习是巨大技术创新浪潮的核心,而这一浪潮才刚刚开始。机器学习继承了21世纪初的“数据驱动”浪潮,开启了一个模型驱动决策的新时代,允许机器在交互点根据最新的可用信息做出近乎即时、高度可靠的决策,从而提高组织绩效并增强客户体验。
为了能高效使用机器学习模型,机器学习实践必须从主要的学术追求迅速发展为一门成熟的工程学科。研究人员、研究科学家和数据科学家所曾研究的专属领域,现在至少同样是机器学习工程师、MLOps工程师、软件工程师、数据工程师等的责任。
在机器学习角色的演变过程中,我们看到了一种健康的转变,即关注点从简单地尝试让模型运行,转变为确保它们以满足组织需求的方式运行。这意味着构建允许组织有效地生产和交付模型的系统,对其进行增强以抵抗故障,使其能够从任何实际发生的故障中恢复,最重要的是,在学习循环的背景下实现所有这些工作,帮助组织从一个项目到下一个项目进行改进。
幸运的是,机器学习社区并不需要从头开始学习所需的知识来完成这一切。所谓的MLOps的实践者受益于由传统软件项目的DevOps实践发展而来的大量知识。
第一波MLOps专注于技术和流程规范在模型的开发和部署中的应用,从而使组织更有能力将模型从“实验室”转移到“工厂”,并且带来了支持机器学习生命周期这些阶段的工具和平台的爆炸式增长。
但是MLOps中的运维呢?在这方面,我们再次受益于运维传统软件系统所取得的进步。推动DevOps运维发展成熟的一个重要因素是社区对站点可靠性工程(SRE)的更广泛认识和应用。SRE是谷歌和许多其他组织开发的一套原则和实践,旨在将工程规范应用于大型关键任务软件系统的运维挑战。
然而,将软件工程的方法论应用到机器学习并不是简单的举一反三。虽然一方可以从另一方学到很多东西,但在实践中,关注点、挑战和解决方案可能存在很大差异。这就是本书的用武之地。作者并没有让每个人或团队都确定如何将SRE原则应用于自己的机器学习工作流,而是旨在通过分享他们在谷歌、苹果、微软等组织的工作经验,让你领先一步。
多年来,我的工作深受几位作者的启发和影响。
2019年秋天,我组织了第一届TWIMLcon:AI Platforms会议,为当时新兴的MLOps社区提供了一个分享经验、推进构建支持端到端机器学习工作流的流程、工具和平台实践的平台。很多与会者在演讲中展示了D. Sculley的开创性论文“Hidden Technical Debt in Machine Learning Systems”[1]内的“真实世界的机器学习系统”一图,这已经成了一个流传已久的笑话。
在2021年的第二届会议上,Todd Underwood与我们一起发表了“When Good Models Go Bad: The Damage Caused by Wayward Models and How to Prevent It”[2]。该演讲分享了一个手工分析的结果,该分析跟踪了10多年来大约100起事件,在这些事件中,糟糕的机器学习模型已经或即将投入生产。
此后,我有幸在The TWIML AI Podcast播客中采访了D. Sculley,主题为“Data Debt in Machine Learning”[3]。D. Sculley和Todd Underwood在这些互动中分享的丰富经验在本书中得到了清晰的体现。3
如果你是从SRE的角度出发,就无须介绍Niall了。他的著作Site Reliability Engineering和The Site Reliability Workbook在2016年及以后帮助DevOps从业者了解了SRE。
虽然我之前没有接触过Cathy和Kranti的工作,但很明显,他们在构建SRE组织和推动大规模面向消费者的机器学习应用程序方面的经验为本书的许多方面提供了信息,特别是关于实现机器学习组织和将机器学习集成到产品中的内容。
本书汇聚了作者构建、运维和扩展大型机器学习系统的实践经验。
作者并没有简单地记录一组静态架构、工具或建议,而是成功地提供了更多内容:对团队在构建和运行机器学习系统时所面临的巨大复杂性和无数考虑因素的调查,以及作者通过自己广泛涉猎收集到的原则和最佳实践。
过去几年,作为一个社区,如果说我们学到了什么,那就是获得以高效、可重复和可扩展的方式创建、交付和运维机器学习模型的能力并非易事。不过,我们也认识到,正是因为大家愿意公开分享经验并借鉴他人的经验,机器学习社区才得以快速发展。我感谢Cathy、Niall、Kranti、D. Sculley和Todd Underwood让我们都能从他们来之不易的经验教训中受益,并在此过程中帮助推进机器学习在生产中的应用。
Sam Charrington
TWIML 创始人,The TWIML AI Podcast主持人
[1] D. Sculley et al.“Hidden Technical Debt in Machine Learning Systems,”Advances in Neural InformationProcessing Systems(January 2015):2494-2502. https://oreil.ly/lK0WR.
[2] Todd Underwood,“When Good Models Go Bad:The Damage Caused by Wayward Models and How to Prevent It,”TWIMLcon,2021,https://oreil.ly/7pspJ.
[3] D. Sculley,“Data Debt in Machine Learning,”interview by Sam Charrington,The TWIML AI Podcast,May 19,2022,https://oreil.ly/887p4.