低比特量化并非LLM高效万能药:腾讯揭示其在充分训练模型上的局限性

腾讯研究发现低比特量化在充分训练的大语言模型上效果下降,挑战了其作为LLM高效解决方案的普遍看法。

原文标题:低精度只适用于未充分训练的LLM?腾讯提出LLM量化的scaling laws

原文作者:机器之心

冷月清谈:

腾讯AI Lab的研究挑战了低比特量化是LLM高效解决方案的普遍观点。研究发现,低比特量化在未充分训练的LLM上表现良好,但在充分训练的LLM上,其性能下降显著。

研究人员通过对不同大小和训练程度的开源LLM进行量化实验,建立了一套低比特量化的比例定律(scaling laws)。该定律揭示了量化性能下降(QiD)与模型大小、训练数据量和量化精度之间的关系:模型越大,QiD越小;训练数据越多,QiD越大;量化精度越高,QiD越小。

研究人员认为,这种现象的原因在于未充分训练的LLM权重变化幅度较大,对权重变化的容忍度更高,而充分训练的LLM权重变化较小,对量化带来的权重变化更敏感。

此外,研究人员提出将QiD作为衡量LLM训练程度的指标。QiD越小,表明模型训练越不充分。他们还对原生低比特LLM进行了评估,发现其规律与低比特量化相似,但在充分训练后也会出现性能下降。

由于学术界算力限制,许多研究在未充分训练的LLM上进行实验并得出结论,但这可能不适用于充分训练的模型。研究人员呼吁社区重新审视这些结论。

怜星夜思:

1、文章提到低比特量化在未充分训练的模型上表现更好,那么如何定义“充分训练”?除了文章提到的QiD,还有哪些指标可以用来判断一个模型是否训练充分?
2、研究指出原生低比特LLM最终也会面临与低比特量化类似的问题,这是否意味着低比特模型的未来发展方向需要改变?
3、文章呼吁重新审视在未充分训练LLM上得出的结论,那么在实际应用中,如何平衡模型的训练程度和计算资源的限制?

原文内容

图片

AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected][email protected]


本文来自腾讯 AI Lab,介绍了一套针对于低比特量化的 scaling laws。



  • 论文标题:Low-Bit Quantization Favors Undertrained LLMs: Scaling Laws for Quantized LLMs with 100T Training Tokens
  • 论文链接:https://arxiv.org/abs/2411.17691


低比特量化(low-bit quantization)和低比特大语言模型(low-bit LLM)近期受到了广泛的关注,因为有一些研究发现,它们能够以更小的模型规模、更低的内存占用和更少的计算资源,取得与 fp16 或 bf16 精度相当的性能表现。这一发现让低比特语言模型一度被认为是实现模型高效化的一个非常有前景的方向。


然而,这一观点受到了腾讯 AI Lab 的挑战。他们的研究发现,低比特量化只有在未充分训练的 LLM(训练量通常在 1000 亿 tokens 以内,基本不会超过 5000 亿 tokens:这种 setting 在当前的学术界研究论文中非常常见)上才能取得与 fp16/bf16 相当的性能表现。随着训练的深入和模型逐渐被充分训练,低比特量化与 fp16/bf16 之间的性能差距会显著扩大。


为了更系统地研究这一现象,研究人员量化了超过 1500 个不同大小以及不同训练程度的开源 LLM 检查点。试图观察并建模量化所导致的性能退化(QiD,quantization-induced degradation,即量化后模型与原始 fp16/bf16 模型的性能差距,记作∆qLoss)


图片


最终推演出了一套针对于低比特量化的 scaling laws。通过这套 scaling laws,可以预测出当 7B, 70B 以及 405B 的模型在训练规模达到 100 万亿 tokens 时低比特量化时损失(如下图)。


 

根据研究人员的描述,这个工作最初是源于 2 个观察(如下图):a) model size 固定的情况下,training tokens 越多,QiD 就会变得越大;b) training token 数固定的情况下,model size 越小,QiD 就会变得越大。考虑到不管是减小 model size 还是增加 training tokens 都会有利于模型更充分的训练,因此研究人员推测在充分训练的模型上进行低比特量化会造成较为严重的 degradation,反之在未充分训练的模型上则不会有太多 degradation.


为了更好地验证这一推测,研究人员选择了 Pythia 系列开源语言模型进行实验,因为 Pythia 系列模型不仅公开了不同尺寸的 LLM,而且还开源了其中间训练过程的检查点。研究人员选取了 160M, 410M, 1B, 2.8B, 6.9B 以及 12B 这 6 种不同尺寸的 LLM。对于每种尺寸的 LLM,又选取了其训练过程中间 20 个检查点。对这 120 个检查点,研究人员用 GPTQ 对它们分别进行了 2-bit, 3-bit, 4-bit 量化,来观察在不同检查点上量化所导致的性能退化(即 QiD)。


通过分别对于 training tokens, model size 以及量化比特数分别的建模分析(分别建模的结果这里就不详述了,感兴趣的可以阅读论文),最终得到一个统一的 scaling laws:


图片


这里 N, D, P 分别表示模型参数量(除掉 embedding 部分),training tokens 数以及精度(比特数)。α, β 和 γ 分别表示它们对应的指数(α, β, γ 均为正数),k 为联合系数。根据这个 scaling law 的公式,我们不难得到当其它变量固定时:


  • N 越大(模型越大),QiD 越小,说明越大的模型,量化掉点越小;
  • D 越大(训练数据量越大),QiD 越大,说明训练越多的模型,量化掉点越多;
  • P 越大(精度越高),QiD 越小,说明量化的精度(比特数)越高,量化掉点越小。


