声明:本文来自于微信公众号 新智元,作者:新智元,授权Soraor转载发布。

就连「量化」也不管用,scalinglaw真的要终结了吗?

一提scaling law,人们重点关注的是参数规模、数据量等因素,却忽视了「精度」这一关键变量。

哈佛斯坦福MIT等机构研究人员竟发现,低精度训练会降低模型的「有效参数量」!

对此,他们提出了「精度感知(precision-aware)」scaling law。

image

论文地址:https://arxiv.org/pdf/2411.04330

对于推理过程来说,训练数据越多,量化带来的性能损失越大。

就训练来说,「精度感知」scaling law能够预测不同部分采用不同精度的模型的损失。在某些情况下,用低精度训练LLM可能更有效率。

论文中,作者统一了训练后和预训练量化的scaling law,建立了一个完整的理论框架。

这个单一函数形式可以预测在不同精度下进行训练和推理时的性能降级。

基于465次以上的预训练实验,在最大1.7B参数,训练数据量达到26B token的模型上验证了最新的预测。

艾伦研究所科学家Tim Dettmers对此评价道,这是很长时间以来,最重要的一篇论文。它以强有力的证据表明我们正在接近「量化」的极限。

「论文直接指出:训练所需的token越多,所需的精度就越高,这对整个领域和GPU的未来都有广泛的影响」。

就连AI大牛Karpathy也转发了这个帖子。

image

图中可以看到,对于20Btoken训练,8B模型在16位精度下更有效,70B模型,8位仍然可行,但效率已经开始降低。注:8B模型(圆形)、70B模型(三角形)、405B模型(星形)

OpenAI研究员Clive Chan表示,拥抱scaling law,看看最先进的量化方案(mxfp,Pw≠Pkv≠Pa等)如何推进前沿将会很有趣。另外,我个人认为,值得花费一半的计算预算来进行一次大规模运行,以验证这个拟合是否适用于大模型。

image

可以说,AI领域的大多数进展,都来自计算能力的提升,这主要依赖于低精度加速(从32位到16位再到8位)。

但这种趋势现在正接近尾声。

加上物理限制,这造就了scale终结的「完美风暴」。

LLM正接近「量化」scale极限

毋庸置疑,scale早已成为业界公认的深度学习核心驱动力。

2020年OpenAI团队,以及2022年DeepMind团队在scaling law的论文中,研究了模型/数据集大小之间的权衡,以平衡性能和计算。

image

然而,模型训练和推理时使用的精度,是影响成本和性能的重要「第三因素」。

深度学习正在向低精度发展:当前的前沿模型(如Llama-3)使用BF16训练,并且普遍努力将预训练范式转向FP8。

下一代硬件将支持FP4,而仅权重量化的进展已导致大规模二进制和三进制训练。

这些范式能走多远?

具体来说,论文作者提出了以下问题:

精度、参数、数据三者之间如何权衡?

它们在预训练和推理阶段各有什么区别?

image

其实,研究精度scaling具有挑战性,因为scaling law的研究通常旨在放弃细节性的实现细节,追求普遍的函数形式,而量化研究通常相反,专注于细节:如何进行量化,使用什么类型,应用于模型的哪些部分。

为了实现这一点,研究人员考虑了各种合理的函数形式,并选择了一个将量化实施细节与损失scaling「分离」的形式,由此能够在许多实际情况下预测损失scaling。

总的来说,作者研究了在训练期间和之后,随着数据和参数的变化,精度对损失的影响如何扩展。

image

研究发现了,在后训练量化的影响:量化导致的性能降级,随数据量增加而增加。对于固定模型,超过某个点后继续训练可能有害,这种影响在模型后期量化时特别明显。

针对预训练精度的最优选择,计算最优的预训练精度,通常独立于计算预算,但当模型大小受限时,这种独立性不再成立。在这种情况下,最优精度随计算量缓慢增长。

对于N个参数的语言模型,在D个token上进行训练,训练精度为Ptrain ,训练后权重精度为 Ppost ,最终研究人员找到了一个统一的scaling law:

image

其中,A、B、E、α、β是正拟合常数,δ_PTQ是指推理前训练后量化引起的损失退化

Tim Dettmers在长文中表示,英伟达Blackwell将通过硬件层面实现的块级量化来提供出色的8位计算能力。这将使8位训练变得像从FP16切换到BF16一样简单。

然而,从这篇论文可以看出,未来还需要超过8位的精度来训练许多模型。

