大模型预训练的失败模式与并行策略

本文基于Dwarkesh Patel的博客文章,探讨了大模型预训练失败的两大核心原因(打破因果律与引入偏差)及并行计算策略。文章分析了专家选择路由、FP16数值精度问题等具体故障案例,并详细解析了从数据并行到FSDP再到流水线并行的演进逻辑与权衡。

导语

训练大型语言模型是一项极其精密且充满挑战的操作。Dwarkesh Patel分享了与业内人士的交流,揭示了预训练为何频繁失败的深层原因,并借助Horace He的讲座,系统梳理了应对超大模型计算的并行策略演进。失败往往源于看似微小的工程选择,而解决方案则是在计算效率、通信开销与架构灵活性之间进行艰难的权衡。

大纲与深读 6 章

展开「深读」看每一段讨论的问题与论据。

01

预训练失败的核心原因

  • 破坏因果性和引入偏差是导致预训练失败的两大关键因素。
  • 专家路由(expert routing)中的专家选择(expert choice)模式会破坏因果性。
  • 标记丢弃(token dropping)同样会破坏因果性。
深读这一段

讨论的问题:为什么预训练运行经常失败?

论据 / 案例:传闻称,专家选择(expert choice)模式破坏因果性解释了Llama 4表现不佳的原因。标记丢弃(token dropping)是Gemini 2 Pro的一个问题。

02

偏差比方差更危险

00:24
  • 偏差(bias)比方差(variance)更糟糕,因为偏差会累积而方差可以平均抵消。
  • 原始GPT-4训练因FP16在归约操作中的精度问题而缓慢且最初受挫。
  • FP16在数字较大时(如1024以上)会因舍入误差导致计算值与实际值相差10倍。
深读这一段

讨论的问题:为什么偏差是训练中的严重问题?

论据 / 案例:原始GPT-4训练使用FP16进行集合通信(如all-reduce),在数字较大时(如1024)会因尾数位(mantissa bits)的间隔问题导致计算值与实际值相差10倍。

03

对AI训练的启示

01:00
  • 训练失败可能不会收敛于几种固定模式,而会随规模扩大出现新的、特定的问题。
  • 内核编写难以被AI完全自动化,因为这是一个高度复杂的领域。
  • 强化学习(RL)推理中的数值漂移可能导致策略偏差,这在用户服务中不是问题,但对高质量训练至关重要。
深读这一段

讨论的问题:这些失败案例对AI训练的未来意味着什么?

论据 / 案例:英伟达(Nvidia)花了很长时间为其Blackwell架构优化内核,这表明该问题难度很高,不容易通过闭环解决。强化学习推理中存在数值漂移(numerical drift)。

04

预训练并行策略

01:45
  • 预训练FLOPs方程为6ND,其中6是前向和后向传播的总计算量系数。
  • 数据并行(Data Parallelism)是起点,但受限于单个GPU的HBM容量。
  • 全分片数据并行(FSDP)是默认选择,它通过逐层全收集(all-gather)参数来解决内存问题。
  • FSDP的通信量是朴素数据并行(DP)的50%额外开销,可通过将全归约(all-reduce)替换为减少分散(reduce-scatter)来优化。
深读这一段

讨论的问题:如何将预训练任务分配到多个GPU上?

论据 / 案例:FSDP的通信量计算:全收集(all-gather)的通信量是全归约(all-reduce)的一半。优化后的FSDP总通信量约为参数数量的3倍。

05

FSDP的扩展瓶颈

03:00
  • 当GPU数量增加时,FSDP的计算时间减少但通信时间不变,导致MFU(模型FLOPs利用率)骤降。
  • 批大小(batch size)的下限限制了FSDP可扩展的GPU数量。
  • FSDP与计算/通信时间存在一个“交叉点”(crossover point)。
深读这一段

讨论的问题:为什么不能总是只使用FSDP?

论据 / 案例:计算时间随GPU数量增加而减少,通信时间则不随域(domain)数量增加而增加。批大小为1000万token,序列长度为1万时,只有1000个序列,因此FSDP无法扩展到超过1000个GPU。

06

流水线并行的问题

04:00
  • 流水线并行(Pipeline Parallelism)会导致“气泡”(bubbles),即早期和后期层GPU的空闲。
  • 无法在训练中重叠批次来解决气泡,因为需要在处理下一批次前更新模型。
  • 流水线并行会引入架构约束,拖慢研究迭代速度。
深读这一段

讨论的问题:流水线并行有什么问题?

论据 / 案例:流水线气泡是指批次开始时,负责最终层的GPU未被使用;批次结束时,负责初始层的GPU未被使用。Kimi的注意力-残差(attention-to-residuals)等架构在流水线阶段中变得难以实现。

金句

  • "Breaking causality, and adding bias, seem to be key culprits." —— 破坏因果关系和引入偏差似乎是两个关键的罪魁祸首。
  • "Bias much worse than variance - variance can average out, but bias compounds." —— 偏差比方差糟糕得多——方差可以被平均化,但偏差会累积。
  • "This is the go to default. And you only move on from this when having too many GPUs forces you to move on." —— 这是默认的首选方案。只有当你因为GPU数量太多而被迫做出改变时,才会转向其他方案。

原文链接

查看完整访谈

完整内容见原文:Dwarkesh Podcast · 大模型预训练的失败模式与并行策略