AI 基建
0%
第九部分 · 基础设施、算力与前沿 · 第 69 章

规模下不断失效的机器

作者Changkun Ou
阅读时长约 11 分钟

前三章造出了一台十万块加速器的机器,并为它接上了电力。投入运行后,同一道约束会在多个层级上显现:一次前沿训练运行,几乎在任何时刻都有某处在出故障,所以工程纪律从「预防故障」转向「摊销故障」。最危险的故障,是那些不发出警报的故障。网络的延迟层级和解码带宽限制,给训练与服务设下了边界。一个连跑数小时的智能体,也会在更高一层遇到同一套复合故障逻辑。容错、静默损坏、网络约束、推断经济学、智能体可靠性,不是五个问题,而是同一个现象在五个层级上的表现。每一层,都是一个更低的物理极限规定了一个更高的架构选择,也都是这个领域尚未就「容错该住在哪一层」达成一致的地方。

2026-06-21T23:31:03.589769 image/svg+xml Matplotlib v3.11.0, https://matplotlib.org/ 1 0 2 1 0 3 1 0 4 1 0 5 1 0 6 集群组件数 0.0 0.2 0.4 0.6 0.8 1.0 作业存活概率 全部健康 带恢复机制
图 69.1. 系统扩展时集群可靠性的示意图。所有组件都保持健康的概率会快速下降,而恢复机制把完全失败转成降级前进。理想化曲线,非实测。

故障是一种统计学上的必然

同步训练是一笔单一的分布式事务。每块加速器都必须完成它在这一步里分到的那份,下一步才能开始,所以只要 NN 块设备里有任何一块出故障,全部 NN 块都会停摆。每设备故障率大致由硅及其内存钉死,这让大 NN 算下来毫不留情:整个运行的平均无故障时间(MTBF),也就是平均故障间隔,会随设备数成比例下降。

把这件事坐实的公开记录,是 Meta 的 Llama 3 405B 运行。在 16,384 块 H100 上跑了 54 天,记录到 419 次意外中断,大约每三小时一次,其中约 59% 追溯到 GPU 或高带宽显存故障 (Grattafiori and others 2024)。若每设备故障率保持不变,再把运行规模扩到十万块加速器以上,故障之间的预期间隔就会跌到半小时以下。一个每次故障都要花上几十分钟才能恢复的运行,到那时花在恢复上的时间会多过花在计算上的。前沿已经越过临界点:故障不再是值得预先规划的例外,它就是稳态。

dev 固定的每设备故障率 (硅 + HBM) n × N 块同步设备 (任一出故障 → 全部停摆) dev->n mtbf 整个运行 MTBF 下降 Llama 3:16k GPU 下约每 3h 一次 → 100k+ 时跌破 30 分钟 n->mtbf pivot 转向:摊销,而非预防 衡量 ETTR,而非峰值 FLOPs mtbf->pivot
图 69.2. 为什么稳态就是故障。一个固定的每设备故障率,乘上一个 N 块设备的同步运行,把整个运行的平均无故障时间压到恢复时间以下,于是纪律从预防故障转向摊销故障。Llama 3 405B 运行是公开的锚点。

应对之道不是预防故障,那在这个速率下并不现实,而是把恢复做得足够便宜,让频繁的故障几乎不伤吞吐。捕捉这一点的指标是有效训练时间比(ETTR),也就是整段挂钟时间里,运行真正在取得进展、而非在恢复的那一份。一套生产系统,在近一万块 GPU 上跑满三个月、报出 97% 的有效训练时间,而这一万块又坐落在一个数十万块的平台之上,这就是当前的技术前沿 (ByteDance Seed 2025)。它做到这一点,靠的是用内存内和对等副本检查点替换掉周期性的磁盘检查点,于是一次重启只花几秒,而不是从存储里重载好几个 TB 所要的那几十分钟。

下层约束

固定的每设备故障率规定了训练软件的架构。在十万块加速器的尺度上,它逼出亚分钟级的恢复、内存内检查点和冗余节点,因为另一条路,也就是周期性磁盘检查点,会让恢复淹没计算。第 10 章 里的那套并行,正是这一层必须在持续不断的中断中维持运行的东西。

