网易首页 > 网易号 > 正文 申请入驻

机器学习导论

0
分享至

Introduction to Machine Learning Systems

机器学习导论

https://mlsysbook.ai/vol1/assets/downloads/Machine-Learning-Systems-Vol1.pdf








目的

为什么构建机器学习系统需要与传统计算系统治理原则如此不同的工程原则?

机器学习系统有一种物理特性。数据在由带宽支配的内存层次结构中移动,算术在由功率支配的硅上运行,预测必须在延迟窗口内到达。这些约束不是实现细节;它们塑造了从模型架构到部署目标的决策。机器学习系统也与传统计算系统不同,因为行为是由数据定义的,而不仅仅是由显式逻辑或硬件状态定义的。当传统程序行为异常时,工程师通常可以追踪来源或检查硬件状态;当机器学习系统行为异常时,代码可能正确执行,而学习到的行为却失败,因为数据不完整、有偏见、过时或不再具有代表性。因此,机器学习工程师同时管理统计不确定性和物理执行约束。一个适合数据中心的模型在手机上可能毫无用处;一个在一个加速器上一周内收敛的训练管道在另一个上可能需要一个月;一个在去年数据上训练的准确模型可能会悄然退化。传统实践如测试、模块化、版本控制和性能分析仍然是必要的,但它们是不够的。在系统规模上,一个层的优化可能会将瓶颈转移到另一个层,因此正确性、效率和可部署性不能独立设计。因此,首要任务是诊断,因为当另一个约束具有约束力时,改进最可见的组件可能会使端到端行为保持不变。本书建立了一门基于计算物理极限的学科。算法选择影响直到机器的整个栈,而硬件约束则向上回流到模型设计。

学习目标

  • 解释为什么数据定义的行为和物理约束将机器学习系统与传统软件区分开来

  • 应用数据-算法-机器视角来诊断跨数据移动、算术和机器限制的瓶颈

  • 通过惨痛教训分析人工智能从符号规则到深度学习的转变

  • 计算铁律性能项以推理吞吐量、延迟和计算回报

  • 将生命周期、部署、退化和五大支柱视角综合为机器学习系统工程判断

1.1 人工智能系统时刻

人工智能不再局限于研究演示。向智能手机提问,几秒钟内,学习到的组件将语音转换为文本、解释意图、检索信息并生成响应。搜索引擎对结果进行排名,推荐系统决定人们看到什么,贷款机构使用模型评估风险,驾驶辅助系统检测危险。在每种情况下,预测都参与到一个可能影响注意力、金钱、访问或安全的更大决策中。因此,看似单一的智能行为是一个在世界上运行的端到端系统。当三种力量汇聚时,现代人工智能运动变得实用。数字服务产生的示例比工程师能编码为规则的多。学习算法能够从这些示例中提取有用的行为。并行机器使由此产生的计算变得可行。最具影响力的变化是概念性的。数据不再仅仅是软件的输入,而成为定义其行为的机制的一部分。工程师不是编写每个决策规则,而是构建一个训练过程,通过该过程示例塑造系统将应用的规则。这种融合创造了一个双重使命。每个机器学习系统都必须确立其学习到的行为是可信的,并且机器能够在可用的时间、内存、能源和成本内产生该行为。一个准确但太慢的模型是无用的;一个在无代表性数据上训练的快速模型以机器速度出错。这种区别在故障边界处最为明显。代码缺陷可能会大声崩溃,而数据缺陷可能让每条指令都正确执行,但预测会悄然恶化。在规模上,这两种义务延伸到整个栈。对话服务协调 GPU¹ 池,同时管理内存、网络和热量。驾驶辅助系统必须在毫秒内融合传感器流。谷歌每天在严格的延迟目标下处理 85 亿次搜索。这些系统只有在学习到的行为和物理执行被一起工程化时才能成功。这个故事的第一部分是代码定义逻辑向数据定义行为的转变。

1.2 以数据为中心的范式转变

这种转变改变了软件的构建方式。工程师不是直接编写行为,而是构建一个从数据中学习行为的过程。当传统程序失败时,工程师通常可以追踪分支、检查堆栈帧并修补代码路径。当机器学习系统失去准确性时,原因可能是数据分布发生了变化、标签过程改变,或者模型不再代表生产行为。Andrej Karpathy² 将这种变化描述为从软件 1.0到软件 2.0的转变(Karpathy 2017)。如表 1.1 所示,软件 1.0 将操作逻辑编码为指令,而软件 2.0 从示例中学习该逻辑。因此,它的失败可能在评估或监控揭示行为已改变之前一直保持沉默。软件 2.0 并没有消除代码。工程师仍然构建数据管道、训练循环、评估工具和服务基础设施。改变的是行为所在的位置。其中一些驻留在由数据塑造的学习到的权重中,因此仅靠代码审查无法解释系统将做什么。

注释:

1GPU(图形处理单元):最初设计用于渲染视频游戏图形,这种工作负载需要大量简单的并行像素计算。这种硬件-算法对齐被证明对神经网络具有决定性意义,其中同样的大规模并行算术结构直接映射到矩阵乘法,使 GPU 成为现代训练规模的主要物理推动者。

2Andrej Karpathy:OpenAI 的创始成员,前特斯拉人工智能总监,他开创了深度学习在自动驾驶车辆中的应用。他的“软件 2.0”论文(2017)凝练了这一洞见:神经网络权重是新的“源代码”,迫使我们建立一种新的工程现实:工程师不是调试显式逻辑,而是必须策展和版本化定义程序行为的数据,因为拥有数百万参数的模型无法直接修补或推理。


以数据为中心的工作流改变了工程师必须构建和维护的内容。在一项针对谷歌生产系统的研究中,Sculley 及其同事发现,模型代码仅占工程表面的很小一部分(Sculley et al. 2015)。周围的系统——数据收集、验证、特征提取、资源管理、服务和监控——更大且更持久。

这种不平衡造成了隐藏的技术债务。每个周围的组件都编码了关于示例如何被采样、标签意味着什么、特征何时被计算、哪个版本正在服务,以及退化如何被检测的假设。这些假设没有一个出现在产生预测的矩阵乘法中,然而其中任何一个都可能改变结果。仅改进模型无法修复过时的代理、损坏的特征管道或缺失的反馈信号。

因此,生产数据不是被动的输入。它是对世界的测量,通过特定产品收集,并由不断变化的管道进行转换。如果那个测量不再代表预期目标,模型可以在数值上保持健康,而系统却变得错误。谷歌流感趋势提供了一个发人深省的例子。它拥有巨大且及时的搜索数据流,但该数据的含义在模型之下发生了变化。

背景:谷歌流感趋势(GFT)从聚合搜索查询的模式中估计流感活动(Ginsberg et al. 2009; Lazer et al. 2014)。它的吸引力来自搜索相对于临床报告到达的速度和规模。如果人们在生病时搜索流感症状,查询量似乎提供了一种及时的感染代理。
失败模式:该代理并不稳定。新闻报道改变了人们搜索的内容,而自动补全改变了他们表达这些搜索的方式。查询量开始衡量公众关注和产品行为以及疾病。在2012-2013季节,GFT估计的流感样疾病医生就诊比例大约是CDC报告的两倍,并在108周中有100周高估了。
系统教训:补救措施不仅仅是更大的搜索数据集或更好调整的模型。研究人员将搜索信号与CDC哨点临床数据相结合,并随时间重新校准了关系。数据量不是地面真相:行为代理需要一个反馈循环,连接到可信的测量,以及持续的证据表明该代理仍然代表系统声称要估计的量。

3 | 模型权重:神经网络的学习到的数值参数。一个 GPT-3 规模(生成式预训练 Transformer 3)的模型存储了 1750 亿个这样的值,在 FP16 精度下消耗 350 GB,这是一种每值使用两个字节的 16 位浮点格式(Brown et al. 2020)。参数量决定了权重占用空间,并强烈影响服务内存流量和成本(见第5章)。

4 | 随机梯度下降(SGD):该算法通过处理小的、随机采样的示例组(“批次”)而不是一次处理整个数据集来学习模型参数。这以统计噪声换取计算速度。批次大小也会影响机器,因为批次太小可能无法使加速器的并行处理器饱和,浪费其大部分潜在计算能力。

谷歌流感趋势在没有传统软件缺陷的情况下失败了。代码没有改变,但有效程序改变了,因为输入的分布以及代理和目标之间的关系已经改变。在数据即代码原则下,训练数据不仅仅进入一个固定程序;它帮助确定模型实现的操作逻辑。工程师仍然编写优化过程,但示例通过随机梯度下降³和相关方法塑造模型权重⁴。因此,改变数据集可以像改变源代码一样确实地改变系统行为。
从机器学习开发的角度来看,这代表了从以模型为中心到以数据为中心的人工智能的转变(Ng 2021)。在以模型为中心的方法中,团队保持数据固定,并专注于改进模型代码。在以数据为中心的方法中,他们保持代码相对固定,并系统地改进数据,使数据策展成为编程模型行为的一等部分。这种转变也改变了测试能够确立什么,因为没有有限的数据集能够代表学习系统可能遇到的每一个输入。
当我们问一个测试集能覆盖什么时,这个限制就变得清晰了。软件 1.0 逻辑通常可以被枚举或划分为路径和边缘情况。而学习系统则在一个高维输入空间中运行,该空间在技术上是有限的,但在实践中不可能被枚举。2012 年 ImageNet 挑战赛使这个问题变得具体。AlexNet 的决定性胜利⁵ 帮助启动了深度学习时代,然而该基准测试只能评估模型可能遇到的输入的极小一部分。每个输入是一个 224×224 的 RGB 图像,具有 256^150,528 种可能的像素配置,这是一个有 362,508 位数字的数。ImageNet 大规模视觉识别挑战赛(ILSVRC)验证集仅包含 50,000 张图像(Krizhevsky et al. 2012; Russakovsky et al. 2015)。让总输入空间表示可能的输入数量,测试集覆盖表示测试套件实际评估的数量。它们的差异造成了验证差距(公式 1.1):

验证差距 = 总输入空间 — 测试集覆盖 ≈ 总输入空间 (1.1)

这个差距并不使测试变得徒劳;它改变了测试能够确立什么。部署前评估提供关于采样输入的统计证据,而生产监控则测试运行总体和观察到的结果是否仍然支持该证据。统计可靠性取代了任何穷举证明的期望。
工程后果超越了测试。调试一个机器学习系统需要调试数据,而不仅仅是 Python 脚本。版本控制必须跟踪数据集,而不仅仅是 git 提交。评估必须检查分布和结果,而不仅仅是代码路径。这些实践共同使学习到的行为可追溯,但它们不能将统计证据转化为穷举证明。


