大模型承重墙,去掉了就开始摆烂!苹果给出了超级权重

简介: 近期,苹果公司与圣母大学的研究人员发现大型语言模型(LLM)中存在“超级权重”参数,尽管仅占模型参数的0.01%,却对模型性能有极大影响。去除一个超级权重可使困惑度增加三个数量级,零样本准确性大幅下降。研究提出一种数据无关方法识别这些权重,并通过保留超级权重和超级激活,显著提升模型压缩效果,在量化后保持较高性能。该发现对资源受限环境下的LLM部署有重要意义。论文链接:https://arxiv.org/pdf/2411.07191。

在大型语言模型(LLM)的浩瀚参数海洋中,一个微小但至关重要的发现正引起广泛关注。近期,来自苹果公司的研究人员与圣母大学的合作者共同揭示了一个令人惊讶的现象:在LLM中,存在一些被称为“超级权重”的参数,它们对模型的质量有着极其不成比例的影响。

想象一下,一个拥有数十亿参数的LLM,其性能竟然取决于一个或几个微小的权重参数。这些超级权重,尽管只占模型参数的极小部分(如0.01%),却在决定模型的文本生成能力和零样本任务准确性方面发挥着关键作用。

研究人员发现,在LLM中,仅仅去除一个超级权重就可能导致模型的困惑度增加三个数量级,零样本准确性下降到随机猜测的水平。这一发现令人震惊,因为它揭示了模型性能的脆弱性,以及少数关键参数的极端重要性。

为了识别这些超级权重,研究人员提出了一种数据无关的方法,仅通过一次模型的前向传递即可完成。他们发现,这些超级权重在不同的模型家族和大小中表现出相似的行为,通常位于模型的早期层。

超级权重的作用机制也逐渐清晰。它们通过放大输入激活中的普通值来产生所谓的“超级激活”,这是一些在模型中持续存在、具有固定位置和恒定幅度的异常大激活。这些超级激活被证明对模型的质量至关重要,因为它们通过跳过连接在整个模型中传播,并最终影响输出的概率分布。

超级权重的发现对模型压缩领域具有重要意义。在权重量化过程中,通过保留超级权重并剪裁其他权重异常值,研究人员能够将简单的四舍五入量化扩展到比以前更大的块大小,从而在保持较高质量的同时减少模型的内存占用。

对于激活量化,通过在量化和反量化过程中保留超级激活,研究人员能够显著提高模型的压缩效果。他们的方法在没有校准数据的情况下,能够与使用校准数据的先进方法相媲美,为模型压缩提供了一种高效且数据无关的替代方案。

为了验证他们的发现,研究人员在多个LLM上进行了广泛的实验,包括LLaMA、Mistral和OLMo等。他们评估了模型在多个零样本基准上的性能,并计算了模型在Wikitext-2和C4等数据集上的困惑度。

实验结果表明,通过保留超级权重和超级激活,模型在量化后能够保持较高的性能。特别是,对于权重量化,他们的方法能够支持更大的块大小,从而减少模型的内存占用和文件大小。对于激活量化,他们的方法在多个模型和数据集上都表现出了显著的性能提升。

这些发现对实际应用具有重要意义,特别是在资源受限的环境(如移动设备和边缘计算)中部署LLM时。通过理解和利用超级权重和超级激活,研究人员能够开发出更高效、更紧凑的模型,从而推动LLM在各个领域的广泛应用。

尽管超级权重的发现为LLM的研究和应用带来了新的视角,但仍有许多问题有待解决。例如,超级权重的数量和位置是否与模型的训练数据和任务有关?如何在不影响模型性能的情况下对超级权重进行有效的正则化或优化?

此外,尽管研究人员已经提供了一些常见LLM的超级权重索引,但这些索引是否适用于所有模型和任务仍需进一步研究。未来的工作可能需要开发更通用的方法来识别和利用超级权重,以推动LLM研究和应用的进一步发展。

论文链接:https://arxiv.org/pdf/2411.07191

目录
相关文章
|
10月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
7月前
|
缓存 人工智能
苹果让大模型学会偷懒:更快吐出第一个token,准确度还保住了
【8月更文挑战第25天】苹果公司在AI领域取得重要进展,推出了一种名为LazyLLM的新方法,该方法专注于提升大型语言模型(LLM)在处理长文本时的推理效率。LazyLLM采用动态token修剪技术,能够在处理过程中灵活选择关键的上下文信息进行计算,避免了不必要的计算开销。这种方法不仅能显著加快LLM的响应速度,还能保持甚至提升模型准确度。多项实验验证了其在不同任务上的有效性和实用性。尽管如此,LazyLLM仍面临模型复杂度、适用范围等方面的挑战。论文已发布于[这里](https://arxiv.org/abs/2407.14057)。
114 3
|
10月前
|
算法 Go 区块链
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
102 0
|
算法
代码随想录算法训练营第二十七天 | LeetCode 93. 复原 IP 地址、78. 子集、90. 子集 II
代码随想录算法训练营第二十七天 | LeetCode 93. 复原 IP 地址、78. 子集、90. 子集 II
74 0
|
机器学习/深度学习 存储 算法
KNN算法数字识别完整代码——打开就可以跑
KNN算法数字识别完整代码——打开就可以跑
|
机器学习/深度学习 测试技术 异构计算
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Desenet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
|
机器学习/深度学习 数据挖掘 PyTorch
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕VGG卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
|
机器学习/深度学习 算法 测试技术
手撕Resnet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Resnet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
手撕Resnet卷积神经网络-pytorch-详细注释版(可以直接替换自己数据集)-直接放置自己的数据集就能直接跑。跑的代码有问题的可以在评论区指出,看到了会回复。训练代码和预测代码均有。
|
人工智能 自然语言处理
Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学
Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学