MLOps权威指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

为什么写这本书

我们都把大部分职业生涯花在了自动化上。当我们第一次见面时,Alfredo不懂Python,Noah建议每周自动化一项任务。自动化是MLOps、DevOps和本书自始至终的核心要点。你应该把本书中的所有例子和观点放在未来自动化的背景下。

如果让Noah总结一下他在2000年到2020年是如何度过的,那就是自动化他能自动化的任何事情,从电影剪辑到软件安装,再到机器学习管道。作为湾区初创公司的工程经理和首席技术官,他从零开始创建了许多数据科学团队。因此,他在AI/ML革命的早期阶段就看到了将机器学习投入生产的许多核心问题。

在过去的几年里,Noah一直是杜克大学、西北大学和加州大学戴维斯分校的兼职教授,主要讲授云计算、数据科学和机器学习工程课程。这些教学和工作经验使他对实际部署机器学习解决方案所涉及的问题有独特的看法。

Alfredo曾是一名系统管理员,拥有丰富的运维背景,对自动化也有极大的热情。如果没有一键式自动化,就不可能构建弹性基础设施。当灾难情况发生时,没有什么比重新运行脚本或管道就可以重新创建崩溃的内容更令人欣慰的了。

受COVID-19的影响,我们俩都在思考一个问题:“我们为什么不将更多模型投入生产?”Noah在他为《福布斯》撰写的一篇文章中谈到了其中的一些问题。这篇文章总结的前提是数据科学出了问题,因为组织没有看到投资回报。

后来在O'Reilly的Foo Camp上,Noah主持了一个主题为“为什么我们不能在生产中将机器学习速度提高10倍?”(Why can we not be 10X faster at ML in production?)的会议。我们与许多人进行了精彩的讨论,包括Tim O'Reilly、Mike Loukides、Roger Magoulas等。讨论的结果是:“是的,我们可以快10倍。”因此,感谢Tim和Mike引发了如此有趣的讨论,并让这本书得以出版。

机器学习感觉很像过去几十年中出现的许多其他技术。这些技术从开始到获得结果往往需要数年。史蒂夫·乔布斯曾提出NeXT让构建软件的速度提高10倍的愿景(他确实做到了)。你可以在YouTube上找到那个采访。那么,目前机器学习存在哪些问题呢?

• 关注于“代码”和技术细节而不是业务问题

• 缺乏自动化

• HiPPO(最高薪人士的意见,Highest Paid Person’s Opinions)

• 不是云原生

• 缺乏解决可解决问题的紧迫性

引用Noah在讨论中所提出的:“我完全反对精英主义。编程是一项人人都有的权利。认为只有一部分人才能从事这项工作的想法是错误的。”机器学习也一样,技术不能只掌握在选定的一群人手中,这一点也非常重要。借助MLOps和AutoML,这些技术可以进入公众的手中。通过让这项技术得到普及,我们可以用机器学习和人工智能做得更好。“真实”的AI/ML从业者将模型投入生产,在“真实”的未来,医生、律师、机械师和教师等人将借助AI/ML来完成工作。

本书是如何组织的

这本书的各章内容独立,读者可以根据自己的需求选择阅读。每章末尾都有练习题和讨论题,可以帮助读者加深对内容的理解,并激发批判性思维。

这些讨论题和练习题也非常适合数据科学、计算机科学或MBA课程的教学使用,同时非常适合有上进心的自学者。最后一章介绍的几个案例研究有助于大家像MLOps专家一样构建工作组合。

本书的最后还有几个附录,其中收集了用于实现MLOps的一些宝贵资源。

章节

前几章介绍DevOps和MLOps的理论与实践,包括如何创建持续集成和持续交付等,还涵盖一个关键主题——Kaizen,即对所有事物进行持续改进的想法。

关于云计算的内容有三章,涵盖AWS、Azure和GCP。Alfredo作为微软的开发人员支持者,是Azure平台上MLOps的理想知识来源。同样,Noah花了数年时间让学生接受云计算培训,并与谷歌、AWS和Azure的教育部门合作。这三章是熟悉基于云的MLOps的绝佳材料。

其他几章涵盖MLOps的关键技术领域,包括AutoML、容器、边缘计算和模型可移植性。这些主题包括许多前沿新兴技术。

在最后一章中,Noah给出他在一家社交媒体初创公司工作时的真实案例研究,并介绍他们在执行MLOps时面临的挑战。

附录