验证差距标志着工程师能声称的内容发生了更深层次的变化。传统断言通常描述一个特定的执行,其中给定的输入和状态引导程序沿着特定路径前进。机器学习性能声明描述的是一个总体上的行为。一个固定的模型对于相同的输入可能返回相同的输出,而其测量的准确性随着总体变化而变化。数据提供了系统学习所依据的模式,但它的噪声、漂移和遗漏也造成了不确定性。因此,鲁棒性不能意味着抵抗每一个变化。它要求使变化可观察,并在证据不再支持系统假设时进行调整,这是一种概率工程的形式。
从数据中学习行为现在似乎不可避免,但过去并非如此。早期的人工智能系统试图直接编程智能。遵循那些尝试可以揭示为什么瓶颈从逻辑,到知识,到特征,最终到基础设施——以及为什么系统工程成为进步的核心。

1.3 人工智能瓶颈的演变

人工智能的演变揭示了一系列瓶颈的进展,每一个瓶颈都被系统创新所克服,这些创新扩展了计算上可能实现的范围。一个基础性的里程碑是图灵⁶的论文《计算机器与智能》(Turing 1950),它提出了机器是否能思考的问题。早期系统探索了截然不同的方法:感知机(1958)(Rosenblatt 1958)从示例中学习,而 ELIZA⁷(Weizenbaum 1966)遵循手写的模式匹配规则。两者都仍然狭窄,但原因不同。随后的时代撞上了知识获取瓶颈,因为手动知识录入无法扩展。现代系统面临着不同的约束——计算吞吐量。
图 1.1 中的时间线追踪了人工智能在出版书籍中被提及的频率,这是关注的代理指标,而不是研究产出的直接衡量。它揭示了一种反复出现的模式:在资金崩溃时被“人工智能寒冬”⁸ 所抑制的强烈乐观主义,通常是因为系统限制暴露了雄心与可用能力之间的差距。复兴结合了算法进步与新的数据和工程基础设施。每一次复兴都取代了一个瓶颈,并暴露了下一个。


1.3.1 前学习时代:逻辑与知识瓶颈

在机器学习作为一门学科存在之前,工程师们试图通过两个连续的范式来构建智能系统,每一个都撞上了根本性的扩展障碍。符号人工智能将智能编码为逻辑规则,当这些规则无法捕捉现实世界的歧义时,就撞上了逻辑瓶颈。专家系统将智能编码为领域知识,当获取和维护这些知识变得比系统本身更有价值时,就撞上了知识瓶颈。这两个时代共同揭示了驱动后续一切的规律。手工制作的表示无法扩展。

5 | AlexNet:Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 在两个 GPU 上训练了这个卷积神经网络。在 ILSVRC 2012 上,其 15.3% 的 top-5 错误率(意味着正确类别不在其五个最高分预测中)大幅击败了第二名系统的 26.2%(Krizhevsky et al. 2012)。第 1.3.3 节将回到它的架构和系统协同设计。

6 | Alan Turing:他 1950 年的“模仿游戏”将智能重新表述为一个输出测量问题:根据系统做什么来评判系统,而不是根据它是什么。这种工程优先的立场存在于我们今天使用的每一个机器学习系统指标中:准确性、延迟、吞吐量和每瓦 FLOP/s 都是输出测量。铁律(第 1.7 节)将性能分解为可观察、可测量的术语,而不是内部架构属性,正是因为这个原因。

1.3.1.1 符号人工智能时代与逻辑瓶颈

人工智能工程的第一个时代(1950年代–1970年代)试图将智能还原为符号人工智能操作,这种方法后来在物理符号系统假说中被明确化(Newell and Simon 1976)。1956年达特茅斯会议⁹(McCarthy et al. 1955)的研究人员假设,智能的各个方面可以被机器精确描述和模拟。即使在那个时候,IBM的Arthur Samuel在1959年展示了一条不同的路径,当时一个跳棋程序通过自我对弈得到了改进。他的工作创造了“机器学习”这个术语(Samuel 1959),尽管主导范式仍然是符号主义的。Daniel Bobrow的STUDENT¹⁰系统体现了这种方法(Bobrow 1964)。
这些系统可以产生令人印象深刻的演示,但它们在操作上是脆弱的。它们的成功依赖于手动编码的规则,这些规则将每种可接受的输入形式映射到一个符号表示。STUDENT一旦将英语翻译成方程,就能解决代数问题,但措辞上的微小变化可能会阻止这种翻译。困难超出了语言。Hans Moravec¹¹在斯坦福大学关于自主导航的工作揭示,人类觉得微不足道的任务(看、走路、抓取)远比人类觉得困难的任务(如国际象棋或代数)更难工程化。


1.3.1.2 专家系统时代与知识瓶颈

在专家系统时代,工程师们缩小了问题范围。他们不是构建通用推理系统,而是编码来自特定领域的深层知识。MYCIN,旨在诊断血液感染,让医学知识可以被表达为产生式规则(Shortliffe et al. 1975)。


MYCIN 在特定测试中表现良好,但它的成功暴露了知识获取瓶颈。¹² 问题不再是规则是否能表达专业知识。问题在于隐性判断如何进入系统,并在规则库增长时保持一致。
更快的机器可以评估更多规则,但它们无法更快地提取人类判断。可扩展的人工智能需要一种从示例中推断有用决策边界的方法,而不是要求工程师提前枚举这些边界。
这种变化并没有移除人类设计;它改变了工程师所设计的内容。他们不是编码每一个决策,而是选择示例、表示、目标和测量

从中可以学习决策。因此,下一个时代将知识获取瓶颈换成了一个新问题:学习者应该看到什么证据?

8 | 人工智能寒冬作为系统失败:第一次人工智能寒冬(1974–1980)在资金削减中展开;1973年的《莱特希尔报告》批评了人工智能承诺与交付成果之间的差距(Lighthill 1973)。第二次寒冬(1987–1993)涉及围绕专家系统和专用Lisp机器的市场和资金崩溃,因为通用工作站削弱了它们的经济性(Hendler 2008)。从本书的系统视角来看,这两次事件都暴露了算法雄心超越了可用的基础设施、市场支持和工程成熟度,而不仅仅是缺乏聪明的算法。

9 | 达特茅斯会议(1956):这次研讨会围绕“人工智能”这个术语组织,该术语已在其1955年的提案中使用(McCarthy et al. 1955)。其参与者从语言、抽象、问题解决和自我改进的角度来定义智能,很少关注后来成为核心的存储和计算的物理约束。同样的计算不可知假设,即更好的算法总能克服硬件限制,正是本书存在所要纠正的:接下来的每一章都主张系统约束是一流的设计变量,而不是事后考虑。

10 | STUDENT:Daniel Bobrow 1964年在MIT的项目解析受约束的英语应用题,以符号方式表示它们的关系,并将得到的方程传递给代数求解器。这是语言解释与形式推理的早期分离:一旦表示正确,求解就很简单;覆盖范围取决于手写的转换(Bobrow 1964)。

1.3.2 统计学习时代与特征工程瓶颈

