来源:专知本文约1600字,建议阅读5分钟这本书是为任何想要利用ML来解决现实问题的人准备的。
许多教程向您展示了如何从构思到部署模型开发ML系统。但是随着工具的不断变化,这些系统很快就会过时。如果没有一个有意的设计来将组件组合在一起,这些系统将成为技术上的负担,容易出错并很快崩溃。
在这本书中,Chip Huyen为设计真实世界的ML系统提供了一个框架,可以快速部署、可靠、可伸缩和迭代。这些系统有能力从新的数据中学习,改进过去的错误,并适应不断变化的需求和环境。您将学习从项目范围、数据管理、模型开发、部署和基础设施到团队结构和业务分析的所有内容。
- 了解生产中ML系统的挑战和需求
- 用不同的采样和标记方法建立训练数据
- 利用最佳技术为ML模型设计特性,以避免数据泄漏
- 选择、开发、调试和评估最适合您的任务的ML模型
- 为不同的硬件部署不同类型的ML系统
- 探索主要的基础设施选择和硬件设计
- 理解机器学习的人的方面,包括将机器学习集成到业务、用户体验和团队结构中
https://www.oreilly.com/library/view/designing-machine-learning/9781098107956/
这本书是为任何想要利用ML来解决现实问题的人准备的。这本书中的ML指的是深度学习和经典算法,倾向于大规模的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工程师、数据工程师、数据分析师等的人。
代码语言:javascript复制