附录是在完成Python for DevOps(O'Reilly)和本书期间出现的论文、想法和有价值的项目的集合。使用它们可以帮助你对未来做出判断。

练习题

在本书的练习题中,我们充分利用GitHub和YouTube演示。与“一图胜千言”的说法一致,简历上一个指向可复现GitHub项目的YouTube链接可能抵得上10000字描述,并有助于得到更好的工作机会。

在阅读本书和练习时,请考虑以下批判性思维框架。

独立思考和讨论

根据Jonathan Haber在Critical Thinking(MIT出版社基础知识系列)和批判性思维非营利性基金会(https://oreil.ly/FXoTU)中的说法,讨论问题是批判性思维的基本组成部分。由于社交媒体中错误信息和浅薄内容的泛滥,世界迫切需要批判性思维。掌握以下技能会让你与众不同。

理智的谦虚:承认自己知识的局限。

理智的勇气:即使面对社会压力,也能为自己的信念辩护。

理智的换位思维:能设身处地地为他人着想。

理智的自主性:能树立自我意识,形成独立判断。

理智的诚实:能够用相同的标准对待自己和他人。

理智的坚持:能够提供支持自己立场的证据。

相信理性:相信有无可争辩的事实并且相信理性是获得知识的最佳解决方案。

公正:能够真诚地努力公平对待所有观点。

使用这些标准评估每一章中的讨论题。

章首引语的由来

Noah

我于1998年底大学毕业,花了一年时间在美国和欧洲的小联盟进行职业篮球训练,同时担任私人教练。我的后备计划是在IT部门找到一份工作。我申请成为帕萨迪纳加州理工学院的系统管理员,并且侥幸获得了Mac IT专家职位。我认为成为一名低薪职业运动员的风险回报比太大,于是接受了这份工作。

说加州理工学院改变了我的生活一点都不为过。午餐时,我玩极限飞盘时听说了Python编程语言,我学会了这门语言以便可以“融入”我的极限飞盘朋友圈,他们是加州理工学院的教职员工或学生。后来,我直接为加州理工学院的行政部门工作,并且是加州理工学院的私人Mac专家,为30多岁获得诺贝尔奖的David Baltimore博士提供服务。我以许多意想不到的方式与许多名人互动,这增强了我的自信并扩大了我的人脉。

我还与许多后来在AI/ML领域取得了令人难以置信的成就的人有过很多阿甘式的邂逅。有一次,我与斯坦福大学人工智能负责人李飞飞博士和她的男朋友共进晚餐。她的男朋友花了一整个夏天和他爸爸一起写视频游戏给我留下了深刻的印象。我想:“谁会做那种事?”后来,我在著名物理学家David Goodstein博士的办公桌下安装了一个邮件服务器,因为他总是因邮箱存储空间超过限制而向IT部门抱怨。这些经历让我对构建“影子基础设施”有了兴趣。因为我直接为行政部门工作,所以如果有充分的理由,我就可以藐视这些规则。

Joseph Bogen博士也是我偶然遇到的人之一,他是一位神经外科医生,也是加州理工学院的客座教授。在我在加州理工学院遇到的所有人中,他对我的生活产生了最深远的影响。有一天,我接到服务台的电话,要求到他家帮他修理计算机,后来变成了每周到他家与他和他的妻子Glenda共进一次晚餐。从大约2000年到他去世的那一天,他一直是我的朋友和导师。

当时,我对人工智能非常感兴趣,我记得加州理工学院的一位计算机科学教授告诉我这是一个没有前途的领域,我不应该专注于它。尽管有这样的建议,我还是制订了一个计划,到40岁时要能熟练地使用多种软件编程语言,以及编写人工智能程序。瞧,我的计划成功了。

我可以明确地说,如果没有遇到Joseph Bogen,我不会做我今天所做的事情。当他告诉我他进行了第一次大脑半球切除术,切除了半个大脑,以帮助一位患有严重癫痫症的患者时,我大吃一惊。我们会花几个小时谈论意识的起源,20世纪70年代使用神经网络确定谁将成为空军飞行员,以及你的大脑是否包含“两个你”——每个半球一个。最重要的是,Bogen让我对自己的智力有了信心。在那之前,我一直很怀疑自己能做什么,但我们的对话让我实现了思维的飞跃。作为一名教授,我思考他对我的生活产生了多大的影响,我希望将其传递给与我互动的其他学生,无论是作为他们的老师还是他们偶遇的人。你可以从Joseph Bogen博士的加州理工学院主页(https://oreil.ly/QPIIi)和他的传记(https://oreil.ly/EgZQO)的档案中自行阅读这些引语。

排版约定

本书中使用以下排版约定:

斜体(Italic

表示新的术语、URL、电子邮件地址、文件名和文件扩展名。

等宽字体(Constant width)

用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、数据类型、环境变量、语句以及关键字。

等宽粗体(Constant width bold

表示应由用户直接输入的命令或其他文本。

等宽斜体(Constant width italic

表示应由用户提供的值或由上下文确定的值替换的文本。

该图示表示提示或建议。

该图示表示一般性说明。

该图示表示警告或注意。

示例代码

可以从https://github.com/paiml/practical-mlops-book下载补充材料(示例代码、练习、勘误等)。

这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中使用本书中的代码,而不需要联系O'Reilly获得许可,除非需要大段地复制代码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们的许可,但销售或发布O'Reilly的示例代码则需要获得许可。引用本书的示例代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。

非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处时包含书名、作者、出版社和ISBN,例如:

Practical MLOps,作者Noah Gift和Alfredo Deza,由O'Reilly出版,书号978-1-098-10301-9

如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过permission@oreilly.com联系我们。

O'Reilly在线学习平台(O'Reilly Online Learning)

40多年来,O'Reilly Media致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。

我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O'Reilly的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O'Reilly和200多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com

如何联系我们

对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。

美国:

O'Reilly Media,Inc.

1005 Gravenstein Highway North

Sebastopol,CA 95472

中国:

北京市西城区西直门南大街2号成铭大厦C座807室(100035)

奥莱利技术咨询(北京)有限公司

要询问技术问题或对本书提出建议,请发送电子邮件至errata@oreilly.com.cn

本书配套网站https://oreil.ly/practical-mlops上列出了勘误表、示例以及其他信息。

关于书籍、课程、会议和新闻的更多信息,请访问我们的网站http://www.oreilly.com

我们在Facebook上的地址:http://facebook.com/oreilly

我们在Twitter上的地址:http://twitter.com/oreillymedia

我们在YouTube上的地址:http://youtube.com/oreillymedia

致谢

来自Noah

如前所述,如果没有Mike Loukides邀请我参加Foo Camp并与Tim O'Reilly进行精彩的讨论,本书就不会出版。接下来,我要感谢我的合著者Alfredo。在与Alfredo合作的两年多时间里,我有幸写了五本书,两本由O'Reilly出版,三本自行出版,这主要归功于他热爱工作和完成工作的能力。对工作的热忱也许是最好的天赋,而Alfredo就富有这种技能。

我们的编辑Melissa Potter做了大量工作,使内容成形,她编辑之前和之后几乎是两本不同的书。能与这样一位才华横溢的编辑合作,我感到很幸运。

我们的技术编辑,包括Steve Depp、Nivas Durairaj和Shubham Saboo,在为我们提供关于在何处进行调整以及何时调整的重要反馈方面发挥了至关重要的作用。许多改进尤其归功于Steve的全面反馈。另外,我要感谢Julien Simon和Piero Molino用现实世界的MLOps想法改进了我们的书。

我要感谢我的家人Liam、Leah和Theodore,他们在疫情期间给了我空间,使我能在紧迫的期限内完成这本书。我也期待着阅读他们将来写的一些书。还要感谢我在西北大学、杜克大学、加州大学戴维斯分校和其他学校教过的所有学生,他们的许多问题和反馈都写进了这本书。

最后,我要感谢Joseph Bogen博士,他是AI/ML和神经科学的早期先驱。如果我们没有在加州理工学院相遇,那么我成为教授或这本书存在的可能性就为零。他对我的生活产生了非常大的影响。

来自Alfredo

我非常感谢我的家人Claudia、Efrain、Ignacio和Alana对我写作的支持,他们的支持和耐心对于完成本书至关重要。再次感谢Noah,感谢所有与他合作的机会。这是另一个令人难以置信的旅程。我珍惜我们的友谊和我们的专业关系。

感谢Melissa Potter(毫无疑问是我合作过的最好的编辑)的出色工作。我们的技术编辑在发现问题和突出需要改进的地方做得很好,这是非常难得的。

也非常感谢Lee Stott在使用Azure方面提供的帮助。没有他的帮助,关于Azure的内容就不会写得那么好。感谢Francesca Lazzeri、Mike McCoy以及我就本书联系过的微软的所有其他人。他们都给了我很大的帮助。