领域地图与如何阅读本书
上一章跟着一个请求走完了全栈。现在要把那条线放回整本书里:书里任何一个主题落在何处,哪些地方已成定论、哪些还在争,这本书和书架上几部综合著作各自站在什么位置,以及后面每个组件为什么要先问「为何如此设计」,而不只是问「它做什么」。这一章给出的地图,正是为这些判断而画。
先回答刚进入这个领域的读者真正会问的四个问题:每一块该放在哪里,哪些能当事实接受、哪些仍在争论,比起别的书这本书多给了什么,以及怎样读才不会被淹没。
十一个部分的地图
第 1 章 把一个任务从原始数据带到了一个已部署的智能体。现在从那道纵切面拉远,看向整个领域,展示第 I 到第 XI 这十一个实质部分如何彼此连接。要把它们记在脑子里,最简便的办法是看作一个栈:一个能力的生命周期,底部是算力和数据,顶部是一个受治理的行为,每一层都有一组选择,被下层约束,又被上层继承。图 2.2 画出了这个栈。
先看实线箭头,它们标出的是构建顺序。第 IX 部分,也就是加速器、网络、数据基础设施和算力前沿,垫在最底下;它画在第 I 部分之下,是因为集群长什么样,本身就是「能不能训练得出来」的头一道约束(第 62 章,第 65 章)。同一部分后来又回到模型之上,讨论能力测量与验证怎样决定哪些结果能被接受(第 71 章,第 72 章)。第 I 部分是基座模型形成这一层:它先用 扩展律(scaling law) 给训练定规模,也就是用一条把损失同模型规模、数据量与算力联系起来的经验公式来决定该训多大,再经由数据策展、分词、架构、大规模训练和中段训练桥接,把算力变成一个基座模型(第 5 章,第 6 章,第 7 章,第 8 章,第 9 章,第 10 章,第 11 章)。第 II 部分把同一个基座带向另一个方向,进入扩散、流匹配,以及超越文本的多模态生成(第 12 章,第 15 章,第 16 章)。第 III 部分把基座模型变成后训练助手:示范、行为规格、偏好奖励、直接偏好目标、可验证奖励、安全调优和合成数据循环(第 17 章,第 18 章,第 19 章,第 20 章,第 21 章,第 22 章,第 23 章)。第 IV 部分把推理变成一个显式控制系统:引出潜在工作、组织搜索、把一部分工作交给程序与求解器、用验证器选择、从可检查奖励中训练、蒸馏推理轨迹,并在生产中路由测试时算力(第 24 章,第 25 章,第 26 章,第 27 章,第 28 章,第 29 章,第 30 章)。第 V 部分是服务问题:把训练好的模型变成用户等得起的词元(第 31 章,第 32 章,第 33 章,第 34 章,第 35 章)。第 VI 部分把被服务的模型组织成有记忆、有工具、有检索、有上下文的智能体(第 38 章,第 39 章,第 41 章,第 43 章,第 44 章,第 46 章)。第 VII 部分衡量这一切到底管不管用,从公开基准、统计不确定性、人类评分准则、模型评判者、事实性、智能体轨迹,一直走到发布闸门(第 47 章,第 48 章,第 49 章,第 50 章,第 51 章,第 52 章,第 53 章)。第 VIII 部分横向伸进每一层,追问这个行为能不能被理解、被监督、被加固(第 54 章,第 55 章,第 56 章)。第 X 部分阅读技术栈周围的生态:模型开放性、工具标准、算力价格、市场结构、采用以及数据权利(第 73 章,第 75 章,第 76 章,第 77 章,第 78 章,第 79 章)。第 XI 部分把整个栈落到实处:从选型一路到接线、部署、审查,并从生产中继续学习(第 81 章,第 88 章,第 89 章,第 91 章,第 92 章)。
虚线箭头背后的横切关系,才是按顺序读的理由,读者却很容易漏掉它们。它们不是把一层传递给下一层,而是横跨整个栈。评估会反馈回适配:基准或评判者一变,下一轮后训练要优化的目标就跟着变。安全约束的是适配和编排,而不是最后才附加的一层。人的监督把这些约束落成产品表面:批准门、升级路径、修正回路与轨迹捕获。经济学给预训练和服务定价,而这个价格会沿栈向上影响那些在本层看来纯属建模的选择。运营契约则从第 XI 部分反向进入服务、评测、数据和安全:SLO、预算上限、事故记录与租户边界都会变成设计约束,而不只是部署文档。读的时候把这些横切关系记在心里;下面讲阅读说明的那一节,会把其中最典型的一支完整展开。
确定部分与未定问题
一张地图,只有把已经稳定的部分和仍在争论的部分分开标出来,才有用。读者对抗这个领域噪声的第一道防线,正是分得清哪类说法可以当作工程常识,哪类说法还只是立场。
这本书有一部分是已成定论的工程。Transformer 块及其注意力机制 (Vaswani et al. 2017)、自回归的下一词元目标(训练模型根据前面的词元去预测下一个词元)、带键值缓存的注意力(把每个词元算出的注意力状态存下来,在模型解码时反复取用)、混合精度训练(用更低精度的浮点数做运算,以省下内存和时间),还有损失随算力按一条平滑幂律下降这个基本事实,即算力预算每翻一番,损失就降低一个大致固定的比例 (Kaplan et al. 2020),都已不再有争议,是每个实验室共用的底座。读者可以像学一门语言的内存模型那样去学它们:当作游戏规则,整场比赛期间固定不变。
前沿则有很大一部分尚无定论,本书选择把这些地方标出来,而不是抹平。计算最优的词元与参数之比,是一个取决于预算和部署的选择,不是常数 (Hoffmann et al. 2022)(第 5 章)。在可验证奖励上做强化学习,究竟是教会了真正全新的推理,还是只把预训练早就放进去的能力打磨得更好,这场争论在 第 28 章 和 第 29 章 里展开,DeepSeek-R1 这样的工作在那里主张,纯强化学习可以激励出推理行为 (Guo et al. 2025)。稀疏自编码器(SAE)(一种把模型纠缠在一起的激活拆解成一个个可读单元的工具)到底是读取模型内部特征的正确原语,还是一个便利却有损的工具,在 第 54 章 里仍是开放问题。真正被衡量的,到底是一个基准数字、一个带区间的估计,还是运行它的那套框架,这个问题贯穿 第 47 章、第 48 章 和 第 52 章。本书的标志,是把这些仍在进行的争论放进专门的框里、列出具名立场,而不是用一句自信的话把分歧掩盖过去。下面这张交互图画出那条平滑的幂律:随着算力预算增长,损失在对数-对数坐标上沿一条直线下降,斜率由滑块设定。
最深的开放问题,聚在地图的上层和外层,而那里恰恰是本书要去占据的空白。眼下有三个值得点名。第一,可解释性没有公认的原语:叠加假设给了这个领域一套说法,去解释模型为什么能装下比维度更多的特征 (Elhage et al. 2022),稀疏自编码器又给了一个能着手的工具 (Bricken et al. 2023),但它们恢复出来的特征,究竟是模型真正的计算单元,还是方法本身的产物,至今没有定论。后继方法,即跨层转码器与在其上构建的归因图,已能追出整段计算,而不只是单个特征 (Ameisen et al. 2025),可正确原语是什么依然未决,第 54 章 把它当作开放问题来处理。第二,推理增益的来源与度量仍有争议:第 28 章 权衡强化学习究竟是在诱发潜在能力,还是在装进新能力 (Guo et al. 2025),第 29 章 追问多少增益能被搬进数据,第 30 章 则追问多想何时停止有益。第三,智能体架构尚无定型:长程胜任力到底来自更好的记忆系统(第 39 章)、更强的单体框架(第 41 章),还是真正的多体分解(第 43 章),这是一个领域还没解决的经验问题。在这三个领域里,任何自信的答案都该当成一种立场,而不是事实。
已有书架,以及层与层之间的空白
要决定把精力花在哪里,读者有权先知道这本书不是什么。它不是一本讲生成式技术栈之前那套 AI 基础设施的书:排序、推荐与表格预测只在构成约束或提供教训的地方出现,第 4 章 明确划出了这条边界。它也不试图成为扩展律、分布式训练、GPU 内核或 LLM 服务的最深公开参考。DeepMind 和 JAX 团队的《How to Scale Your Model》已经把扩展的系统视角讲得很清楚:从屋顶线、TPU、GPU,一路到训练、推断、服务和剖析 (Austin et al. 2025)。DeepMind 和 Google 也用 Chinchilla 这类论文把扩展律路线讲得很扎实 (Hoffmann et al. 2022)。Hugging Face Nanotron 团队的《Ultra-Scale Playbook》专门讲如何在 GPU 集群上训练大语言模型 (Hugging Face Nanotron Team 2025)。Stanford 的 CS336 则用很重的实现作业,从分词、架构、系统优化、扩展、数据一直讲到对齐 (Hashimoto and Liang 2025)。如果问题是怎样实现张量并行、调试一次训练作业、剖析 TPU 程序、高效服务 LLaMA,或优化注意力内核,这些资料才是该先去的书架。
再往上一层也是如此。Chip Huyen 的《AI Engineering》(Huyen 2025) 把应用层讲得很透彻:站在一位把模型适配到具体用例的工程师的视角,讲怎样在那些只调用、不自己训练的基础模型之上构建产品,覆盖评估、提示与上下文设计、检索和部署。Sebastian Raschka 的《Build a Large Language Model (From Scratch)》(Raschka 2024) 是笔记本规模的从头搭建:用 PyTorch 端到端实现一个 GPT 风格的模型,从分词、注意力一路到预训练和微调,让读者靠亲手造一个小模型来理解机制。Suhas Pai 的《Designing Large Language Model Applications》(Pai 2025) 则从语言模型的各种成分,经由微调、检索一路讲到智能体,是一趟更宽的巡览。
因此,本书试图占据的空白,不是「训练和服务讲得更深」。这个说法并不稳。真正的空白在层与层之间的连接组织。训练和服务之所以重要,在于它们给后面的章节定下价格、延迟、内存形状、数据需求和信任边界。服务引擎会改变哪种预训练配方在经济上成立。评测框架会改变下一轮后训练收集哪些样本。验证器会改变哪些推理轨迹能变成数据。安全边界会改变智能体运行时允许做什么。硅封装、HBM 供给、电力接入、出口管制和地理位置决定哪些系统根本能存在(第 67 章,第 68 章)。验证能力则决定模型产出的哪些主张会变成被接受的知识,而不只是貌似可信的输出(第 72 章)。SLO、预算、事故手册和租户隔离则决定系统存在之后能不能被运营(第 93 章)。
照这个读法,本书的独特单位不是孤立章节,而是一条下层约束。下层讲到足以让这些约束站住;上层则要在这些约束之下,重新检查能力、效率与信任。某一章需要真正深入集群训练或服务实现时,它应当把读者指向那些专门资料,而不是假装自己可以替代它们。本书留给自己的,是跨层因果解释:为什么一个物理、经济、安全或运营约束,会改写一个在本层看来局部的技术选择。
阅读说明
地图标出东西在哪。最后这一节讲各章如何组织,好让后面的阅读少一些重复摸索。
每个实质章节都走同一条结构。一章先以问题开场:这个组件要回答的本质约束是什么,用延迟、成本、内存、规模、安全或正确性来讲。接着给出设计:回答这个问题的核心想法,以及它底下的原理。演化追溯设计怎么走到这一步,哪些更早的做法先出现、又为什么被取代,一路循着一手源头。权衡点出拿什么换了什么,已知的缺口又在哪里。实现只在一段最小的草图、一份配置或一个运维细节能澄清设计时才出现,绝不为复制一个文件而写。每一章都以延伸阅读收尾,一手来源排在前面。这道结构本身带着一个方向,从工程通向理论:先把实践问题立住,再给出解释它的那些根基。
有两个标注会在全书反复出现。一个争议所在框,标出领域真正分歧的地方,配上具名的立场,就像上面那个。一个下层约束框,标出下层在哪里替上层定下了选择。这些约束关系,正是按顺序读这个栈、而不是随手翻各章,所能获得的理解;下面那个框给出最典型的一例。
下层约束最清晰的单个实例,从服务一路传导到基座模型形成,具体说,是传导到预训练配方。第 5 章 决定训练一个多大的模型、用多少词元,单看这一层,像是纯训练经济学:为一笔固定算力预算把损失压到最低,也就是计算最优配方 (Hoffmann et al. 2022)。但如果一个模型一生要服务的词元量极其庞大,正确的做法反而是刻意把一个更小的模型训练到远远越过计算最优的那个点,因为训练只付一次,推断要永远付。这个决定,是 第 31 章 里的服务成本沿栈向上传导后定下的,而不只是训练预算说了算。读者在某一章里碰到一个看似没来由的选择时,往下看一层:解释它的那条约束,通常就从那里起步。
试着改一改每个模型一生服务的词元数,看那个交叉点怎样移动:一个更小、被刻意过度训练的模型,训练起来更贵,但每个词元更便宜,所以越过某个服务量之后,它在总成本上胜出。
import numpy as np
import matplotlib.pyplot as plt
# 假设两个模型达到同样的质量,按生命周期成本比较。
# 训练 FLOPs 约为 6*N*D,推断 FLOPs 约为每生成一个 token 2*N。
big_N, big_D = 70e9, 1.4e12 # 计算最优的较大模型
small_N, small_D = 13e9, 12e12 # 在更多 token 上过度训练的较小模型
served = np.logspace(11, 15, 200) # 模型生命周期内服务的 token 数
big_cost = 6 * big_N * big_D + 2 * big_N * served
small_cost = 6 * small_N * small_D + 2 * small_N * served
cross = served[np.argmin(np.abs(big_cost - small_cost))]
plt.loglog(served, big_cost, label="计算最优 70B")
plt.loglog(served, small_cost, label="过度训练 13B")
plt.axvline(cross, ls="--", color="gray")
plt.xlabel("生命周期内服务 token 数"); plt.ylabel("总 FLOPs"); plt.legend()
print(f"交叉点约为 {cross:.2e} 个服务 token")
plt.show()
还有两个母题反复出现,用不着专门标注,但注意到它们,能把相隔很远的章节系到一起。三个循环,即训练、推断和智能体,是同一个控制结构在三个时间尺度上的样子:一个跨数周的循环把算力变成模型,一个毫秒级的循环把提示变成词元,一个多步的循环把目标变成动作。图 2.4 把三者并排画出,好让那个共享的形状显出来:每一个都是输入交给一步计算、产出一个输出、输出再回到输入,变的只是内容和时间尺度。
能力、效率、信任这一组视角为许多章节收尾:一项技术带来的是能力、效率或信任,而且往往要拿一样去换另一样;点明它改变的究竟是哪一样,能让比较不至于失真。
读者不必严格地从头读到尾。各部分彼此连接,所以顺着地图的实线箭头走,先看基座模型形成,再看适配;先看服务,再看编排,能让那些下层约束真正起作用,这也是推荐的路径。按兴趣读也完全可以,交叉引用会指回某一章所依赖的那个下层。无论哪种读法,都记住这四个问题:它在地图上落在哪里,是确定事实还是仍有争议,本书在此添了什么,以及约束从哪一层传到哪一层。
延伸阅读
- Huyen, Chip. AI Engineering: Building Applications with Foundation Models. O'Reilly Media, 2025. oreilly.comChip Huyen 的著作介绍 AI 工程实践:基于基础模型构建生产应用,涵盖评测、模型适配技术(提示工程、RAG、微调、智能体)与推理部署。
- Raschka, Sebastian. Build a Large Language Model (From Scratch). Manning Publications, 2024. manning.com本书手把手引导读者从头实现大语言模型(LLM)的注意力机制与 GPT 风格的 Transformer 架构,涵盖训练、微调与指令跟随。
- Pai, Suhas. Designing Large Language Model Applications: A Holistic Approach. O'Reilly Media, 2025. oreilly.comSuhas Pai 所著 O'Reilly 图书,介绍将大语言模型(LLM)从原型过渡到企业生产级应用的设计模式与工程决策。
- Hugging Face Nanotron Team, “The Ultra-Scale Playbook: Training LLMs on GPU Clusters,” 2025. huggingface.coHugging Face Nanotron 团队的专门指南,聚焦在大型 GPU 集群上训练大语言模型,并提供 PDF 与交互网页版本。
- Hashimoto & Liang, “CS336: Language Modeling from Scratch,” 2025. cs336.stanford.eduStanford 的实现密集型语言模型课程,覆盖分词器构造、Transformer 实现、系统优化、扩展律、数据处理、评测与对齐。
- Austin et al., “How to Scale Your Model,” 2025. jax-ml.github.ioDeepMind/JAX 的系统书,讲真实 TPU 与 GPU 硬件上的 LLM 扩展,覆盖屋顶线、分片、训练、推断、服务与剖析。
评论
登录后评论