附录 B 低精度训练消融实验

本文为论文《DeepSeek-V3:强大高效的开源混合专家大模型》「中文全文翻译」板块的对应章节,与「论文原文」板块同一章节一一对应,层级保持一致。

图

图 10:BF16 与 FP8 训练之间的损失曲线比较。结果通过系数为 0.9 的指数移动平均(EMA)进行平滑处理。

B.1 FP8 与 BF16 训练对比

我们在两个不同规模的基线模型之上,通过与 BF16 训练进行比较来验证我们的 FP8 混合精度框架。在小规模下,我们训练了一个总参数约为 16B 的基线 MoE 模型,训练 1.33T 词元。在大规模下,我们训练了一个总参数约为 230B 的基线 MoE 模型,训练约 0.9T 词元。我们在图 10 中展示了训练曲线,并证明在我们的高精度累加和细粒度量化策略下,相对误差保持在 0.25% 以下。

B.2 关于块级量化的讨论

尽管我们的分块细粒度量化有效地缓解了由特征离群点引入的误差,但它需要对激活量化采用不同的分组,即前向传播中为 1x128,后向传播中为 128x1。激活梯度也需要类似的过程。一个直接的策略是像我们对模型权重量化那样,按每 128x128 个元素进行块级量化。这样,后向传播只需转置。因此,我们进行了一项实验,将 Dgrad 相关的所有张量按块级进行量化。结果显示,以链式方式计算激活梯度并反向传播到浅层的 Dgrad 操作对精度高度敏感。具体而言,对激活梯度进行块级量化会导致一个总参数约为 16B 的 MoE 模型(训练约 300B 词元)出现模型发散。我们假设这种敏感性源于激活梯度在词元之间高度不平衡,从而产生了与词元相关的离群点(Xi et al., 2023)。这些离群点无法通过块级量化方法得到有效管理。