研究人员根据上述函数形式拟合观测到的数据点,得到在 Pythia 系列 LLM 的低比特量化的 scaling law 公式:


图片

研究人员根据这个公式绘制出曲线,发现能够很好地拟合观测到的数据点:


 

另外,研究人员对不同测试数据,不同量化方法以及不同的基础模型都进行了评测,发现所得到的 scaling laws 的函数形式大概率是普适成立的:

 

 

如下图所示,我们现在知道了充分训练的 LLMs 会遭受更大的 QiD,而训练不足的 LLMs 则更容易实现近乎无损的低比特量化。那这个现象是怎么造成的呢?

研究人员从训练时权重变化幅度这一角度给出了一些见解:未经充分训练的 LLMs 往往会经历较大幅度的权重变化,在训练过程中的这种大起大落式的变化会让模型对 weight variation 变得更为鲁棒 —— 即便进行了低比特量化,量化所造成的偏离往往也要小于它在训练过程中经历的偏移;而充分训练的 LLM 在训练过程中的权重变化就会非常小了,往往在小数点后几位变化,这个时候模型如果遭度更大幅度的权重变化 (如低比特量化带来的权重变化),就非常容易造成严重的 degradation.


除此之外,研究人员还开创性地将 QiD 视为一个衡量 LLM 是否充分训练的指标。如果低比特量化的 QiD≈0,那说明这个 LLM 还远远没有充分训练,还没有将参数高精度的潜力发挥出来。那么根据前文所得到的 scaling laws,就可以推算出不同尺寸的 LLM 达到指定 QiD 所需要的 training tokens 数,如下表:


我们以 4-bit 量化造成 QiD=0.2 为例,7B 模型达到这个程度需要近 17.3 万亿 tokens,而 405b 模型则需要将近 50 万亿 tokens. 考虑到近 4 年模型的训练数据量增长了近 50 倍,可以预见未来模型的训练量会更大(例如,未来几年可能会达到 100 万亿 token)。随着模型训练变得更加充分,低比特量化在未来的应用前景则会变得并不明朗。


除此之外,研究人员也对于原生的(native)低比特 LLM(例如BitNet-b1.58)进行了评测,发现其规律与低比特量化近乎一致,但相比于量化,原生的低比特LLM可能会在更后期才会明显暴露这个问题——因为原生的低精度训练能够让模型一直保持在低精度权重下工作的能力。尽管有一些研究声称原生的低比特LLM可以媲美fp16/bf16精度下的表现,但这些研究普遍都是在未充分语言模型上得到的结果从而推出的结论,研究人员认为在充分训练的情况下进行比较的话,低比特LLM也将很难匹敌其在fp16/bf16精度下对应的模型。 


考虑到学术界算力的限制,在未充分训练的 LLM 上进行实验、评测,从而得到一些结论,并试图将这些结论推广为普遍适用,这一现象已经越来越普遍,这也引发了研究人员的担扰,因为在未充分训练的 LLM 上得到的结论并不一定能够普遍适用。研究人员也希望社区能重新审视那些在未充分训练的 LLM 上得到的结论,从而引出更深入的思考与讨论。


最后的最后,研究人员用了一组插画来形象地概括了一下他们的发现:


1. 如果把模型类比成水瓶,那水瓶里的装水量就可以反映模型的训练充分程度。小模型更容易被装满,大模型则需要更多的水才能装满。


2. 量化就相当于用手去挤压瓶身。对于装满水的瓶子,水会溢出(performance degradation);而没装满水的瓶子则不会有水溢出。


3.量化的精度可以类比成挤压瓶身的力量大小。越低比特的量化挤压得越狠,越容易造成大量的水被挤出(significant degradation)。



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:[email protected]


我觉得也不必太悲观。低比特模型的优势依然存在,也许未来可以通过一些优化手段,比如改进量化方法或者结合其他技术,来弥补性能下降的问题。

我觉得可以从泛化能力的角度来看。如果模型在训练集上表现很好,但在未见过的测试集上表现很差,那说明可能过拟合了,也算不上充分训练。所以除了文中提到的,还可以关注模型在不同数据集上的表现。

我想到一个思路:可以先用低精度训练,然后在接近收敛时再切换到高精度进行微调。这样既可以节省资源,又可以提高最终性能。不知道这个想法是否可行,欢迎大家讨论。

未来也许可以考虑混合精度训练,在模型的不同部分使用不同的精度,这样既能保证性能,又能提高效率。当然,这需要更精细的控制和设计。

我觉得还可以考虑使用一些模型压缩技术,比如知识蒸馏,用一个大的、充分训练的模型来指导一个小模型的训练,这样小模型也能获得不错的性能,同时节省计算资源。

我觉得这篇文章指出了一个很有价值的研究方向。虽然低比特模型在效率上有优势,但如果在充分训练后性能下降明显,那确实需要重新思考发展方向。或许可以探索更高效的训练方法,或者改进模型架构,以降低对精度的依赖。

是不是还可以考虑训练时间?理论上训练时间越长,模型学习的数据越多,就越“充分”。当然,这也要结合学习率、batch size等超参数来看,并不是简单地时间越长越好。

关于“充分训练”的定义,确实挺有意思。除了QiD,我觉得还可以看loss曲线是否平滑,以及在验证集上的性能是否饱和。一个充分训练的模型,loss应该不再剧烈波动,并且在验证集上的提升空间很小。

关于“如何平衡模型的训练程度和计算资源限制”这个问题,我觉得要根据实际情况来权衡。如果资源充足,当然可以尽可能地充分训练模型。但如果资源有限,那就需要根据任务需求来选择合适的训练程度,比如可以先用小规模数据快速训练一个模型,然后根据效果逐步增加数据量和训练时间。