1990年代标志着向统计学习和概率系统的转变。系统不是硬编码逻辑,而是从数据中估计概率( p ( y ∣ x )。这种转变是由数字数据的可用性和大型数据集的“不合理的有效性”¹³所驱动的。
垃圾邮件过滤说明了这种转变。统计过滤器不是维护禁止词列表,而是基于数百万个示例学习一个词暗示垃圾邮件的概率。


从数据中学习决策边界消除了一处瓶颈,但暴露了另一处瓶颈。诸如支持向量机(SVM)之类的统计算法只有在人类将原始输入转换为结构化特征之后,才能稳健地学习。学习器调整边界;工程师决定它能看见哪些证据。扩展到新问题通常意味着重建预处理栈,将表面的算法限制转变为特征工程瓶颈。传统流水线使这种人工努力可见,因为在任何学习发生之前,就有若干个手工制作的阶段。
这种混合方法将人工工程特征与统计学习相结合。Viola-Jones 算法¹⁴(Viola and Jones 2001)体现了这个时代,使用简单的矩形特征和级联分类器实现了实时正面人脸检测。它表明,精心设计的特征可以实现实用的低延迟应用,但仅限于专家能够手工制作正确表示的狭窄领域。


11 | 莫拉维克悖论:卡内基梅隆大学机器人学家汉斯·莫拉维克观察到,高级推理(国际象棋)需要很少的计算,而低级感知(行走)需要大规模并行(Moravec 1988)。这个悖论解释了机器学习系统工程的一个核心事实:对人类来说似乎“容易”的任务(视觉、语音、运动控制)恰恰是需要最高 FLOP/s、内存带宽和专用硬件的任务,推动了定义现代机器学习基础设施的加速器革命。

12 | 知识获取瓶颈:费根鲍姆的知识工程工作将应用人工智能围绕提取、表示和维护专家知识的实际困难来构建(Feigenbaum 1984)。从系统术语来说,这个瓶颈是一个吞吐量问题:知识获取和规则维护受限于人类专家的串行带宽。与那些可以通过更快的硬件来缓解的计算瓶颈不同,这是人工智能中最初的“无法扩展”约束,也是随后数据驱动范式的直接动机。

13 | 数据的不合理有效性:观察到,一个简单的统计模型如果喂给大量数据,可以胜过数据较少的更复杂模型(Halevy et al. 2009)。Halevy 及其同事用大型网络语料库说明了这种效应,而不是一个通用的错误率倍增器;收益取决于任务、模型、数据质量和起点。这一结果支持了从脆弱的手工系统向概率模型的转变,并使数据收集、存储、预处理和分布式训练成为核心工程关注点。

1.3.3 深度学习时代与基础设施瓶颈

深度学习改变了系统中学习的那一部分。神经网络不是接收由人类设计的特征,而是直接从原始输入(如像素和音频波形)中学习表示。训练过程现在可以同时塑造表示和决策边界,从而实现“端到端”学习。
这一突破不仅仅是算法上的。卷积神经网络(CNN)更早就存在了(LeCun et al. 1998, 2015);AlexNet 将架构和训练与系统协同设计相结合,将模型、训练过程和硬件映射一起选择(Krizhevsky et al. 2012)。它的并行矩阵运算与 GPU 能力相匹配。凭借分布在两个 GTX 580 GPU 上的 6000 万个参数,AlexNet 实现了 15.3% 的 top-5 错误率,比当年次优参赛作品相对提升了 41.6%。图 1.2 中的处理阶段展示了模型在产生 1,000 个输出类别之一之前,学习逐步更丰富的图像表示。


硬件仍然塑造着能够学习的内容。由于每个 GTX 580 只有 3 GB 的视频随机存取内存(VRAM),AlexNet 将卷积层和全连接层划分到两个 GPU 流之间。这种早期的模型并行设计预示了现代的多 GPU 训练。深度学习减少了对人工制作特征的需求,但它将绑定约束转移到了存储数据、移动参数和协调计算所需的基础设施上。
深度学习有效地用一个新的计算瓶颈换取了特征工程瓶颈。像 GPT-3(1750 亿参数)这样的模型说明了这一新挑战的规模。Brown 等人(2020)报告在来自过滤后的网络文本、书籍和维基百科的约 3000 亿个 token 上进行了训练。使用本书的密集训练近似,这种参数-token 规模意味着大约 314 zettaFLOP 的计算量(1 zettaFLOP = 10²¹ FLOPs)。token 数据集本身占用大约 420 GB。由于原始论文没有指定确切的硬件集群,将其转换为加速器-年是一个说明性的系统估计,而不是一个有记录的基准。主要的工程挑战从描述猫的耳朵转变为协调大规模分布式训练而不失败。
人工智能历史上的每一次重大转变都可以追溯到不断变化的物理约束,而不仅仅是算法发明。表 1.2 比较了四个主要时代在核心推理优势、绑定系统瓶颈和操作数据要求方面的差异。


14 | Viola-Jones 算法:该算法的实时速度来自一个分类器级联,它使用简单的手工工程矩形特征来立即拒绝非人脸区域。该方法是为正面人脸检测而设计和评估的,说明了那个时代的权衡:专家特征设计可能快速有效,但表示是任务特定的。仅前两层就可以丢弃超过 80% 的负子窗口,而仅使用 6,000 多个总特征中的 12 个(Viola and Jones 2001)。

15 | Richard Sutton:强化学习先驱,其 2019 年的文章凝练了第 1.3 节中追溯的模式:从符号人工智能到专家系统再到深度学习,使用计算的通用方法始终胜过手工工程的专业知识。这个教训是“苦涩的”,因为它意味着领域特定的逻辑是一种贬值资产,而持久的优势属于能够吸收自 1970 年代以来原始计算量数十亿倍增长的系统工程。

1.4 苦涩的教训

专家系统将工程努力投入到编码领域知识中;深度学习系统则将这种努力投入到吸收更多数据和计算中。苦涩的教训捕捉了历史上的一个模式,即使用不断增加计算的通用方法始终胜过编码人类专业知识的方法。Richard Sutton¹⁵ 在他 2019 年的文章“苦涩的教训”中凝练了这一洞见(Sutton 2019)。Sutton 写道:“从 70 年人工智能研究中可以读到的最大的教训是,利用计算的通用方法最终是最有效的,而且优势很大。”
表 1.3 将代表性的基准里程碑与其硬件基底配对。其最后一列追踪了从单线程 CPU 规则评估到数千加速器集群的进展,使用 250 万参考 GPU-天作为说明性的前沿训练锚点(Patel and Wong 2023)。


ImageNet top-5 准确率和大规模多任务语言理解(MMLU)(第12章)衡量的是不同的能力,但共享一条系统轨迹。硬件规模从单节点 CPU 执行扩展到数兆瓦集群,证实了 Sutton 的观察:为使用原始计算而设计的方法始终胜过手工调整的表示。
这一原则在人工智能突破中得到了进一步验证。在国际象棋中,IBM 的深蓝于1997年击败了世界冠军 Garry Kasparov¹⁶,它结合了定制国际象棋硬件、大规模搜索和国际象棋特定的评估知识。其评估函数编码了人类国际象棋启发式,但由定制硅实现的大规模搜索是将这些知识转化为冠军级棋力的核心。在围棋中,DeepMind 的 AlphaGo¹⁷(Silver et al. 2016)通过将专家对局的监督学习与通过自我对弈的强化学习和神经网络引导的树搜索相结合,实现了超人表现,而不是依赖手工编码的围棋策略。
这个教训是“苦涩的”,因为我们的直觉误导了我们。我们自然地假设编码人类专业知识应该是通往人工智能的道路。然而,反复地,使用计算从数据中学习的系统在足够规模下胜过依赖人类知识的系统。这个模式在符号人工智能、统计学习和深度学习时代一直成立。
像 GPT-4 这样的现代语言模型和像 DALL-E 这样的图像生成系统直接说明了这一原则。它们的能力不是来自人类编码的语言学或艺术理论,而是来自使用大量计算资源在大量数据上训练通用神经网络。对 GPT-3 规模模型的估计表明大约 1.3 GWh 的能量¹⁸(Patterson et al. 2021),而将这些模型服务给数百万用户则将推理变成一个持续的数据中心电力、冷却和容量规划问题。
其含义是,实现苦涩教训的承诺需要数据工程、硬件优化和系统协调方面的专业知识¹⁹,这远远超出了算法创新。第11章在必要基础到位后量化这些约束,包括塑造系统设计的内存带宽限制。
世界正急于构建人工智能系统,但构建它们是不够的。Sutton 的苦涩教训说明了原因。进步取决于使大规模学习成为可能的数据、计算和基础设施。因此,这本书将机器学习系统视为一个工程对象:一个必须在真实约束下设计、部署、评估和维护的对象。这种更广泛的责任就是人工智能工程,这一学科在第1.9节中正式定义。在定义这一学科之前,我们必须首先定义它的对象,从一个熟悉的生产工作负载开始。

16 | 深蓝:IBM 的国际象棋系统(Campbell et al. 2002)于 1997 年通过系统组合击败了世界冠军 Garry Kasparov:在 480 个定制国际象棋处理器上以每秒约 2 亿个位置的速度进行搜索,再加上国际象棋特定的评估和知识。深蓝是早期公开演示,表明专门构建的硅可以放大搜索和编码的领域知识,预示了定义现代机器学习硬件的领域特定加速器策略。

17 | AlphaGo:AlphaGo 首先从人类专家对局中学习,然后通过自我对弈的强化学习进行改进,用数据与计算管道取代了手工编码的围棋策略,该管道可以在大规模计算规模上探索问题空间。经过三天的自我对弈训练,AlphaGo Zero 超越了原始 AlphaGo,以 100 比 0 获胜(Silver et al. 2017)。

18 | GPT-3(生成式预训练 Transformer 3)训练能耗:Patterson 等人(2021)估计 GPT-3 的单次训练运行消耗了大约 1,287 MWh,并排放了 552 吨二氧化碳当量,大致相当于 120 个美国普通家庭的年用电量(使用 10.7 MWh/家庭-年的基准)。能源成本不仅由算术决定,还由数据在内存层次结构中的移动决定;跨内存层级移动数据的能耗可能比本地算术高出几个数量级(Horowitz 2014)。

1.5 定义机器学习系统

回到统计学习历史中介绍的垃圾邮件过滤器。在生产规模上,这个看似简单的分类器要面对每天数千亿封发送和接收消息的全球电子邮件流量(Statista Research Department 2024),大型提供商必须在毫秒内决定哪些消息值得关注,哪些应该被隔离。
这个看似简单的任务揭示了机器学习系统与传统软件的区别。挑战从数据开始。过滤器在数百万个标记示例上进行训练,并且必须随着垃圾邮件发送者演变其策略而不断适应,而不是依赖程序员手动编码每个垃圾邮件模式。然后它变成一个算法问题,因为模型必须从这些示例泛化到它从未见过的消息,同时平衡精确率和召回率,以免合法电子邮件被隐藏。最后,同一个决策变成一个基础设施问题。提供商必须每天处理数十亿封电子邮件,随着垃圾邮件的演变存储和更新模型,并在横向扩展的数据中心中以低于 100 毫秒的延迟提供预测。因此,分类器只是一个不断变化的数据、软件和基础设施系统中的一个组件。这一观察给了我们本书研究的对象。
当一个新的网络钓鱼模板出现时,数据层必须捕获有代表性的消息,算法必须将攻击与合法邮件分开,机器必须在投递之前分发更新后的参数。任何一层都可能失败,而其他层继续工作,因此从测量到学习再到执行的完整链条才是正确的分析单元。

19 | 内存带宽:模型参数从内存移动到处理器的速率。GPT 规模训练所消耗的吉瓦时级能源不仅由计算塑造,还由通过内存层次结构获取数十亿权重的物理昂贵过程塑造。将数据从片外内存移出可能比本地算术多消耗一到几个数量级的能量,具体取决于精度和内存层级,这使得带宽,而不仅仅是处理器速度,成为数据中心巨大功耗的直接驱动因素。


该定义揭示了三个诊断轴:描述任务的数据、将那些示例转化为行为的算法,以及在操作预算内执行该行为的机器。D·A·M 分类法赋予这些轴一个可复用的形式。
同样的用户可见症状可能源自这三者中的任何一个。一封被漏掉的网络钓鱼邮件可能意味着有代表性的示例缺失、学习到的决策边界不充分,或者服务路径错过了其延迟预算。将每次遗漏都视为模型问题,有改进错误组件的风险。一个有用的系统分类法必须分离这些原因,而不假装它们是独立的。
每种解释都需要不同的证据。数据假设将工程师引向覆盖范围、标签和分布偏移。算法假设将工程师引向错误切片、模型容量和学习目标。机器假设将工程师引向延迟、吞吐量、内存和利用率。这些调查不可互换。更快的硬件无法提供从未收集到的示例,而更大的数据集无法修复因内存饱和而错过截止时间的服务路径。
相关的约束是那种其放松能改善端到端结果的约束。这种绑定约束的概念防止团队优化最可见的组件,而不是支配结果的组件。因此,D·A·M 的目的是操作性的:它识别下一个要测试的假设以及能够改变系统行为的那类干预。诊断是临时的。一旦一项干预放松了一个限制,系统必须再次被测量,因为不同的轴现在可能成为绑定约束。D·A·M 是一个循环,而不是一次性标签。

乍看之下,D·A·M 是一个由三部分组成的思维模型。数据提供证据,算法将其转化为行为,机器在操作预算内执行它。这些轴描述的是整个系统,而不是孤立的流水线阶段。


图 1.3 将该定义转化为一张初步地图。


这个三角形提供了第一轮诊断。它将一个可见的结果转化为三条测量路径:检查证据、表征工作和测量执行。每条路径都需要不同的证据。覆盖率和分布测量探查数据,错误模式和操作计数探查算法,延迟、带宽和利用率探查机器。诊断过程从一个端到端结果开始,例如准确性、延迟、吞吐量或成本,并测试每条路径,而不是假设最接近症状的组件就是责任方。只有当放松其候选约束能够改善全系统结果时,诊断才获得可信度。箭头很重要,因为在一个顶点上的干预可以将瓶颈移动到另一个顶点。
这个三角形有意抑制了这些相互作用,以保持首次诊断简单。一旦识别出候选轴,下一步就是追踪该约束依赖于什么以及它约束了什么。真实系统很少停留在单一顶点。数据格式改变内存流量,模型结构改变硬件利用率,部署约束重塑数据 and 算法选择。图 1.4 将这个三角形扩展为由这些交叉点创造的更丰富的设计空间。


从外部区域向内阅读维恩图。数据和算法决定系统能从什么中学习。数据和机器决定信息如何移动。算法和机器决定计算如何高效执行。在中心,所有三个问题必须一起回答。那个中心就是机器学习系统工程的学科。
重叠标签也是前面章节的路标。几个名称可能不熟悉,因为它们表示本书其余部分按顺序展开的问题。数据选择和模型训练发展数据-算法问题。数据工程和硬件加速追踪数据-机器路径。框架、压缩和服务发展算法-机器问题。因此,该图是一个方向指引,而不是要记忆的清单。后面的章节将每个区域转化为具体的测量、设计选择和干预。
图中命名的技术也显示了为什么没有选择是局部的:数据选择改变呈现给算法的工作,架构改变内存和计算需求,机器选择改变哪些算法和数据路径是实用的。在整本书中,首先定位绑定区域,然后优化。
D·A·M 景观提供了诊断视角,但构建系统还需要一个连接物理限制与面向用户任务的分层视图。

1.5.1 从硅到任务的四层层次结构

本文分析的每个机器学习系统都由四个层次层构建,确保在硅层做出的决策可追溯到其对最终任务的影响。


这种层次结构确保当我们构建实验室或案例研究时,工程师不是从零开始,而是继承部署范式的约束,并将场景工作负载应用于特定任务。第 1.9.1 节中的生命周期讨论将每个反复出现的任务与其工作负载和绑定约束配对。这种结构化方法允许我们在任何应用领域中推理“机器学习的物理学”。


D·A·M 分类法在本文中作为诊断视角。机器学习系统中的规模化是对移动瓶颈的不懈追求。缓解沿一个轴的约束通常会将限制转移到另一个轴。升级到更快的 GPU(机器)可能会揭示存储无法足够快地供给数据(数据)。收集海量数据集(数据)可能会揭示模型缺乏从中学习的能力(算法)。切换到更大的模型(算法)可能会超出可用内存(机器)。反复出现的工程任务是识别哪个轴在起约束作用,在那里进行干预,并检查该干预是否只是在其他地方制造了更糟糕的瓶颈。
这四个范式之间跨越多个数量级的范围不仅仅是技术上的好奇;它直接转化为成本。一个在数据中心加速器内存中舒适容纳的模型无法在微控制器级设备上原样运行,弥合这一差距需要在 D·A·M 分类法的每一层进行工程权衡。数据质量、算法效率和硬件能力通过每美元有用工作的经济约束相互作用。



1.6 机器学习与传统软件

D·A·M 分类法揭示,机器学习系统由引导行为的数据、提取模式的算法以及支持学习和推理的机器组成。²⁰ 要理解为什么对它们进行工程化不同于传统软件,请遵循故障进入生产的过程。

20 | 推理:来自拉丁语 inferre(“带入”或“得出结论”)。在机器学习工程中,推理指的是部署阶段,其中训练好的模型将学习到的模式应用于新输入。系统区别很重要,因为训练是吞吐量优化的(最大化样本/秒),而推理是延迟优化的(最小化毫秒/预测)。这些对立的目标要求根本不同的硬件配置和软件栈(见第13章)。

许多软件缺陷产生显式的故障模式。应用程序崩溃,错误消息传播,监控系统触发警报,从而实现快速诊断和修复。传统软件也可能悄然返回不正确的结果,但机器学习增加了静默退化,即性能下降而不触发传统的错误检测机制。算法继续执行,机器维持预测服务,但学习到的行为逐渐变得不那么准确或与上下文不相关。
回到开篇的驾驶辅助系统。传统汽车软件通常通过诊断警告暴露故障,尽管它也可能产生静默错误。基于机器学习的感知系统增加了不同的挑战。随着季节变化引入训练数据中代表性不足的照明条件、服装模式或天气现象,其检测行人的准确性可能在几个月内从 95% 下降到 85%。车辆继续运行,成功检测到大多数行人,但退化的性能造成了安全风险,这些风险只有通过系统监控边缘情况和全面评估才能显现。传统的错误日志记录和警报机制保持沉默,而系统变得可测量地不那么安全。
这种退化的幅度在安全关键环境中很重要。一个以 10 Hz 运行的感知模型在一小时内处理 36,000 帧。0.1% 的假阴性率仅适用于相关的阳性案例;漏检计数还取决于它们的频率以及时间过滤、传感器融合和操作设计域限制。因此,从 95% 到 85% 的 10 个百分点退化不仅仅是准确性的变化;它恰恰在检测已经边缘化的边缘情况下改变了下游控制逻辑的暴露率。
这种静默退化在 D·A·M 的所有三个轴上都有表现。随着用户行为演变、季节性模式出现和新边缘情况出现,数据分布发生偏移(Gama et al. 2014; Quiñonero-Candela et al. 2009)。与此同时,算法继续基于过时的学习模式进行预测,不知道它们的训练分布不再匹配操作现实。机器忠实地大规模服务这些越来越不准确的预测,在每个用户和每个查询中放大问题。

由于这种故障模式是静默的,传统的崩溃日志无法检测到它;需要定量信号来测试测得的分布偏移是否预测性能损失。正如硬件执行时间可以分解为物理组成部分一样,可靠性退化可以被建模为环境变化的函数。这里,Accuracy₀ 是部署时的初始准确率,D(Pt‖P₀) 是当前分布 Pt 与训练分布 P₀ 之间的统计散度,λ 是对所选偏移度量的局部拟合敏感度。这个关系,在公式 1.3 中陈述,就是退化方程。它是一个局部诊断近似,说明更大的分布偏移伴随着随时间推移的性能损失,而不是一个通用的预测定律。


当标记观察支持这种关系时,这种一阶线性化可以捕捉局部趋势。当 Pt 不同于 P₀ 时,数据漂移发生,因此即使代码没有改变,预测也可能变得不可靠。模型可能在大的偏移下崩溃,而散度度量 D(·‖·) 故意保持通用(常见选择包括 KL 散度、全变差距离或 Wasserstein 距离)。仅散度并不能确定准确率变化的符号或幅度。鉴于这些限制,诊断建议了三个工程杠杆。

  1. 提高初始准确率(Accuracy₀)。更好的训练、更多数据和更优的架构会移动曲线,但不会改变其斜率。

  2. 降低分布敏感度(λ)。鲁棒训练技术、领域适应和更广泛的训练分布会使退化曲线变平。

  3. 监控漂移和结果(D(Pt‖P₀))。散度可以触发调查;标记结果或验证代理决定是否值得重新训练。

在实践中,知道何时重新评估与知道如何训练同样重要。当 D(Pt‖P₀) > τ 时,系统可以发出警报,并在结果证据确认退化时重新训练。没有漂移监控,它对变化的输入是盲目的。第14章发展了实现这一原则的监控基础设施和警报策略。
依赖总体的性能增加了传统软件监控不覆盖的故障模式。依赖和环境可以改变传统系统;机器学习模型也可能因为输入总体变化而退化。因此,监控必须超越正常运行时间和错误率,扩展到输入分布和标记结果。由于穷举测试是不可能的,持续性能评估成为一项架构要求。
同样的模式出现在一个风险较低的设置中。一个在上一季点击历史数据上训练的产品推荐器,在温和的季节性漂移下可能会损失几个百分点,在严重的训练-服务偏差下可能会损失几十个百分点,具体速率取决于测得的分布偏移和模型对该偏移的敏感度。这种退化通常源于训练-服务偏差,即训练和服务管道之间计算方式不同的特征导致模型性能下降,尽管代码未变。这是一个表现为模型质量退化的系统问题。
这些故障模式重塑了整个生命周期。团队必须一起监控基础设施健康状况、模型质量、数据质量和预测分布,然后在证据确认生产行为已发生偏移时更新模型。因此,静默退化必须从数据收集到推理服务的系统设计中得到体现。
静默退化通过询问学习到的行为在世界变化时是否仍然可信,来解决双重使命的前半部分。后半部分询问机器是否能在其时间、内存、能源和成本预算内产生该行为。苦涩的教训确立了计算规模驱动人工智能进步;现在问题变成如何定量地推理构成该规模的数据移动、计算和开销。

1.7 机器学习系统的铁律

计算规模的物理成本在两个熟悉的失败中变得具体。当一个训练任务因存储无法供给加速器而停滞时;当一条推理路径因模型状态通过内存或跨网络移动太慢而错过其截止时间时。它们的症状不同,但两者都通过数据移动、计算和固定开销消耗相同的有限时间预算。

机器学习系统的铁律通过将总执行时间 (秒)分解为这三个物理成本(公式 1.4),使这种共享结构变得明确:




一旦执行时间被分解,下一个问题就是哪一项占主导。Roofline 模型用一个称为脊点的边界来回答该问题中移动与计算对比的部分。在脊点之下,数据移动占主导;在它之上,算术吞吐量占主导。第 D.2.1 节为想要更深入数学处理的读者提供了内容。本书中开发的每一种优化技术都通过减少数据移动、做更少的工作、更有效地使用机器或减少编排延迟来操纵这些变量之一。一个 GPT-3 级别的训练估计通过展示效率变化如何通过铁律传播,使这种操纵变得具体。







决定时间和能量的相同项也决定成本。每移动一个字节、执行一个操作以及每毫秒的延迟都消耗基础设施预算。因此,下一个测试是经济性的,询问增加的计算是否能带来足够的模型改进,以证明其消耗的资源是合理的。

1.7.1 计算回报(RoC)作为经济视角

时间的分解也具有经济后果。遵循 Hennessy 和 Patterson 的定量推理传统,计算回报(RoC)衡量每增加一美元基础设施投资所带来的增量准确率增益。当准确率在固定尺度上衡量时,RoC 的单位是每美元准确率点数。


这个比率揭示了一个经济边界。如果准确率提高 1 个百分点需要 O O(总操作数)增加 10 倍,那么它可能无法通过 RoC 测试。后续章节中的每一个优化都针对分子(从相同数据中提取更多信号)或分母(降低执行数学计算的成本)。如果 RoC 为负或可忽略不计,无论其技术多么复杂,系统都是过度工程化的。这种经济视角将“准确率”从研究目标转变为工程预算。
如果说规模是性能的终极杠杆,它也是资源的终极消耗者。苦涩的教训教导我们规模有效,但铁律教导我们如何负担得起它。这种扩展与可持续性之间的张力塑造了随后的工程原则。

1.7.2 灯塔模型将铁律付诸实践

铁律不仅仅是诊断瓶颈;它组织了整个学科。方程中的每一项都对应一个核心工程要务。数据项要求构建健壮的数据管道和基础设施(第4章)。计算项要求优化算法和硬件利用率以提高效率(第三部分)。延迟项要求部署和运维系统在生产中可靠运行(第13章、第14章)。这三个要务构成了教科书的结构。第一和第二部分涉及构建,第三部分涉及优化,第四部分涉及部署和运维。
抽象方程通过工作负载变得有形。本教科书采用五个反复出现的灯塔模型作为铁律的诊断工具。这些经典工作负载在多个章节中反复出现,以测试相同的物理约束如何影响不同的架构模式。

每个灯塔模型代表铁律的一个独特压力案例。例如,ResNet-50 在系统重复重用相同学习参数时提供了计算吞吐量的探测,而 GPT-2/Llama 在语言生成期间作为内存带宽压力的主要探测。对于语言模型,自回归解码意味着一次生成一个 token;KV(键-值)缓存是来自先前 token 的保存的注意力状态(第6章全面介绍了注意力机制),而预填充是在逐 token 生成开始之前处理提示的初始过程。这种诊断取决于操作模式。小批量解码通常足够快地流式传输权重和 KV 缓存状态,从而暴露内存带宽,而预填充和高批量服务可以将瓶颈转向算术或通信。通过从数据工程到边缘部署跟踪这些相同的工作负载,每一章都展示了单一的架构选择如何将物理和经济约束传播到整个系统。



每个灯塔模型都沿着 D·A·M 轴表现出不同的约束,确保本文开发的原则针对现实世界系统工程挑战的多样性进行测试。本书中反复出现的示例之间的分工是刻意为之的。四种部署范式固定了系统必须在其内运行的包络,五个灯塔模型提供了对其施加压力的工作负载,并且在第 1.9.3 节中,四个工程任务和三个生产案例研究(Waymo、FarmBeats 和 AlphaFold)在现实世界约束下将包络与工作负载配对。
同样的诊断解读可以回溯应用于开启深度学习时代的突破。AlexNet 系统结合了卷积架构(其并行矩阵运算与 GPU 能力相匹配)与 2012 年 ImageNet 挑战赛训练集中 130 万张标记图像²¹(Deng et al. 2009)。因此,其错误率的降低反映了跨 D·A·M 轴的协调,而不是孤立的算法新颖性。

21 | ImageNet:2009 年的论文报告了跨越 5,247 个 synset 的 320 万张图像;后来的完整数据集增长到跨越 21,841 个 synset 的约 1420 万张图像。AlexNet 使用的 2012 年挑战赛训练集包含约 130 万张标记图像(Deng et al. 2009; Russakovsky et al. 2015)(见第 4 章)。

这种相互依赖意味着优化一个组件通常会将压力转移到另一个组件。AlexNet 的协同设计成功以 2012 年可负担的成本实现(两块消费级 GPU 运行一周),但现代模型需要的资源大约大 7 个数量级。如果铁律支配系统运行得多快,那么框架仍然是推理它多高效地使用这些资源的必要工具。

1.8 机器学习效率的三个维度

那个效率问题暴露了第 1.4 节中苦涩教训首次引入的张力。规模驱动人工智能进步,但越来越大的数据集和计算预算将参与范围缩小到资源最丰富的组织。即使是那些组织最终也会遇到数据中心电力、内存带宽以及增加更多参数收益递减的物理极限。
对 GPT-4 级训练的常见公开估计将计算预算置于约 250 万加速器-天,代表着数百万美元的计算成本和巨大的环境影响。许多研究机构和公司无法承担通过蛮力扩展来竞争。这些成本和访问约束使得高效利用现有计算成为一条互补的进步路径。
效率是一种瓶颈诊断,而不是单一技术。D·A·M 景观(图 1.4)现在变成了一张行动地图。数据选择改进系统能从什么中学习,算法效率减少学习或预测所需的工作,而计算效率使该工作与机器对齐。剩下的交叉点,信息如何移动,横跨所有三者,因为每一项改进都必须通过内存和通信路径。

算法效率,最早的前沿,通过更好的模型设计和训练程序降低计算需求。其目标是每次操作产生更有用的行为,因此能力提升而无需同步扩展每一个资源。随着算法要求越来越多的计算,计算效率成为第二个关键维度。它通过将算法逻辑与机器物理对齐来最大化硬件利用率,将理论处理器能力转化为有用的工作。最近,数据选择作为第三个维度出现,从有限的示例中提取更多的学习信号,从而减少铁律的总操作项 O O。图 1.5 中的时间线将这三个维度并排放置,然后本章顺序按构建顺序呈现它们。这三个维度共同提供了工程工具,以克服仅靠纯扩展无法解决的数据、算法和机器壁垒。


这三个维度并非同时出现;每一个都以不同的速度经历了不同的时代。算法效率率先引领,计算效率随着需求增长而跟进,以数据为中心的方法最近才成熟。虽然历史从算法突破进展到硬件加速再到以数据为中心的方法,但第三部分颠倒了这个顺序。数据选择首先出现,然后是模型压缩和硬件加速。这种教学顺序反映了实践者如何构建系统,因为高质量数据是有效模型优化的前提,而理解模型是将其高效映射到硬件的前提。
模型架构随时间的轨迹说明了这些维度如何进展。图 1.6 使算法效率的影响逐个模型可见,展示了随着架构改进,相同的准确率目标如何需要越来越少的计算。
效率改进的幅度是可测量的。在 2012 年到 2019 年之间,在 ImageNet 分类上训练神经网络达到 AlexNet 级性能所需的计算资源减少了约 44.5 倍(Hernandez and Brown 2020)。这一改进大约每 15 个月减半,超过了摩尔定律预测的硬件效率增益²²,表明算法创新推动效率的程度不亚于硬件进步。

22 | 摩尔定律:Gordon Moore 1965 年的观察描述了可以经济地集成在芯片上的元件数量的快速增长(Moore 1998);后来的行业总结通常将这种节奏表述为大约每两年翻一番。


与此同时,已发表前沿运行中的总训练计算遵循了比摩尔定律陡峭得多的节奏,拟合的倍增时间约为 3.4 个月(Amodei and Hernandez 2018b)。这种总出版趋势与两个标志性模型之间的端点比率不是同一个量,但它解释了为什么效率优化不是可选的。没有它,只有资源最丰富的组织才能参与人工智能开发。
这些测量来自严格的实证方法论,该方法论跟踪了数百个已发表模型的训练计算;第 12 章开发了能够对机器学习系统性能进行此类系统分析的测量框架。刚刚比较的两种节奏定义了系统差距,即模型需求(计算每 3.4 个月翻倍)与硬件供应(晶体管密度大约每两年翻倍)之间不断扩大的距离。缩小这一差距是本教科书的主要目标,需要跨软件和硬件栈的综合专业知识;第 11 章直接对其进行了量化。

逐个架构的增益只讲述了故事的一半。算法改进可能不包含不断上升的训练需求。图 1.7 比较了说明性的 AlexNet 时代和 GPT-4 级端点,与总体的 3.4 个月趋势不同。它们几个数量级的差距使得效率优化成为必要。


综合来看,这两个图揭示了一个看似矛盾的现象,它定义了现代人工智能发展的经济学。图 1.6 显示效率提高了 44.5 倍,而图 1.7 显示计算需求增长了大约 7 个数量级。然而,这些图表保持不同的量不变。第一个问的是达到大致固定的能力目标需要多少计算,而第二个允许目标扩展并记录由此产生的训练预算。效率降低了给定能力的成本;规模决定了新负担得起的计算如何被花费。因此,表面上的矛盾是经济反馈,而不是测量之间的分歧。



实现这些增益的具体方法在第 10 章(算法技术)和第 11 章(硬件基础)中系统地开发。第 9 章将数据选择作为一种效率技术来讨论,而第 4 章涵盖使选定数据可用的管道设计和质量基础设施。

1.9 作为学科的人工智能工程

云服务可能优化吞吐量,而边缘设备必须保持在严格的功率包络内。因此,同一个模型在一种环境中可能高效,在另一种环境中则无法使用。仅模型准确率并不能说明一个可工作的系统:学习到的行为必须随着数据变化而保持可信,机器必须在其操作预算内交付该行为。
退化方程、铁律和效率框架为这一双重使命提供了定量工具。它们共同跨越了统计行为、计算和部署。应用它们跨越了学科边界。计算机科学处理算法,电气工程处理硬件,但两者单独都无法涵盖构建在生产中保持可靠、高效和可扩展的系统的综合问题。这个问题定义了人工智能工程。


“具有确定性可靠性的随机系统”这一短语将人工智能工程与早期的一次学科融合联系起来。计算机工程在 1960 年代末和 1970 年代初出现²³,因为计算系统变得过于复杂,电气工程或计算机科学无法单独解决。它围绕构建可靠计算机的综合问题连接了两个领域。人工智能工程在算法、基础设施和操作实践的交叉点面临着类似的问题。
人工智能工程命名了更广泛的学科;在本文中,“机器学习系统工程”命名了设计、部署和维护现代机器学习系统的实际工作。

1.9.1 跨越机器学习生命周期的工程

一个突破性的算法需要高效的数据收集和处理、跨数百或数千台机器的分布式计算、以严格延迟要求向用户提供可靠服务,以及基于现实世界性能的持续监控。这些义务形成了一个反复出现的生命周期,而不是一个在部署时结束的序列。工程对象不再仅仅是代码;它是代码、数据、模型行为、部署上下文和监控证据一起演变。生产反馈可以迫使已部署的系统回到数据收集和训练,将熟悉的线性弧线弯曲成一个循环。
结构差异首先出现在工具中。数十年的既定实践通过维护精确历史的版本控制、自动化测试的持续集成管道以及测量质量的静态分析工具来支持代码定义的行为。从数据中学习到的行为从这些工具中溜走,因为变化的工件不再是开发者编写的差异。第 3 章开发了这些挑战所需的专门工作流。
更深层的差异是持续反馈的突出地位。图 1.8 中的循环说明了原因。当监控检测到性能退化时,系统不仅仅接收代码补丁。它可能在重新部署之前循环回数据收集、准备、训练和评估,使迭代成为操作架构的一部分,而不仅仅是开发过程。


机器学习系统的数据依赖特性创造了动态生命周期,需要持续监控和适应。与仅通过开发者修改而改变的源代码不同,数据反映现实世界的动态,分布偏移可以在没有任何代码更改的情况下悄然改变系统行为。本节前面指出的工具差距跟随系统进入生产环境。为离散代码更改构建的版本控制难以应对大型、不断演变的数据集,而为确定性输出构建的测试框架需要适应概率性预测。第 4 章开发数据版本管理和质量管理,而第 14 章开发概率行为的监控。
每个生命周期阶段的需求并不统一;它取决于系统所服务的目标任务。



每个任务都持续运行这个生命周期。高质量数据可以改进模型,从而改进产品及其产生的反馈。相反,任何阶段的弱点都可能向下游的一切传播。

1.9.2 部署环境塑造生命周期

部署环境决定了哪些生命周期压力占主导。相同的阶段适用于机器学习系统,但兆瓦级数据中心和毫瓦级嵌入式设备对数据收集、模型更新、监控和服务施加不同的瓶颈。
在光谱的一端,基于云的机器学习系统训练大型模型并服务数百万用户,以丰富的计算资源换取容量限制、操作复杂性和高成本。第 2 章考察它们的架构模式,而第 11 章开发使这种规模在经济上可行的硬件基础。
在另一端,TinyML 系统运行在微控制器²⁴和嵌入式设备上。它们千字节级的内存和毫瓦级的功率预算使得可行性优先于模型质量:智能家居设备必须使用比 LED 灯泡更少的功率来识别命令,而传感器可能需要在一节电池上运行数年才能检测异常。第 1.8 节中的效率框架提供了指导原则,而第 10 章开发了使这种部署成为可能的技术。
在这两极之间,放置成为一个约束分配问题。边缘机器学习系统将计算移向数据源,以减少延迟²⁵和带宽需求。移动机器学习系统与所有其他应用程序共享内存、热余量和电池功率,以原始速度换取本地性和隐私。混合系统跨层分配工作,以平衡延迟、隐私、带宽和更新控制。
这个部署光谱上的每个位置都产生不同的瓶颈,这些瓶颈决定了哪些效率维度最重要,如表 1.7 所总结:


部署光谱代表的不仅仅是不同的硬件配置。每个部署环境都重塑了机器学习生命周期的每一个阶段,从初始数据收集到持续运营和演进,创造了一种传统软件很少遇到的约束相互作用。

考虑一个单一的部署决策如何在整个系统中级联。像自动驾驶车辆或实时欺诈检测这样的延迟敏感应用,尽管有资源约束,仍需要边缘或嵌入式架构,而大型语言模型自然倾向于集中式云基础设施。然而,这个初始架构选择决定的远不止计算发生的位置。云系统必须在大规模上优化成本效率,平衡昂贵的 GPU 集群、存储和网络带宽,这反过来塑造了模型重新训练的频率、保留哪些历史数据以及推理负载如何分配。边缘和移动系统面临固定的资源限制,约束了模型复杂性和更新频率,迫使进行激进的模型压缩²⁶和仔细的调度。最严格的约束出现在嵌入式和 TinyML 环境中,每一字节内存和每一毫瓦功率都很重要。

随着系统变得更加分布式,运营复杂性增加。集中式云架构受益于成熟的部署工具和托管服务,而边缘和混合系统必须协调跨不同连接性的传感器的数据收集,跟踪部署在数千个设备上的模型,处理具有回滚能力的分阶段推出,并聚合来自地理上分散端点的信号(第 14 章)。数据考虑引入了竞争压力。隐私要求或数据主权法规可能将计算推向边缘,而大规模训练数据的需求则拉向集中式云聚合。模型更新在整个光谱上的行为也不同。云架构通过集中式流量控制实现快速迭代,而边缘部署需要远程更新,并需要仔细的带宽管理和回滚能力。

在实践中,这些权衡很少是简单的二元选择。现代机器学习系统通常采用跨越部署光谱的混合方法。自动驾驶车辆出于延迟原因在边缘执行实时感知和控制,将驾驶数据上传到云端以改进模型,并定期下载更新后的模型。语音助手在设备上运行唤醒词检测以保护隐私并减少延迟,但将完整语音发送到云端进行复杂的自然语言处理。关键洞察是,选择在嵌入式设备上部署所约束的不仅仅是模型大小;它影响数据收集策略、训练方法、评估指标、部署机制和监控能力。这些相互关联的决策在实践中展示了 D·A·M 分类法,其中一个轴上的约束会在整个系统中产生级联效应。

三个生产系统通过代表部署光谱的极端,使这些抽象权衡变得具体。每个系统都面临相同的核心挑战(数据质量、模型复杂性和机器规模),但其部署环境的约束迫使产生截然不同的工程解决方案。

1.9.3 生产系统暴露共同挑战

当一个部署案例研究揭示了设计背后的绑定约束时,它就变成了一种工程工具。三个生产案例研究(Waymo、FarmBeats 和 AlphaFold)位于部署光谱的不同极端,因此相同的 D·A·M 问题迫使产生不同的工程响应。

27 | 自动驾驶混合工作流:这个代表性工作流迫使产生了一种纯云或纯边缘系统中不存在的同步挑战。车载模型必须在部署前进行控制和回归测试,而云基础设施可以在新收集的驾驶数据上训练和评估改进版本。这在已部署模型和新训练的模型之间造成了版本管理差距,需要在任何远程模型更新被推送到安全关键车辆之前进行严格的验证。

28 | FarmBeats:该系统使用电视空白频段链路作为从传感器到网关 PC 的高带宽农场内回程,其中本地处理减少了对较弱云互联网连接的依赖。由此产生的约束是农场到云链路上的及时数据同步,而不是特定模型大小的交付(Vasisht et al. 2017)。

  • 自动驾驶²⁷ 绑定于安全关键的延迟和数据新鲜度。Waymo 开放数据集提供了在各种驾驶环境中收集的摄像头和 LiDAR 数据(Sun et al. 2020),说明了感知栈必须处理的多模态输入和地理覆盖范围。更广泛的案例使用了一种代表性的高风险混合模式,即车载推理以实现低延迟,云基础设施用于训练和评估。

  • FarmBeats²⁸(Vasisht et al. 2017)绑定于连接性和数据新鲜度。微软的精准农业平台将田间传感器连接到本地网关 PC 进行边缘处理。电视空白频段网络在农场内传输数据,而较弱的农场到云互联网链路则约束了同步。

  • AlphaFold(Jumper et al. 2021)绑定于计算密集型训练和精选科学数据。DeepMind 的蛋白质结构预测系统在生物学 50 年的大挑战上取得了里程碑式的进展。AlphaFold 代表了计算密集型的云部署模式。初始训练使用了 128 个 TPUv3 核心大约一周,随后进行了约四天的微调,并利用了蛋白质数据银行实验确定的结构。

这些系统通过说明相同的核心挑战(数据质量、模型复杂性和基础设施规模)如何在截然不同的约束下表现出来,补充了灯塔模型。它们不是孤立地检查每个系统,而是通过 D·A·M 分类法的视角进行分析。影响 Waymo 感知模型在天气变化中的相同数据漂移现象,也影响 FarmBeats 在生长季节中的作物病害检测,尽管工程响应因机器约束而异。

D·A·M 轴之间的相互依赖创造了特定的挑战类别,定义了机器学习系统工程师的日常工作。检查部署极端揭示了这些挑战最严格的形式。

现实世界的数据通常是嘈杂且不一致的,呈现了第一类挑战。自动驾驶车辆处理来自 LiDAR²⁹和摄像头的大型多模态传感器流(Sun et al. 2020)。工程师必须解决传感器干扰,例如雨水遮挡摄像头,以及异步数据流之间的时间错位。规模加剧了这些质量问题。FarmBeats 在本地网关处理传感器数据,然后通过受限的农场到云链路同步,而 AlphaFold 占据相反的极端,需要在训练期间访问蛋白质数据银行实验确定的结构。

数据漂移在质量和规模之上造成了持续的操作负担。输入数据的统计特性随时间变化,模型只有与当前分布保持一致才可靠(Gama et al. 2014; Quiñonero-Candela et al. 2009; Koh et al. 2021)。Waymo 开放数据集报告了旧金山、凤凰城和山景城之间显著的区域差距(Sun et al. 2020);³⁰ 检测此类区域偏移需要持续监控输入统计量,以免它们表现为系统故障。

超越数据,模型复杂性和泛化构成了第二类挑战。计算强度定义了能力上限。GPT-3 规模的基础模型(第 1.3.3 节)需要 zettaFLOP 级的计算,甚至像 AlphaFold 这样较小的科学模型也需要数周的专用加速器训练。系统工程师必须优化“每瓦 FLOP/s”,以使这些模型在经济和环境上可行。然而,原始规模还不够。泛化差距仍然是核心算法风险,因为模型可能在基准测试上达到 99% 的准确率,但在现实世界中只有 75%。对于 Waymo 的安全关键自动驾驶系统,最小化这一差距是生死攸关的要求,需要覆盖长尾边缘情况的鲁棒性方法。

第三类涵盖了让模型在生产中可靠工作的系统级挑战。训练-服务鸿沟描述了模型诞生时的灵活环境与它们运行时的刚性环境之间的差距。延迟-吞吐量权衡决定了架构。Waymo 风格的感知系统需要在边缘进行低延迟的安全决策,而 AlphaFold 在云中运行,其推理时间取决于蛋白质长度和配置。混合协调增加了进一步的复杂性,因为现代系统越来越多地采用分层架构。例如,语音助手在本地执行唤醒词检测(TinyML)以保护隐私和减少延迟,但将复杂的自然语言处理卸载到云中的大规模 GPU 集群。

最后,随着系统规模扩大,它们对社会的影响成为贯穿所有三个 D·A·M 轴的一流工程关注点。公平性和偏见必须被主动管理,因为模型可能无意中学习到训练数据中存在的社会偏见。负责任的工程需要系统审计不同人口子群体的性能,以确保公平的结果。透明度和隐私要求进一步约束设计。许多深度网络作为“黑箱”运作,但在医疗保健或金融等领域,利益相关者要求可解释性。系统还必须对推理攻击³¹具有弹性,这些攻击试图从模型预测中提取敏感的训练数据。

故障链可以跨越所有四个挑战类别,因此没有单一专业能够端到端地拥有它。它们的重叠创造了一个既是技术问题也是组织问题的问题。

29 | LiDAR(光检测与测距):该传感器是车辆成为“漫游数据中心”的主要原因,因为其脉冲激光生成环境的密集 3D 点云。来自单个单元的原始数据流可以超过每秒 100 兆字节,既造成了数 TB 级的容量挑战,也造成了所提到的质量挑战,因为信号很容易被雨或雾的传感器干扰所降低。

30 | 数据漂移:训练数据分布( P 0 )与生产分布( P t )之间的散度。漂移可以在不更改代码的情况下改变性能,但仅凭散度并不能确定准确率是否下降;需要结果监控来确认退化(见第 14 章)。

31 | 推理攻击:一种安全威胁,其中对手查询模型以推断有关训练集的敏感信息。这些攻击利用了过度参数化模型记忆其训练数据中独特模式的倾向,在模型容量和隐私风险之间创造了直接的权衡,这促使了诸如差分隐私和输出扰动等防御技术。

1.10 五支柱框架

因此,生产机器学习需要一个框架,在不切断数据、模型行为、基础设施和伦理之间联系的情况下,为它们分配责任(Paleyes et al. 2022)。仅靠传统软件工程实践无法解决那些悄然退化而不是明显失败的系统。

这项工作围绕五个相互关联的学科组织机器学习系统工程,这些学科直接应对这些挑战类别。图 1.9 呈现了五个工程支柱,每个支柱针对一个不同的挑战类别,并建立在一个共享基础上,该基础反映了每个支柱都必须尊重的物理和经济约束。它们共同代表了弥合研究原型与能够在规模上可靠运行的生产系统之间差距所需的核心工程能力。虽然这些支柱组织了机器学习工程的实践,但它们得到性能优化和硬件加速(第三部分涵盖)这些基础技术要务的支持,这些要务提供了使大规模训练和部署在经济和物理上可行的效率。


通过一个故障链最容易理解这些支柱。假设一个唤醒词模型在模型更新后,在一个嘈杂的公寓楼里不再可靠地为用户工作。第一个问题是训练数据是否捕捉到了那种声学环境,标签是否可靠,以及管道能否追踪哪些示例到达了模型。数据工程支柱(第4章)拥有决定模型能学到什么的数据质量、规模、隐私、漂移和血缘问题。
如果数据是健全的,下一个问题是训练过程是否将其转化为一个符合任务和预算的模型。训练系统支柱(第8章)通过协调数据集、框架、优化算法、超参数、分布式作业、重启以及由模型规模创造的成本-质量权衡来拥有那个边界。一个成功训练的系统仍然不是一个系统。部署基础设施支柱拥有跨模型打包、推理性能、延迟、吞吐量、设备约束以及揭示已部署工件是否仍满足需求的基准测试方法的训练-服务鸿沟。

一旦模型在服务,故障就变成时间性的。运维和监控支柱拥有行为在启动后是否仍然可接受的问题,当数据分布偏移、流量变化以及模型质量可能在基础设施仪表板仍然显示绿色时退化。它连接监控、警报、发布策略、事件响应和持续评估。最后,唤醒词故障可能不会平等地影响所有用户,音频管道可能引发同意或隐私义务。伦理和治理支柱(第15章)拥有跨越整个生命周期的公平性、透明度、隐私、安全、文档和问责制的约束。

替代的组织框架可以按组件或生命周期阶段对这些关注点进行分组。选择五支柱结构是因为它匹配真实工程团队中出现的所有权边界,同时仍使其相互依赖关系明确。数据选择塑造训练结果;训练选择约束部署;部署选择决定运维

可以观察到什么;治理要求可以改变所有这四个。将负责任的工程视为自己的支柱,可以防止它在截止日期压力下成为隐含的事后考虑。

这些支柱共同将 D·A·M 分类法(第 1.5.1 节)和生命周期阶段(第 1.9.1 节)转化为工程所有权。这种结构反映了人工智能如何从以算法为中心的研究演变到以系统为中心的工程,将焦点从使单个算法工作转移到构建能够大规模可靠部署、运维和维护这些算法的系统。

这些支柱也为本教科书提供了组织骨干。每一部分都发展一个或多个支柱所需的知识和技能,遵循工程师在实践中构建系统所使用的相同进程。基础先行,然后是模型构建、优化和生产部署。

1.11 本书组织

五个支柱描述了机器学习系统工程师必须协调的内容;本书的四个部分描述了读者发展这些能力的顺序。组织原则是理论之前的背景。在构建模型(第二部分)、优化那些模型(第三部分)和可靠部署它们(第四部分)之前,先建立景观和词汇(第一部分)。表 1.8 概述了这一进程。


第一部分在模型机制出现之前建立约束词汇。这一开篇章发展了人工智能中的工程革命以及组织这门学科的框架。第 2 章探讨从云到 TinyML 的部署光谱,考察物理约束(功率包络、内存层次结构和延迟预算)如何支配每一层。第 3 章呈现从问题表述到部署的端到端过程,提供指导后续学习的概念地图。第 4 章讨论数据收集、处理和管理,确立数据基础设施先于并支持模型开发。
第二部分将这些词汇转化为模型构建技能。第 5 章提供算法基础,而第 6 章将这些扩展到特定的网络设计。这两章都引用了第 1.7.2 节中介绍的五个灯塔模型(ResNet-50、GPT-2/Llama、MobileNetV2、DLRM 和 Keyword Spotting),以将抽象概念锚定在具体工作负载中。第 7 章考察从 TensorFlow 和 PyTorch 到专用工具的软件基础设施。第 8 章开发用于复杂模型和大数据集的训练系统。
第三部分询问如何在不损失质量的情况下改变铁律的条件。第 9 章介绍在保持质量的同时降低计算需求的技术。第 10 章涵盖使部署更便宜的模型缩减技术。第 11 章涵盖 GPU 和专用集成电路(ASIC)。第 12 章建立测量和比较系统性能的方法论。
第四部分将优化后的系统返回生产环境,在那里退化和部署环境占主导。第 13 章涵盖以低延迟交付预测的基础设施。第 14 章涵盖从监控和部署到事件响应的实践。第 15 章讨论伦理考虑和治理。第 16 章综合完整的方法论,并为读者从单节点掌握过渡到机群级编排做好准备。
本书涵盖单节点范畴,即一台主机带有一到八个加速器,每个通常使用本地设备内存并通过节点内互连进行通信。绑定约束取决于工作负载,可能是设备内存容量、内存带宽、计算或互连通信。在机群规模上,数千个节点跨网络结构协调,瓶颈转向对分带宽,即穿过集群网络切分处的总容量。关于阅读路径、学习成果、先决条件以及如何充分利用本教科书的详细指导,前言提供了方向。

第 1.8 节和第 1.10 节中引入的框架只有在实践者同时抛弃从相邻领域带入的假设时才有帮助。每个学科都积累了在其边界内有效但在其他地方应用时失败的直觉。机器学习系统工程特别容易受到此类输入假设的影响,因为它同时借鉴软件工程、统计学和硬件设计,每个学科都培养了对系统应如何表现的微妙不同直觉。

1.12 谬误与陷阱

在传统软件、学术研究或纯数学中成立的假设,当应用于行为源自数据的系统时会失败。以下谬误和陷阱捕捉了浪费工程努力、延迟部署并导致静默生产故障的错误。

谬误:更好的算法自动产生更好的系统。
工程师假设算法复杂性能驱动系统性能,但这忽略了铁律(第 1.7 节)。视觉 Transformer 展示了架构和大规模预训练可以产生强大的图像识别结果(Dosovitskiy et al. 2021),但生产实用性仍然取决于计算、内存移动和延迟预算。在生产中,一个准确率高 1% 但违反延迟要求的模型实际上具有零效用。因此,生产模型选择是一个约束优化问题:在延迟、内存、能源、成本和可靠性预算的约束下最大化任务质量。围绕生产模型的隐藏技术债务表明,为什么模型代码只是一个更大系统的可见中心。一个设计良好且模型更简单的系统可以胜过缺乏健壮基础设施的更复杂架构。

陷阱:将机器学习系统视为恰好包含模型的传统软件。
工程师将传统测试和部署实践应用于机器学习系统,但这些系统以性质不同的方式失败(第 1.6 节)。传统缺陷通常产生即时失败;机器学习系统可以在任何人注意到之前悄然退化数周或数月。传统软件中的 A/B 测试可能很快显示清晰信号,而机器学习比较可能需要更长的观察窗口来检测子群体之间的微小准确率差异。单元测试验证确定性路径;机器学习系统需要监控基础设施来捕捉不可靠的预测、数据漂移和校准失败。仅使用持续集成和持续交付(CI/CD)管道部署机器学习的团队面临静默失败的风险,这些失败只有在面向用户的行为已经退化后才会浮现。

谬误:基准数据集上的高准确率表明生产就绪。
工程师假设基准性能预测生产准确率,但分布偏移和操作差异可能导致部署中的实质性退化。一个在精选测试数据上表现良好的情感分析模型,在用户使用俚语、表情符号和基准中不存在的上下文时,可能在生产中急剧下降。部署光谱(第 1.9.2 节)显示云、边缘和移动环境各自引入不同的约束。网络延迟增加开销,移动设备有限的数值精度可能改变准确率,而边缘设备可能缺乏提升基准分数的多模型策略所需的内存。生产系统需要跨人口子群体的故障模式分析、检测漂移的监控基础设施,以及匹配实际操作条件而非理想化测试集的验证协议。

陷阱:在不考虑系统交互的情况下优化单个组件。
工程师孤立地优化推理延迟,但阿姆达尔定律支配端到端性能。一个团队将模型推理从 45 毫秒减少到 15 毫秒,期望成比例改进。然而预处理消耗 60 毫秒,后处理增加 25 毫秒,因此总延迟仅从 130 毫秒降至 100 毫秒。那是 23% 的改进,而不是预期的 67%。D·A·M 景观(图 1.4)显示数据、算法和机器轴形成一个相互依赖的系统,其中优化一个组件会转移瓶颈而不是消除它们。组件级增益不决定端到端改进;结果取决于优化组件占据完整路径的多少。

谬误:机器学习系统可以部署一次,然后无限期运行。
工程师假设已部署系统无限期保持性能,但分布偏移可以改变固定模型的性能。在这个说明性场景中,一个以 85% 准确率部署的推荐系统在 6 个月内降至 80.2%,因为购买模式发生变化,在没有任何代码更改的情况下损失了 4.8 个百分点。因此,机器学习生命周期(第 1.9.1 节)将结果监控和基于证据的重新训练视为操作要求。欺诈检测和自然语言处理(NLP)系统面临同样的风险,因为攻击者适应、词汇变化和用户行为改变,而代码保持不变。没有监控,系统可能在预测质量侵蚀时看起来健康。将部署视为一次性的组织通常只有在客户投诉或下游指标揭示退化后才发现失败。

陷阱:假设仅凭机器学习专业知识就足以进行机器学习系统工程。
组织雇用机器学习研究人员期望获得生产就绪的系统,但五支柱框架(第 1.10 节)需要跨算法、软件、系统和运维的综合专业知识。具有强大机器学习技能但系统经验有限的团队可能因为应用程序编程接口(API)设计、存储布局和服务基础设施塑造了实际性能而错过吞吐量目标。相反,在没有机器学习意识的情况下构建的软件基础设施可能引入预处理或特征缺陷,从而在没有明显系统故障的情况下降低模型行为。部署案例研究表明,生产机器学习需要协调关注数据、模型、基础设施和组织工作流,而不仅仅是算法质量(Paleyes et al. 2022)。有效的团队整合机器学习研究人员、软件工程师和运维专家,而不是期望一个角色掌握所有技能。总结将这些失败返回到本章的核心主张,即机器学习系统工程的存在是因为学习到的行为、物理基础设施和组织工作流必须一起设计。

1.13 总结

机器学习系统必须同时满足两项义务:学习到的行为必须保持可信,机器必须在物理和经济限制内交付该行为。软件 2.0 的转变解释了为什么从数据中学习到的行为在分布变化时会静默失败。人工智能的范式历史和苦涩的教训解释了为什么进步反复来自能够利用更多计算的系统,而不是来自手工编码的专业知识。D·A·M 分类法定位绑定约束,而退化方程、铁律以及能源和效率框架将这些约束转化为定量诊断。
生命周期、部署光谱和生产案例研究随后展示了为什么持续迭代和上下文感知设计是强制性的。五个灯塔模型(ResNet-50、GPT-2/Llama、MobileNetV2、DLRM 和 Keyword Spotting,详见第 6 章)在整本书中反复出现,以将这些原则扎根于真实工作负载中。
回到开篇的智能手机交互。看似单一的智能行为依赖于有代表性的数据、学习到的模型、在其操作预算内的机器,以及能够揭示行为变化的反馈。这条链回答了开头提出的问题。因为机器学习行为既是学习到的也是编码的,它可以在没有显式故障的情况下退化,并且必须在数据、算法、软件和硬件之间协同设计。人工智能工程将这种随机行为保持在确定性可靠性目标之内。


本章介绍的一切都支持一个主张:机器学习系统受物理支配,而不是意图。它的行为反映了其数据、算术和硬件所允许的内容。苦涩的教训、铁律、退化方程和 D·A·M 分类法形成了一个单一的词汇表,用于推理学习到的而不是完全指定的行为,并且除非加以维护,否则会衰减。将这些约束视为真正的规范,是将一堆技术转变为一门学科的关键。

下一步:从愿景到架构

选择机器学习模型应在何处运行受物理定律支配。光速使得遥远的云服务器对于紧急制动毫无用处。热力学阻止数据中心级模型在移动设备上运行。内存物理创造了更快的芯片无法克服的带宽上限。四种部署范式就是这些定律落地的地方。第 2 章从物理学推导出每种范式的操作包络,并开发当需求冲突时在它们之间进行选择的决策框架。

。。。。。。。。。。。。。。

原文链接:https://mlsysbook.ai/vol1/assets/downloads/Machine-Learning-Systems-Vol1.pdf

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
陈妤颉喝牛奶“出名”  金牌背后的财富密码

陈妤颉喝牛奶“出名” 金牌背后的财富密码

邓如山
2026-10-05 17:35:06
吃他汀不能碰燕麦?医生苦劝:不只是燕麦,这3物能不吃就不吃!

吃他汀不能碰燕麦?医生苦劝:不只是燕麦,这3物能不吃就不吃!

老马健康讲坛
2026-10-05 18:00:07
丰田“贴脸开大”!全新汉兰达曝光,3.5L混动四驱更霸气豪华

丰田“贴脸开大”!全新汉兰达曝光,3.5L混动四驱更霸气豪华

侃故事的阿庆
2026-10-04 00:00:55
“半个广州的人都来了”!地铁站限流、排队超3500桌

“半个广州的人都来了”!地铁站限流、排队超3500桌

糖逗在娱乐
2026-10-05 16:45:43
前夫再婚,只邀请我女儿去,婚礼现场,女儿突然上台发言

前夫再婚,只邀请我女儿去,婚礼现场,女儿突然上台发言

麦子情感故事
2026-08-11 17:38:07
大唐不夜城人均消费一块五引质疑

大唐不夜城人均消费一块五引质疑

热点追踪人
2026-10-05 15:04:00
iPhone Duo据称将新增锁屏专注模式开关 可不离开锁屏快速关闭再开启

iPhone Duo据称将新增锁屏专注模式开关 可不离开锁屏快速关闭再开启

cnBeta.COM
2026-10-05 19:19:04
杜伦续约5年2亿后发声:我想终身效力活塞 外界很多说法都是假的

杜伦续约5年2亿后发声:我想终身效力活塞 外界很多说法都是假的

罗说NBA
2026-10-05 05:41:45
湖南卫视押注《云雀叫天录》失败,张一山猴感太重成限制发展障碍

湖南卫视押注《云雀叫天录》失败,张一山猴感太重成限制发展障碍

李守智
2026-10-03 13:08:02
家族企业最怕什么?大参林用7个月的沉默,交了一笔天价学费

家族企业最怕什么?大参林用7个月的沉默,交了一笔天价学费

叮当当科技
2026-10-02 00:45:17
女子报冰岛外国团,发现除了导游全是中国人,当事人:因为该团便宜一半就报了;北极圈地广人稀但处处是乡音,感到非常亲切

女子报冰岛外国团,发现除了导游全是中国人,当事人:因为该团便宜一半就报了;北极圈地广人稀但处处是乡音,感到非常亲切

大风新闻
2026-10-04 20:28:03
抓捕缅北“四大家族”重要成员魏青涛、刘正琦等人现场画面曝光,整个过程只持续10分钟

抓捕缅北“四大家族”重要成员魏青涛、刘正琦等人现场画面曝光,整个过程只持续10分钟

上观新闻
2026-10-05 14:55:11
中网|郑钦文险胜布兹科娃,为在比赛中吼观众致歉

中网|郑钦文险胜布兹科娃,为在比赛中吼观众致歉

北青网-北京青年报
2026-10-05 19:18:37
向太说1999年马云来她家,聊了一晚上互联网,从头到尾没开口要钱

向太说1999年马云来她家,聊了一晚上互联网,从头到尾没开口要钱

荆楚寰宇文枢
2026-09-28 22:14:46
泪目!梅西最后1次回阿根廷队报到 戴墨镜露微笑 足协主席亲自迎接

泪目!梅西最后1次回阿根廷队报到 戴墨镜露微笑 足协主席亲自迎接

我爱英超
2026-10-05 07:39:27
当年排队买,如今排队卖。南京二条巷房价从最高5万大幅回落到1万,价格回归,普通人都能买得起房了

当年排队买,如今排队卖。南京二条巷房价从最高5万大幅回落到1万,价格回归,普通人都能买得起房了

捣蛋窝
2026-10-05 11:15:52
亚运已经收官!金牌数差距如断崖,日本83枚,韩国仅39枚,中国呢

亚运已经收官!金牌数差距如断崖,日本83枚,韩国仅39枚,中国呢

晨光苏醒a
2026-10-05 19:23:01
深度长文:读懂量子场论,原来万物皆空,世间万物都是宇宙的涟漪

深度长文:读懂量子场论,原来万物皆空,世间万物都是宇宙的涟漪

宇宙时空
2026-10-04 19:30:13
A股,千万别大意!人民日报发文释放风向,节后市场大概全新变局

A股,千万别大意!人民日报发文释放风向,节后市场大概全新变局

亿通电子游戏
2026-10-05 17:34:11
越军出兵2万偷袭我军两团,2天后却接到我军通知:派人来收尸!

越军出兵2万偷袭我军两团,2天后却接到我军通知:派人来收尸!

大运河时空
2026-10-04 19:20:05
2026-10-05 20:20:50
CreateAMind incentive-icons
CreateAMind
CreateAMind.agi.top
1610文章数 21关注度
往期回顾 全部

科技要闻

2026年诺奖:三名科学家因光遗传学获奖

头条要闻

明珍珍被执行死刑前画面披露 接受采访神情淡定露微笑

头条要闻

明珍珍被执行死刑前画面披露 接受采访神情淡定露微笑

体育要闻

30天30队·热:扬尼斯、阿德巴约与克雷

娱乐要闻

胡歌现身游本昌遗体告别仪式

财经要闻

零跑声明切割!蔡康永两面人身份被抵制

汽车要闻

方程豹9月热销破4万 首款皮卡鲨鱼将于四季度上市

态度原创

时尚
旅游
本地
游戏
公开课

像珊瑚一样生长:Balenciaga 的新生态

旅游要闻

潮玩三国品民俗 到成都洛带从早耍到晚

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

《巫师3RE》猎奇Bug太诡异 谁把我性感特莉丝皮剥了

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版