AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
大模型低精度训练和推理是大模型领域中的重要研究方向,旨在通过降低模型精度来减少计算和存储成本,同时保持模型的性能。因为在大模型研发成本降低上的巨大价值而受到行业广泛关注 。近期,业界对低精度训练和推理的广泛关注与讨论。在实际的研发过程中,特别是模型训练方面,经验表明浮点数量化方案相比整数量化方案对模型效果造成的损失更小,所以浮点数常常被用作量化训练的类型。这就引出了一些问题:整数类型量化训练的经验能否直接应用到浮点数类型的量化训练任务中?如果不能,浮点数类型又会有怎样的结论?量化训练到底有没有极限?
大模型社区亟需一个更加适合实际浮点数量化训练的 Scaling Laws,指导大模型量化的实际选择和未来探索方向。为了回答这些问题,腾讯混元团队进行了 366 组不同参数规模和精度的浮点数量化训练,对浮点数量化训练进行详细分析后提出了浮点数量化的 Scaling Laws。
- 论文标题:《Scaling Laws for Floating–Point Quantization Training》
- 论文链接:https://huggingface.co/papers/2501.02423
引言
大模型(Large Language Model, LLM)如今已经融入到我们生产生活的各个层面。大模型的参数规模不断增大,调用量也持续升高,这使得大模型的训练和推理成本成为 LLM 社区极为关注的重要问题。低比特量化技术能够在一定程度上降低大模型训练和推理的成本。鉴于此,这一技术在主流大模型的训练和推理过程中得到了广泛应用。前沿研究工作对 8 比特、4 比特甚至更低比特的量化策略进行了尝试,并对这些策略予以验证。
近期,论文《Scaling Laws for Precision》深入探讨了整数类型量化策略下的精度对模型 loss 的影响,不过仅在附录中简略提及了浮点数类型量化策略的表现,并未深入探究。然而,在实际的生产过程中,特别是模型训练方面,经验表明浮点数量化(floating–point quantization)方案相比整数量化方案对模型效果造成的损失更小,所以浮点数更常被用于超低精度量化训练。
腾讯混元团队的新工作《Scaling Laws for Floating–Point Quantization Training》系统全面地研究了浮点数量化训练的 Scaling Laws,填补了这一领域的空白。具体地,他们在大模型 Scaling Law 的经典要素:模型大小(简称 N)和训练数据量(简称 D)之外,联合考虑浮点数量化训练中重要的量化目标,指数位(Exponent,简称 E),尾数位(Mantissa,简称 M),以及量化时放缩因子共享粒度(Block-size,简称 B)对于大模型训练损失的影响。他们进行了 366 组不同参数规模和精度设置的浮点数量化训练,得出最终的浮点数量化的统一 Scaling Law 形式如下:
并且依据这一 Scaling Law 深入分析与推导之后,能够得出如下一些重要结论:
- 在任意低精度大模型浮点数量化训练中,都存在一个模型极限效果及对应的最佳数据量。超过此最佳数据量时继续增加数据,反而会对模型效果产生负面影响;
- 限定计算资源下,在一个非常大的算力范围内,理论预测的最佳性价比的浮点数量化训练精度落在 4-8 比特之间;
- 在实际工作中,借助我们的 Scaling Laws 及其推论,同时结合计算资源,可以明确得出不同计算资源下具有最佳性价比的浮点数量化训练精度设置、模型参数量以及训练数据量的配置策略。
最佳的浮点数
与整数类型只有符号位(Signal,简称 S)和整数位相比,参考 IEEE 754 标准,浮点数显得复杂许多。它由符号位、指数位(Exponent,简称 E)和尾数位(Mantissa,简称 M)共同作用决定最终取值。
通过大量实验与理论分析,腾讯混元团队推导出了指数位和尾数位对最终模型效果之间的定量关系:
同时还得出给定精度(Precision,简称 P)P=1+E+M 情况下,指数位与尾数位的最佳配比规律需满足:
未来硬件制造商也可以参考此结论,提供在不同精度下的浮点运算能力支持:
精细量化
量化过程中,为了减少精度损失会对需量化 Tensor 进行放缩(Scaling)。同时,为节省放缩因子(Scaling Factor)的存储空间,通常会让 Tensor 中的若干元素共享一个放缩因子。显然,放缩因子共享粒度越大,其存储空间越小,但由此带来的量化损失也会越大。混元团队定量地研究了放缩因子共享粒度(Block-size,简称 B)对模型效果的影响,发现训练时的验证损失(Validate Loss)与 B 的对数成正比例关系:。
Scaling Law
在综合了所有浮点数量化训练中影响模型效果的因素(如参数量 N,数据量 D,指数位 E,尾数位 M 和量化粒度 B)后,混元团队最终得出了浮点数量化训练的 Scaling Law:
前三项基于经典的 Chinchilla Scaling Law 的形式,第四项可以看做浮点数量化对于模型的额外损失。有意思的是,可以被看作某种形式的 “知识密度”,而 E, M 和 B 的联合项可以被看作某种形式的精度表示。直观地分析,大模型过低精度下无法承载过高的知识密度,导致了额外损失。另外值得注意的是,我们 Scaling Law 中 N 和 D 的指数参数 α 和 β,在第一项 / 第二项 / 第四项都是完全相同的,形式更加统一。
为了判断最终统一形式的泛化能力,腾讯混元团队在小模型(41M - 679M)上拟合估算出 n, d, α, β, γ, δ, ν 以及 ϵ 等参数的取值后:
在更大的模型(1.2B)上也验证了不同量化配置下的预测效果。
无法跨越的效果屏障
在上面 Scaling Law 公式里,第二项和第四项关于数据量(D)的部分构成一个有最值的函数,即存在一个关于 D 的 loss 最低点,这个最值点在:
注意此时这里并没有给 Scaling Law 添加任何限制条件,这意味着当训练某个模型时,每个精度都存在一个对应的极限效果,无论使用多少数据都无法超越。并且当使用的数据量超过 Dcrit 时,继续增加数据反而对模型效果是有害的。
从公式中,我们发现,模型越小,精度越低,那么这个极限数据量就会越早到来,增加数据导致模型效果变差越明显。因此,越小的模型越需要越大的精度才能保证给定数据的有效训练。
这一随着训练进行损失不降反升的现象,也得到了混元团队的真实训练结果支持。但是,经过计算当采用 BF16 训练 1B 参数量模型时,会发现这一极限数据量高达 1730T,这可能也是之前没有人发现这一现象的原因。然而,随着精度降低,比如采用 FP8-E4M3 时这一数值降低至 27T,而使用 FP4-E2M1 时则只有 0.4T。
限定资源下的最优解
于是可以得知,即使在无限资源下,由于效果屏障存在的原因,训练模型时使用的数据量也不应该超过 Dcrit。那么在限定资源下,通过求解方程组:
可以得出一个符合经典幂律关系(Power-law)的最佳性价比精度配方:
根据实验结果推算,在一个非常大的算力范围内,理论预测的最佳性价比落在 4-8 比特之间。
精度与参数量的汇率
在资源受限的情况下,尽管我们已知在最佳性价比时精度应如何选取,然而参数量 N 与数据量 D 究竟该如何搭配这一问题依旧尚未得到解决。通过对方程组:
进行求解能够发现,在限定资源的情况下,若要保持性价比,精度 P 和参数量 N 之间存在着一个类似于 “汇率” 的关系:
所以,在实际工作当中,可以借助 “精度 —— 参数量的汇率”,并且结合,进一步明确在最佳性价比下的精度 P、参数量 N 以及数据量 D 的配置策略。
这项研究为大模型训练中的浮点数量化提供了重要的理论指导。其价值不仅在于明确了在给定资源和精度下的最优参数配置策略,帮助提高训练效率和降低成本,而且对于推动大模型在实际应用中的更广泛部署具有关键意义。通过揭示浮点数量化训练的极限和规律,为硬件制造商优化浮点运算能力提供了依据,也为研究人员在大模型的优化和创新方面开辟了新的思路和方向。