相较于其他模型,运行Llama405B进行推理是一个巨大的挑战。但论文表明,中等参数规模模型(如70B)也难以在低精度下高效训练。

从Dettmers的个人经验(很多失败的研究)来看,你无法欺骗效率。

如果量化失败,那么稀疏化也会失败,其他效率提升机制也是如此。如果这是真的,我们现在已接近最优解。在这种情况下,他只看到三条前进的道路...

(1) scaling数据中心:这还能继续scaling约2年。

(2) 动态scaling:转向更小的专业化模型或更大/更小的模型。

(3) 知识蒸馏:蒸馏的行为与其他技术不同,可能具有不同的特性。

所有这些意味着范式将很快从「scaling」转向「如何利用现有资源」。Dettmers认为「如何帮助人们通过AI提高生产力」这种思维方式是最好的前进方向。这种思维方式更关注流程和人,而不是技术本身。

image

训练后量化Scaling Law

最简单,也是最常见的量化技术就是将现成的模型进行训练后量化处理(post-train quantize)。

研究人员首先使用BF16格式训练的模型,并采用GPTQ技术来进行训练后的量化处理,结果发现训练后的量化在数据扩展性方面表现不佳。

image

模型在训练后量化以及与训练结束时相比,出现了性能退化。

可以发现,随着训练数据量的增加,所有尺寸模型的性能退化δPTQ都在增加;但对于固定的数据集,更大尺寸的模型性能退化更小。

image

上述公式中,CT、γD、γN、γpost是正的拟合常数;当token与参数的比例D/N足够大,或者量化后的精度Ppost足够低时,模型在预训练时间延长后,量化带来的损失可能会增加,

还可以观察到,当降低量化精度时,δPTQ呈指数增长。

从直觉上来说,如果在更多数据上训练,模型会将更多信息压缩到权重中,即量化权重的扰动对损失的影响更大。

发现1:如果想将模型进行训练后量化,存在某一个预训练数据量,如果超过这个值,再添加额外的数据会对推理时的性能产生负面影响。

量化训练Scaling Law

研究人员探索了如何在训练阶段调整模型处理数据的精度,包括模型的权重、激活值和KV缓存,测试了3位到12位的不同精度设置,并与BF16高精度基准进行比较。

量化训练

研究人员在保持激活值(Pa)和KV缓存(Pkv)的精度固定在较高水平的情况下,考察了权重精度(Pw)与参数量(N)之间的权衡,其中设定D =13B个token,并在N和Pw的不同组合上进行了网格扫描。

等损失轮廓图显示,一个「参数量较少但权重精度较高」的模型可以达到与「参数量较多但权重精度较低」的模型相同的损失。

image

此外,提高权重的位精度在低位精度时收益较大,但在较高精度时(每个权重6-7位)会趋于饱和。

根据经验趋势,研究人员总结了权重精度和参数之间的最佳权衡模型:

image

其中γw是一个拟合常数,用于衡量模型权重的敏感度;A、B、E、α、β是Chinchilla规模法则中的拟合正数常数。

image

低精度训练

研究人员想要测试,在低精度训练中,对模型的权重、激活值和注意力进行量化的影响是否相互叠加,即不同组件的量化效果可能会相互作用,产生更复杂的影响。

通过对比「边际拟合常数」模型和「联合拟合常数」模型的预测能力,来测试这种独立性是否大致成立。

image

结果显示,这两种拟合常数的方法具有大致相同的预测能力,即独立性假设是合理的。

发现2:在训练期间对权重、激活值和KV缓存进行量化的效果,可以被建模为独立且相乘的,因此损失函数可以表示为:

image

image

研究人员对常数γw、γa、γkv进行拟合,如果三个精度都设置为相同的值P,与预训练相同,可以简化为下式子,其中γ̄是三个参数的平均值。

image

对预训练的影响

当模型以精度P进行训练时,意味着权重、激活值和KV缓存的精度都等于P,即 Pw = Pa = Pkv = P,计算成本与P成正比;

研究人员在16位精度下进行了实验,并使用成本模型C =6ND FLOPs,考虑到计算与精度之间的线性关系,将模型进一步推广泛化:当P =16时,简化为Chinchilla成本函数。

image

image

可以注意到,无论实验的规模如何,函数形式的含义都是正确的,但预测的数值取决于拟合的常数,其中常数通常是基于小规模、整型实验拟合的。

1、如果必须在低精度下训练,先增加参数量再增加数据