那些不发出警报的故障

公开账本里的故障会自己宣告:一块 GPU 从总线上掉下来、一个进程崩溃、一次集合通信超时。更难的问题是那些不宣告的。静默数据损坏(SDC)是一种产出错误数字、却既不崩溃也不报错的故障:一个比特在算术单元或某个内存单元里翻转,悄悄污染了一个结果。在一次前沿运行的尺度上,那么多设备计算那么多周,这样的事件不是一种可能,而是接近确定,而且危险很具体:训练中的损坏会把模型导向另一个最优点,悄悄劣化结果,却从不触发任何警报 (Ma et al. 2025)。

静默损坏之所以「未解」而非「仅仅是难」,是因为那些便宜的检测器漏掉了它的大部分。一项对数据中心 GPU 的门级研究发现,非数值(NaN)与无穷(INF)值,也就是朴素守卫所盯着的信号,只占静默损坏后果的约 1%,而单比特翻转,也就是大多数纠错码所假设的那个模型,占比特翻转事件的不到 40% (Silent Data Corruption Study 2026)。最要命的是貌似合理的错误答案:一个落在正确量级、却干脆就是不对的有限数字。要逮住它,需要在矩阵乘法上做算法级校验,或用确定性重放来定位出问题的节点,两者都要耗算力,而且谁也没有一个公认的覆盖标准。悬而未决的问题不是怎么检测一次崩溃,而是怎么检测一个貌似合理的错误答案。

延迟层级如何限制同步

第 62 章 立起了那几层带宽;在这里,它们转化为同步训练的延迟约束。一项对超过十万块 GPU 上集合通信的测量研究,给这个层级钉上了硬数字:相对于一个机架内部的延迟,跨到另一个机架约为七倍,跨到另一个区约为十五倍,跨到另一栋楼约为三十倍 (Meta 2025)。这些倍数是物理,不是调参,它们决定了并行映射。最吃通信的那个轴必须留在高带宽的 scale-up 域内,而正如 第 66 章 所述,这个域已经从一个节点长到一个机架,但只到域的边缘为止。过了那道边缘,只有那些通信稀疏的轴才付得起跨越的代价,而它们跨得越远,付得越多。

这道约束改变了领域里一场进行中的辩论。一个长到容不下单栋楼电力的运行,也就是 第 68 章 描述的那个约束,必须跨楼或跨站点,而在那个距离上,三十倍的延迟惩罚让严格的全局同步变得不经济。正统的答案是保持同步训练、围着延迟做工程;挑战者则是放松同步,先在本地多走几步,偶尔再对齐一次。最近变了的是,挑战者拿到了证据:一种跨数据中心训练方法报告,在普通广域链路上跨区训练、且在高故障率下,仍把有用功的占比保持在约 88% (Google DeepMind 2026)。异步跨站点训练,从一个理论选项变成了一个被演示出来的选项;推动它的不是放松同步的愿望,而是一个简单事实:电力装不进同一个地方。

解码阶段的带宽限制与服务拆分

服务层继承了同一道内存墙。第 66 章 已经立起了这种不对称,并为它提出了一种硬件层面的拆分:解码,也就是逐词元的生成,是带宽受限的,其吞吐由权重和累积的KV 缓存(key-value cache)从内存里流出的快慢决定,而不是由算术决定 (Erdil 2025);预填充,也就是处理提示,则恰好相反,是算力受限的,能容忍更便宜的内存。那一章留下、而本章接手的问题,是服务部署该拿这种不对称怎么办。

