大模型训练最怕的不是GPU不够,而是网络抖一下:OpenAI MRC给出的答案

摘要

很多人谈大模型训练,第一反应是 GPU 数量、显存、算力峰值。但 OpenAI 在 Engineering 文章《Supercomputer networking to accelerate large scale AI training》中给出的答案更底层:到了十万级 GPU 同步训练规模,真正的瓶颈不只是算力,而是网络是否足够稳定、可预测、可恢复。

OpenAI 披露的 MRC,也就是 Multipath Reliable Connection,核心目标不是单纯把网络做快,而是在链路故障、拥塞、交换机维护甚至路由异常时,让训练任务继续前进。对研发团队来说,这篇文章的启发是:AI 基础设施不能只按 GPU 堆料理解,网络本身已经成为模型能力增长的关键工程变量。

背景:同步训练会放大每一次网络抖动

大模型预训练通常是同步 workload。很多 GPU 分布在大量机器上,以 lockstep 方式推进同一个训练 step。这个模式的残酷之处在于:一个 transfer 迟到,就可能拖慢整个训练 step;一个链路 flap,就可能让 GPU 空等;一个交换机故障,就可能触发路由重算,甚至导致训练任务从 checkpoint 重启。

OpenAI 在文章中把这类 workload 称为 failure amplifier。规模越大,单点异常被放大的概率和影响越高。网络拥塞、链路故障、设备故障不再是偶发边缘问题,而是大规模集群的背景噪声。

这也是为什么“GPU 利用率”不能只从单机或单卡看。真正的有效算力取决于整个集群能否稳定同步。如果网络每隔一段时间让训练暂停几秒、几十秒,峰值算力再高也会被吞掉。

技术要点一:MRC 的目标是可预测性能

OpenAI 明确说,MRC 的目标不只是快,而是在故障存在时仍提供可预测性能。这个目标非常工程化。因为大模型训练最怕的不是平均吞吐差一点,而是长尾抖动和不可解释停顿。

MRC 建立在最新 800Gb/s 网络接口上,能把单个 transfer 分散到数百条路径上,并在微秒级绕过故障路径。它扩展了 RoCE,也就是 RDMA over Converged Ethernet,并结合 Ultra Ethernet Consortium 的技术方向,再通过 SRv6 源路由适配大规模 AI 网络。

这意味着 MRC 不是单一优化点,而是协议、拓扑、路由和故障处理的组合。它把“稳定训练”作为端到端目标,而不是只优化某一段带宽。

技术要点二:多平面网络降低复杂度

传统思路里,一个 800Gb/s 接口可能被看成一条大链路。OpenAI 的设计则把它拆成多个更小的链路,例如一个接口连接到 8 台不同交换机,形成 8 个并行平面,每个平面 100Gb/s。

这个变化看似只是拆分带宽,实际改变了集群拓扑。OpenAI 提到,一个 64 端口 800Gb/s 交换机,如果按 100Gb/s 平面设计,可以连接 512 个端口;因此约 131,000 个 GPU 可以用两层交换机完成互联,而传统 800Gb/s 网络可能需要三层或四层。

两层结构的价值很直接:组件更少,功耗更低,故障点更少,路径多样性更高。对大规模系统来说,减少复杂度本身就是可靠性提升。

技术要点三:Packet spraying 避免热点

如果仍然让一个 transfer 走单一路径,多平面网络的优势很难发挥。多个 flow 可能撞到同一条链路,形成热点;某些 flow 的长尾延迟会拖慢同步训练。

MRC 的做法是 packet spraying:把一个 transfer 的包喷洒到数百条路径上。即使包乱序到达也没关系,因为 MRC 包里包含最终内存地址,接收端可以按到达顺序写入正确位置。

更重要的是,MRC 会维护路径状态。如果某条路径拥塞或丢包,它会停止使用该路径,改走其他路径,并通过 probe packet 判断路径是否恢复。OpenAI 还提到 packet trimming:如果交换机因为拥塞本来要丢包,可以只转发头部,让接收端明确请求重传,避免把所有丢包都误判成路径故障。

这套机制把网络从“静态分配路径”变成“持续自适应调度”。

技术要点四:用 SRv6 替代动态路由

传统大规模网络通常依赖 BGP 等动态路由协议。问题是交换机本身也会出现复杂软件故障,动态路由收敛也需要时间。在同步训练里,几秒甚至几十秒的收敛都可能非常昂贵。

OpenAI 的做法更激进:MRC 使用 SRv6 源路由,由发送端决定每个包经过哪些交换机。交换机只需根据静态路由表转发,不需要动态计算路径。如果某条路径失败,MRC 连接自己停用这条路径。

这带来一个关键收益:复杂性从网络控制平面转移到端侧连接逻辑。交换机更简单,路径选择更确定,故障定位也更直接。对超大规模训练网络来说,这种“少让共享基础设施做复杂决策”的思路非常值得借鉴。

生产视角:故障不再必须打断训练

OpenAI 给出的生产案例很有说服力。他们观察到训练网络中 T0 与 T1 交换机之间每分钟出现多次 link flap,但 MRC 让这些波动对同步预训练没有可测量影响。在一次近期 frontier model 训练中,他们甚至重启了 4 台 T1 交换机,而不需要和训练任务团队协调。

这说明 MRC 解决的不是实验室 benchmark,而是运维现实。大规模集群里故障一定会发生,关键不是幻想零故障,而是让故障变成可吸收事件。

研发建议:训练平台要补齐网络可观测性

如果你的团队正在建设大模型训练平台,可以从这篇文章抽象出几个实践方向:

  1. 不要只看 GPU 利用率,要监控 collective communication 的长尾延迟。
  2. 把链路 flap、交换机异常、拥塞事件和训练 step 抖动关联起来。
  3. 对大规模训练任务设置网络故障预算,而不是只设置算力预算。
  4. 在网络设计上优先减少共享复杂度,避免单点控制平面成为故障放大器。
  5. 对同步训练建立“路径健康”指标,区分拥塞、丢包、真实故障和重传。
  6. 运维操作要验证是否能被训练任务无感吸收,而不是默认暂停任务。
  7. 评估新硬件时,把网络协议、路由策略和故障恢复能力纳入采购指标。

这些事情看起来偏基础设施,但它们直接决定模型训练是否能稳定放大。

风险与限制

MRC 是 OpenAI 在超大规模训练集群中的工程方案,依赖 800Gb/s 网络接口、多平面拓扑、SRv6、RoCE 扩展以及跨厂商协作。普通团队不需要也很难完整复刻。

但它的原则可以迁移:训练系统要追求可预测吞吐,故障要被隔离和吸收,网络控制平面要尽量简单,观测指标要能解释长尾抖动。对于中小规模训练或推理集群,这些原则同样有价值。

结语

大模型训练不是简单堆 GPU。到了 frontier model 规模,网络已经从配套设施变成训练能力本身的一部分。MRC 的价值就在于,它把故障、拥塞、路由和维护都纳入训练连续性的设计里。

对研发团队来说,真正的问题不是“买多少卡”,而是“这些卡能不能稳定一起工作”。如果网络不能保证同步训练持续推进,GPU 越多,故障放大的代价也越高。

参考来源

  • OpenAI Engineering: Supercomputer networking to accelerate large scale AI training
    https://openai.com/index/mrc-supercomputer-networking/

更多推荐