image

在低精度训练时,有效的参数量会大大减少,因此增加参数量可以更有效地利用有限的计算资源,因为数据量相对于有效参数来说已经过剩了。

2、计算最优的预训练精度通常与计算预算无关

image

在没有对参数N、数据D和精度P的限制,只有固定计算预算的情况下进行预训练,研究人员的目标是联合最小化损失函数L(N, D, P),其中C与NDP成正比,并最终得到了一个关于最优精度P*(C)的隐式方程。

image

image

结果发现,当在整数类型的量化运行中拟合扩展法则时,P*大约是7位,也意味着在BF16中训练模型的实际操作可能是次优的,并且向低精度训练的竞争需要在低于4位之前停止,可能会迫使模型尺寸不成比例地(超过4倍)增大,从而保持住损失。

3、如果模型尺寸受限,计算最优的预训练精度可以增加

研究人员在探讨如何在有限的计算资源下,针对不同大小的智能体进行训练时,并发现了一个有趣的现象:

不同尺寸的模型并不一定需要在相同的数值精度下训练,实际上,最优的数值精度会随着计算资源的增加而增加,而且这种增加与计算资源的对数成正比。

也就意味着,如果保持模型尺寸不变,只调整数据量和数值精度,那么可以根据数据量和智能体大小的比例来调整最优的数值精度,能够更有效地利用有限的计算资源,通过减少数据量与有效参数数量的比例,使智能体的训练效果更接近理想的状态。

发现3:当N(模型大小)、D(数据量)和P(精度)一起优化时,计算最优的预训练精度与计算资源无关。16位精度包含了许多不必要的位,而4位精度则需要不成比例地增加模型尺寸以保持损失值。

拟合结果表明,7到8位是计算最优的精度。相比之下,当N预先固定,例如在相似数据上训练一系列模型时,P*(C)与C的对数成正比,也表明,对于被显著过训的模型,训练时使用更高的精度可能是计算上最优的选择。

统一精度Scaling Law

研究人员将之前提出的两个扩展法则合并成统一的函数形式,可以预测训练和训练后量化的影响,包括两者之间的相互作用。

研究人员发现,在预测δPTQ时有两种竞争效应,但总体而言,以较低精度训练的模型对训练后量化更为健壮,即遭受的退化较小。

直观上,以低精度训练Pw、Pa或Pkv会迫使模型学习对「量化噪声」有鲁棒性的权重,因此在PTQ下的退化较小。

然而,以低精度训练的模型的有效参数数量Neff减少,导致token量与参数量的比值增加,会导致退化更多,也可以称之为「过训效应」。

修改δPTQ以考虑训练精度

image

假设训练精度严格大于推理精度,如果相等则退化为零,研究人员先探索了仅在训练期间以权重精度Pw变化时的退化表现。

可以观察到,如果训练和推理时精度之间有差距,退化会非常迅速地增加到指数大值,可以将拟合的初始函数形式修改为:

image

并可以扩展到包含注意力机制的精度效应:

image

可解释的统一函数形式

研究人员考虑仅以低精度训练权重,并将Cw =1作为示例,以便简化上式,可以反映出由于低精度训练权重而降低的有效参数量:

image

该公式能够清晰地反映了模型对PTQ噪声的鲁棒化程度,与在类似噪声下的训练程度相匹配。

发现4(统一扩展法则):将预训练期间的低精度效应建模为独立且相乘的噪声累积,并包括训练后量化退化,可以预测具有N个参数的语言模型,在D个token上训练,以训练精度Pw、Pa、Pkv,最终达到权重精度Ppost时的损失为:

image

局限性

论文作者指出,当前研究还存在几个限制:

image

在实验过程中,使用了固定的模型架构和设置,但在实践中,经常会专门进行架构调整以适应低精度训练。

此外,作者还在相对较小的语言模型(最大约250M参数)上拟合了scaling law,未能覆盖超大规模模型情况。

下一步,研究人员将在更大规模模型上继续研究这一效果。

本篇论文核心贡献作者是Tanishq Kumar和Zachary Ankner。

Tanishq是哈佛大学数学专业的大四学生,研究机器学习理论和计算神经科学。他最感兴趣的是将理论工具应用于深度学习中鲜为人知的经验主义谜题。

Zachary Ankner是麻省理工学院的三年级本科生,目前学习计算机科学和数学。他的研究旨在通过对简单建模变化的深入实证调查来改进LLM。