disagg prompt 提示 prefill 预填充池 算力受限 更便宜的内存即可 prompt->prefill decode 解码池 带宽受限 稀缺 HBM prefill->decode prefill->decode 流式传输 KV 缓存 (那笔有争议的代价) out 词元 decode->out
图 69.3. 服务为何拆成两段。预填充是算力受限的,能容忍便宜内存;解码是带宽受限的,要的是稀缺的 HBM。把它们拆到配置各异的资源池上,让每一方都跑在成本最优的硅上,代价是在两者之间流式传输 KV 缓存。这一笔交易划不划算,存在争议。
一个请求带着完整的提示进来。此刻还什么都没生成,而接下来的工作分成两个资源需求相反的阶段。
整段提示在一次并行传播里处理完。这个阶段会用满算术单元,却能容忍更便宜、更慢的内存。
预填充为每个提示词元留下键值缓存,一份数 GB 的工件,解码每一步都要读它。
词元一次出一个。每一步都要把权重和不断变大的缓存从内存里读出来,于是吞吐由内存带宽决定,而不是算术。继续增加 FLOPs 也无法解决瓶颈。
既然两个阶段想要不同的硬件,就把它们放到各自的池子上,在它们之间流式传输缓存。只有当负载与上下文长度足以抵偿搬运一个数 GB 缓存的代价时,这一拆才划算。
图 69.4. 预填充与解码是同一条流水线上的两类资源需求。这条流水线显示,单一资源池为何无法同时适配两者,以及拆分用什么代价来修正它。

结构上的应对是拆分:把预填充和解码跑在分开、配置各异的资源池上,并在它们之间流式传输键值缓存。一套生产服务系统在 2026 年出货了这个模式,带有直接的内存到内存缓存传输,并在推理类负载上报出可观的吞吐增益。机制上的交叉引用见 第 31 章第 32 章;让缓存变得这么大的长上下文压力,则留到 第 35 章 再谈。前沿的问题是这一拆是否总是划算,因为在资源池之间搬运一个数 GB 的缓存本身就是一笔代价,只有合适的负载组合与上下文长度才偿得回。

智能体也受复合故障支配

往上一层,同一套复合逻辑支配着一个智能体能跑多久。如果一个模型在一项任务的每一步上以概率 pp 成功,那么一项有 nn 个独立步骤的任务就以概率 pnp^n 成功,而即便 pp 很高,这个值也衰减得很快。所以长程可靠性不是单步准确率的平滑延伸,它是一个连乘项。近期工作把这一点形式化,并给一个更尖锐的效应起了名:自条件化,即一个模型自己早先的错误,留在它的上下文里,提高了后续出错的概率,于是衰减比独立步骤所预测的更糟,而扩大参数量并不能消除它 (Study 2025)。相应地,衡量智能体也出现了专门词汇:可靠性衰减曲线和劣化分数,而非单一的通过率 (Study 2026),因为一个描述单次尝试的数字,对一个被要求连续运行数小时的智能体来说几乎说明不了什么。

这究竟是一个模型问题还是一个系统问题,正是争论所在;本章采取系统视角:如果原始可靠性随任务长度超线性衰减,那么解法是运行框架(harness),它对智能体的状态做检查点、校验中间结果、并建立恢复机制,而不是等待一个永不出错的模型(交叉引用 第 41 章第 43 章第 52 章)。底层模型里的能力趋势是真实的,也是 第 71 章 的主题;关键在于,这台机器在每一层都会以相似方式失效,而答案在每一层也都一样,那就是摊销故障,而不是假装它不存在。

争议所在
  • 静默损坏是一种尾部风险,还是一种例行危害? 一种经典观点认为它每设备很罕见,并被梯度噪声吸收。前沿实验室的观点则认为它在规模下接近确定,且能改变收敛,因此要求常开检测。真正的分歧在于覆盖率对开销:没人就「必须逮住多大一份」或「多大代价可接受」达成一致。
  • 极端规模下是同步还是异步? 正统阵营保持批量同步训练,并用快恢复和更快的集合通信来修它。挑战者阵营接受过时梯度和本地步,以承受故障与跨站点延迟,如今也有了可以指向的、已被演示出来的 goodput(有效吞吐,指吞吐里真正做有用功、而非停摆或重算的那一份)。异步能否匹配前沿的损失曲线,仍未有定论。
  • 容错该住在哪一层? 硅厂商力推更好的纠错与遥测;网络阵营想要自愈的集合通信,把一条抖动的链路当作一等公民来对待;框架阵营则主张只有应用知道检查点和并行的结构,所以恢复该归它来做。这几层并不互斥,而这个领域尚未把分工敲定。
  • 预填充/解码解耦赢吗? 它的拥护者说每个阶段都跑在成本最优的硅上、两项延迟指标都改善。怀疑者说搬运缓存只在高上下文长度和特定组合下才划算,而对短提示来说,一套统一部署更便宜。

