许多教程向您展示了如何从构思到部署模型开发ML系统。但是随着工具的不断变化,这些系统很快就会过时。如果没有一个有意的设计来将组件组合在一起,这些系统将成为技术上的负担,容易出错并很快崩溃。 在这本书中,Chip Huyen为设计真实世界的ML系统提供了一个框架,可以快速部署、可靠、可伸缩和迭代。这些系统有能力从新的数据中学习,改进过去的错误,并适应不断变化的需求和环境。您将学习从项目范围、数据管理、模型开发、部署和基础设施到团队结构和业务分析的所有内容。
https://www.oreilly.com/library/view/designing-machine-learning/9781098107956/
这本书是为任何想要利用ML来解决现实问题的人准备的。这本书中的ML指的是深度学习和经典算法,倾向于大规模的ML系统,例如在大中型企业和快速增长的初创公司中看到的那些。较小规模的系统往往不那么复杂,可能从本书列出的综合方法中受益较少。因为我的背景是工程,本书的语言面向工程师,包括ML工程师、数据科学家、数据工程师、ML平台工程师和工程经理。你可能会联想到以下场景之一:
本书的章节是为了反映数据科学家在ML项目的生命周期中可能遇到的问题。前两章为成功建立ML项目奠定了基础,从最基本的问题开始: 你的项目需要ML吗?它还包括为你的项目选择目标,以及如何以一种更简单的解决方案来构建你的问题。如果您已经熟悉了这些考虑因素,并急于了解技术解决方案,那么可以随意跳过前两章。
第4章到第6章介绍了ML项目的部署前阶段: 从创建训练数据和工程特征到在开发环境中开发和评估你的模型。在这个阶段,特别需要ML和问题领域的专业知识。
第7章到第9章介绍了ML项目的部署和部署后阶段。我们将通过一个故事了解到,许多读者可能会认为部署一个模型并不是部署过程的结束。需要对已部署的模型进行监控,并根据不断变化的环境和业务需求不断更新模型。
第3章和第10章关注的是使来自不同背景的涉众一起工作以交付成功的ML系统所需的基础设施。第3章关注数据系统,而第10章关注计算基础设施和ML平台。我花了很长时间讨论如何深入研究数据系统,以及在书中介绍它的地方。数据系统,包括数据库、数据格式、数据移动和数据处理引擎,往往在ML课程中很少涉及,因此许多数据科学家可能认为它们是低级的或不相关的。在咨询了我的许多同事之后,我决定,因为ML系统依赖于数据,所以尽早覆盖数据系统的基础将有助于我们在本书的其他部分中讨论数据问题。
虽然我们在本书中涉及了ML系统的许多技术方面,但ML系统是由人构建的,是为人构建的,并且可能对许多人的生活产生巨大的影响。写一本关于ML生产的书而不写人的方面是不明智的,人的方面是第11章(最后一章)的重点。请注意,“数据科学家”这个角色在过去几年中发生了很大的变化,并且有很多讨论来确定这个角色应该包括什么——我们将在第10章进行一些讨论。在本书中,我们使用“数据科学家”作为一个总称,包括开发和部署ML模型的任何人,包括工作头衔可能是ML工程师、数据工程师、数据分析师等的人。