Memory load amplifies quantization noise in transformers
本文表明,随着 Transformer 接近其记忆容量,权重量化导致的性能退化会被放大,因为存储事实的余量收缩与主要由网络下游层增益驱动的量化噪声增加相重合。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
现代人工智能系统,通常被称为语言模型,是通过阅读海量文本来学习单词如何组合在一起进行训练的。它们消耗的数据越多,通常在理解和生成人类语言方面就表现得越好。为了让这些庞大的系统能够投入日常使用,工程师们经常通过将内部数值舍入到更少的位数来进行压缩,这一过程被称为量化。这减少了运行模型所需的内存,使其能够适配更小的设备。然而,一个令人困惑的模式出现了:在更多数据上训练的模型,在压缩后往往比训练数据较少的模型崩溃得更严重。学习更多内容反而会让系统变得更加脆弱,这似乎是违反直觉的,但事实确实如此。这种脆弱性的原因此前一直是一个谜。
一位研究人员通过研究一个旨在记忆事实的简化版语言模型,揭示了这种脆弱性背后的隐藏机制。他们创建了一个数字实验,让计算机模型学习虚构人物的传记,存储诸如出生日期、城市和雇主等细节。由于这些合成传记中的信息是受到完美控制的,研究人员可以精确测量模型相对于其规模所存储的数据量。随后,他们测试了在将内部数值舍入到不同精度水平后,模型对这些事实的记忆能力如何。他们的工作揭示了,一个充满了信息的模型会遭受“双重惩罚”。首先,随着模型填充越来越多的事实,每个记忆的安全余量(safety margin)都在缩小,留给误差的空间也随之减少。但研究人员发现了第二个更令人惊讶的影响:训练后的网络本身学会了放大舍入引入的微小误差。这种放大效应并非压缩方法本身的缺陷,而是网络在学习之后自身结构的一种属性。
为了理解这一点,可以将模型想象成信息必须经过的一系列层。当研究人员进行数值舍入时,他们将产生的误差视为随机噪声。他们追踪了这种噪声如何在网络中传播并最终影响答案。他们发现,网络就像一个放大镜,会放大这些误差。随着模型学习更多事实,它会调整其内部连接的方式,使得最终输出对权重中的微小扰动变得更加敏感。在实验中,随着存储信息量的增加,由舍入引起的噪声增长了两倍半。这种增长并非因为舍入网格本身变得更粗糙,而是因为网络的下游层放大了这种扰动。研究人员计算出,这种放大效应大约解释了随着模型负载增加,为了保持模型正常运转而额外需要的精度之半。
研究还表明,这种放大效应在整个系统中并不是均匀分布的。研究人员逐层分解了噪声的贡献,发现负责准备输出答案的网络最后一层,承担了相当大比例的放大作用。然而,随着模型负载的增加,中间层也发挥着越来越重要的作用。通过将缩小的安全余量与不断增长的误差放大效应相结合,研究人员可以准确预测模型在压缩后会丢失多少事实。他们的数学描述仅依赖于全精度权重和网络的几何结构,成功预测了丢失事实的分数,而无需重新训练模型或对其压缩版本进行测试。
这一发现挑战了普遍的假设,即压缩问题仅仅在于所用数值的精度问题。虽然目前的方法侧重于改进舍入过程以处理离群值或特定的权重组,但这项研究表明,很大一部分问题本身就植根于训练过程之中。网络学习读取自身知识的方式,是对扰动高度敏感的。作者指出,他们的结论是基于一个特定的、训练于任意关联的小型模型,并呼吁进行进一步测试,以观察这种放大效应是否也适用于当今使用的庞大的现实世界模型。如果确实如此,那么网络的“增益”(gain)——即它放大误差的程度——可能会成为一种新的诊断工具。工程师们或许可以观察一个全精度模型,从而预测它在开始遗忘所学知识之前,究竟能承受多少精度的损失,从而为构建高效且鲁棒的人工智能提供一条更清晰的路径。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。