导语
训练大型语言模型是一项极其精密且充满挑战的操作。Dwarkesh Patel分享了与业内人士的交流,揭示了预训练为何频繁失败的深层原因,并借助Horace He的讲座,系统梳理了应对超大模型计算的并行策略演进。失败往往源于看似微小的工程选择,而解决方案则是在计算效率、通信开销与架构灵活性之间进行艰难的权衡。
本文基于Dwarkesh Patel的博客文章,探讨了大模型预训练失败的两大核心原因(打破因果律与引入偏差)及并行计算策略。文章分析了专家选择路由、FP16数值精度问题等具体故障案例,并详细解析了从数据并行到FSDP再到流水线并行的演进逻辑与权衡。
训练大型语言模型是一项极其精密且充满挑战的操作。Dwarkesh Patel分享了与业内人士的交流,揭示了预训练为何频繁失败的深层原因,并借助Horace He的讲座,系统梳理了应对超大模型计算的并行策略演进。失败往往源于看似微小的工程选择,而解决方案则是在计算效率、通信开销与架构灵活性之间进行艰难的权衡。
展开「深读」看每一段讨论的问题与论据。
讨论的问题:为什么预训练运行经常失败?
论据 / 案例:传闻称,专家选择(expert choice)模式破坏因果性解释了Llama 4表现不佳的原因。标记丢弃(token dropping)是Gemini 2 Pro的一个问题。
讨论的问题:为什么偏差是训练中的严重问题?
论据 / 案例:原始GPT-4训练使用FP16进行集合通信(如all-reduce),在数字较大时(如1024)会因尾数位(mantissa bits)的间隔问题导致计算值与实际值相差10倍。
讨论的问题:这些失败案例对AI训练的未来意味着什么?
论据 / 案例:英伟达(Nvidia)花了很长时间为其Blackwell架构优化内核,这表明该问题难度很高,不容易通过闭环解决。强化学习推理中存在数值漂移(numerical drift)。
讨论的问题:如何将预训练任务分配到多个GPU上?
论据 / 案例:FSDP的通信量计算:全收集(all-gather)的通信量是全归约(all-reduce)的一半。优化后的FSDP总通信量约为参数数量的3倍。
讨论的问题:为什么不能总是只使用FSDP?
论据 / 案例:计算时间随GPU数量增加而减少,通信时间则不随域(domain)数量增加而增加。批大小为1000万token,序列长度为1万时,只有1000个序列,因此FSDP无法扩展到超过1000个GPU。
讨论的问题:流水线并行有什么问题?
论据 / 案例:流水线气泡是指批次开始时,负责最终层的GPU未被使用;批次结束时,负责初始层的GPU未被使用。Kimi的注意力-残差(attention-to-residuals)等架构在流水线阶段中变得难以实现。