故障成为运行方式

能力、效率、信任在这里收束到同一个主题:可持续运行。能力被恢复速度所限:一个运行如果恢复不快过它出故障的速度,就根本跑不完,所以前沿能力首先是把运行维持下去,而不是单纯跑得快。效率是有效训练时间比,以及每加速器每秒的词元数,两者都靠处理故障和带宽墙来赢得,而不是靠增加算术。信任是字面意义上的「相信这些数字是对的」,而静默损坏悄悄侵蚀着它,也是「相信一个被放任去跑的智能体不会越滚越偏、最终产出无意义结果」的那种信任。这台机器在每一层都会以相似方式失效,而前沿的纪律,就是一项具体工程工作:让一台总有一部分在坏着的机器,表现得仿佛它是完好的。沿着物理与工程的栈追到它的极限之后,下一章转向另一种极限,也就是学习本身内部的极限。

延伸阅读

  • Grattafiori & others, “The Llama 3 Herd of Models” (公开的故障账本:16,384 块 H100 上 54 天内 419 次中断), 2024. arXiv:2407.21783
  • ByteDance Seed, “Robust LLM Training Infrastructure at ByteDance (ByteRobust)” (一次三个月运行中 97), 2025. arXiv:2509.16293
    ByteRobust 是字节跳动面向大规模 LLM 训练的生产级容错基础设施,通过自动化故障检测与恢复在 9600 张 GPU 三个月训练任务中实现了 97
  • Ma et al., “Understanding Silent Data Corruption in LLM Training” (约 1), 2025. arXiv:2502.12340
    本文首次对真实生产节点上的静默数据损坏(SDC)对大语言模型(LLM)训练的影响进行实证分析,发现 SDC 会导致模型参数偏移并在微调中引发损失尖峰。
  • Silent Data Corruption Study, “The Anatomy of Silent Data Corruption: GPU Error Pattern Study and Modeling Guidance” (约 1), 2026. arXiv:2605.04213
    通过对生产级 GPU 进行门级故障注入,系统表征静默数据损坏(SDC)规律,发现 NaN/INF 仅占损坏输出的 1.01
  • Meta, “Collective Communication for 100k+ GPUs” (7x / 15x / 30x 的延迟层级与一个容错的 all-reduce), 2025. arXiv:2510.20171
    NCCLX 是 Meta 为 Llama4 开发的集合通信框架,基于 NCCL 扩展,支持 100K+ GPU 的零拷贝、SM-free 传输、容错 AllReduce 及面向混合专家(MoE)推理的 GPU 常驻集合操作。
  • Google DeepMind, “Decoupled DiLoCo: Cross-Datacenter Training of Language Models” (约 88), 2026. arXiv:2604.21428
    Decoupled DiLoCo 将 DiLoCo 框架扩展为完全异步的学习器架构,通过中央同步器采用最小仲裁数和词元加权合并,在持续硬件故障下实现零停机预训练,同时保持与数据并行基线相当的模型质量。
  • Erdil, “Inference Economics of Language Models” (解码的内存带宽天花板与批量权衡), 2025. arXiv:2506.04645
    该论文建立理论模型,综合计算、高带宽显存带宽与网络延迟约束,推导 LLM 推理中每词元生成速度与每词元成本的 Pareto 前沿。
  • Study, “The Illusion of Diminishing Returns: Measuring Long Horizon Execution in LLMs” (复合误差与自条件化), 2025. arXiv:2509.09677
    本文指出短任务基准上的边际收益递减掩盖了长时域执行长度的指数级提升,并发现了一种"自我条件化"失效模式:大语言模型在上下文包含历史错误时性能显著下降。

评论

登录后评论