第 7 章 培训系统 培训系统
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
ML 训练是我们将输入数据转化为模型的过程。我们获取一组输入数据(几乎总是以高效方式预处理和存储),并通过一组 ML 算法对其进行处理。输出结果是该数据的表示形式,称为模型,我们可以将其集成到其他应用中。有关模型的更多详情,请参见第 3 章。
训练算法描述了软件读取数据并更新模型以尝试表示该数据的具体步骤。另一方面,,训练系统描述了围绕该算法的整套软件。ML 训练系统最简单的实现方式是在单台计算机上运行一个进程,该进程读取数据,对数据进行一些清理并保持一定的一致性,对数据应用 ML 算法,并根据从数据中学到的知识在模型中创建数据表示,并赋予新的值。到目前为止,在单台计算机上进行训练是建立模型的最简单方法,大型云提供商也会租用功能强大的单机配置。但需要注意的是,生产中许多有趣的 ML 应用都需要处理大量数据,因此受益的计算机可能远远不止一台。分布式处理带来了规模,但也带来了复杂性。
在某种程度上,由于我们对 ML 训练系统的概念过于宽泛,ML 训练系统在不同组织和模型构建者之间的共通性可能比端到端 ML 系统的任何其他部分都要少。在第 8 章中,您将看到即使在不同的用例中,服务系统的许多基本要求也大致相同:它们获取模型的表示,将其加载到 RAM 中,并回答应用程序发送的有关该模型内容的查询。在服务系统中,有时服务的对象是非常小的模型(例如在手机上)。有时则是为巨大的模型提供服务,这些模型甚至无法全部放在一台计算机上。但问题的结构是相似的。
相比之下,训练系统甚至不一定与我们的 ML 生命周期处于同一阶段(见图 1-1)。有些训练系统最接近输入数据,几乎完全脱离服务系统来执行其功能。其他训练系统则嵌入到服务平台中,与服务功能紧密集成。当我们观察训练系统维护和表示模型状态的方式时,还会发现其他差异。由于合法的、结构良好的 ML 训练系统之间存在着巨大的差异,因此,要涵盖企业训练模型的所有方式是不合理的。
本章将介绍一个理想化的分布式简单 ML 训练系统。我们将描述一个系统,它位于 ML 循环的一个独立部分,紧邻数据,并为模型质量评估系统和服务系统提供工件。虽然您在现实世界中遇到的大多数 ML 训练系统都与此架构有很大不同,但将其分离出来可以让我们专注于训练本身的特殊性。我们将描述功能性和可维护性培训系统所需的要素,还将描述如何评估附加理想特性的成本和收益。
要求
培训系统需要以下要素,尽管它们可能以不同的顺序出现或相互组合:
- 训练数据
- 这包括人工标签和注释(如果有的话)。在我们使用这些数据时,应该对其进行预处理和标准化。它通常会以一种优化的格式存储,以便在训练过程中高效访问。请注意,"训练期间的高效访问 "可能意味着不同的事情,这取决于我们的模型。数据还应该存储在一个受访问保护和执行策略的环境中。
- 模型配置系统
- 许多培训系统都有一种方式,将单个模型的配置与整个培训系统的配置分开。1这些系统应将模型配置与创建模型的团队和模型所使用数据的元数据一起存储在一个版本化系统中。这在以后会非常有用。
- 模型培训框架
-
大多数模型创建者不会手工编写模型训练框架。大多数 ML 工程师和建模人员最终可能会专门使用训练系统框架,并根据需要对其进行定制。这些框架通常具备以下功能:
- 编排
系统的不同部分需要在不同时间运行,并需要相互通报。我们称之为协调。有些系统还包括以下两个要素,但这些功能可以单独组合,因此在此将它们分开。
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access