LegoLM: Structured Weight Sharing for Large Language Models
LegoLM 是一种结构化权重共享框架,它通过标量块编码、百分位数选择性替换和边界层保护等无数据适配技术,克服了全局权重共享中存在的分布不匹配和离群值主导失效问题,在实现大型语言模型近无损压缩的同时,显著优于现有的 PTQ-8bit 方法。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图将一座宏大、复杂的知识图书馆塞进一个极小的背包里。这就是“大语言模型”(LLMs)每天面临的挣扎——这些能够写故事、解数学题并与我们聊天的超级聪明计算机大脑。这些大脑是由数十亿个被称为“权重”(weights)的小数字构成的,它们就像人类大脑中的突触一样,将各种想法连接在一起。为了让这些模型能在普通的笔记本电脑或手机上运行,科学家们需要缩小它们的体积,同时又不丢失它们的智慧。一种流行的缩小方法是“权重共享”(weight sharing)。把它想象成一群朋友都同意从目录中挑选一件完全相同的衬衫来穿,而不是每人都买一件独特的衣服。与其为大脑中的每一个连接都存储一个独特的数字,不如只存储一份精简的“标准衬衫”列表(即质心/centroids),然后做一个笔记说:“嘿,这个连接穿的是 5 号衬衫。”这是一种节省空间的聪明办法,但直到目前为止,将其应用于这些巨大的 AI 大脑时一直是一场灾难。
问题在于,AI 大脑是非常“混乱”的。不同于每个部分看起来都一样的简单图像过滤器,AI 大脑的不同层其权重的大小差异巨大。试图强迫它们都穿上同样的“标准衬衫”,就像试图让大象和小白鼠穿同一双鞋子:大象会被压扁,而小白鼠会飘走。这篇论文介绍了一种名为 LegoLM 的新方法,它修复了这个失效的想法。LegoLM 不再采用“一刀切”的方法,而是扮演了一个聪明的裁缝。它意识到,大多数时候标准衬衫都没问题,但偶尔会出现一些“离群值”(outliers)权重——那些极其巨大、古怪的数字,如果强行让它们穿上标准衬衫,会毁掉整个造型。LegoLM 的秘诀在于:让这些少数奇特的权重保持原样,不加改动,而只对其他权重进行压缩。其结果是,模型被压缩到了原始体积的一小部分,却几乎保留了所有的智能,其表现优于其他需要昂贵数据来修复的方法。
权重共享失效的两种方式
这篇论文的作者 Joseph Bingham 发现,全局权重共享失败主要有两个非常具体且截然不同的原因。他们称之为“失效模式”(failure modes),理解它们是理解为何 LegoLM 有效的关键。
失效模式 1:规模失配(“鞋码不对”问题)
想象你有一组来自 AI 不同层的权重。有些层是“响亮”的(数字很大),而有些层是“安静”的(数字很小)。如果你试图将它们全部归为一类,并为整个区块寻找一个单一的平均“衬衫”,你就会遇到数学问题。论文证明,如果你尝试压缩一个规模各异的权重块,误差会随着块的大小呈线性增长。这就像试图用马拉松选手的步幅去平均一个蹒跚学步的幼儿的步伐;无论你在目录中加入多少种鞋子,只要你强迫它们大小一致,就不可能让一只鞋子同时完美适配两者。论文表明,这种失配造成的混乱非常严重,会导致模型的文本预测能力(以“困惑度/perplexity”衡量)爆炸式增长到数百万,使 AI 变成语无伦次的胡言乱语。
失效模式 2:离群值主导(“巨人”问题)
这是更具戏剧性的失败。即使你使用单个数字(标量块)而不是权重块,AI 中也存在一些与其他权重相比极其巨大的权重。这些就是“离群值”。假设你的代码本(codebook)里有 8 件标准衬衫,其中最大的衬衫可能是 XL 号。但如果有一个权重是 10XL 号呢?如果你强迫这个 10XL 的权重穿上 XL 号的衬衫,这种失真将是灾难性的。论文显示,随着模型规模变大(从 1.24 亿参数增加到 72 亿参数),这些离群值变得更加危险。在较小的模型上,替换这些离群值可能会让 AI 产生轻微困惑;但在像 Mistral-7B 这样的巨型模型上,替换这些少数几个巨大的权重会导致模型彻底崩溃,质量下降超过 1,134,279%。这就像移除一座宏伟教堂中的单块基石,会导致整个建筑崩塌成灰烬。
LegoLM 的解决方案:聪明裁缝
LegoLM 通过三个简单的、无需数据的技巧解决了这些问题。它不需要查看任何训练数据或重新训练模型;它只是重新排列权重。
- 标量编码(Scalar Encoding): 不同于将权重分组为块(这会导致规模失配),LegoLM 将每个权重视为独立的个体。这消除了“鞋码不对”的问题,因为每个权重都可以自由选择最接近的标准衬衫,而不会被邻居拖累。
- 百分比选择性替换(Percentile-Selective Replacement): 这是神奇的魔术。算法会查看所有权重,并找到那些距离任何标准衬衫最远的权重。这些就是“离群值”。与其强迫它们穿上衬衫,LegoLM 说:“你太特别了,你就保持原样吧。”它保留了这 1% 的奇特权重的高精度原始形式,而剩下的 99% 则被压缩进精简的代码本中。
- 边界层保护(Boundary-Layer Protection): AI 的最底层和最顶层非常敏感。LegoLM 给它们额外的照顾,尽管论文指出,对于最大的模型来说,这不如离群值保护那么关键。
结果:体积虽小,大脑依旧
作者在两个模型上测试了 LegoLM:GPT-2 Small(1.24 亿参数)和 Mistral-7B(72 亿参数)。结果令人惊讶且印象深刻。
- 在 Mistral-7B 上: 使用包含 128 个标准值的代码本,并保留仅 1% 的离群权重,LegoLM 将模型压缩了 4.41 倍。结果如何?模型的质量仅下降了 0.03%。这基本上是“无损”压缩。它的表现甚至优于一种名为 PTQ-8bit 的流行方法,后者仅压缩了 4 倍且误差略高。
- 离群值救援: 最具戏剧性的发现是关于离群值的。当研究人员尝试通过用标准值替换所有权重(包括那些“巨人”)来压缩 Mistral-7B 时,模型的质量崩溃了 1,134,279%。但通过仅仅保存那 1% 的离群值,他们挽救了模型,即使在高达 9.74 倍 的压缩率下,也将误差降到了可控的 14.24%。
- 规模效应: 论文发现,“离群值问题”随着模型变大而变得更加严重。在较小的 GPT-2 上,替换离群值会导致 23% 的下降;而在巨大的 Mistral-7B 上,则会导致 1,134,279% 的下降。这表明,更大的模型更加依赖这些少数奇特的数字来维持功能。
这为什么重要
LegoLM 的特别之处在于它是**无需数据(data-free)**的。大多数其他压缩方法都需要向模型输入数千个例句来确定如何缩小它,而 LegoLM 只观察权重本身并进行计算。它可以在不到 30 分钟的时间内,在单个显卡上完成对一个 70 亿参数模型的压缩。
论文得出结论:让权重共享发挥作用的关键不仅在于拥有一个更好的“衬衫目录”,还在于知道何时不要使用这个目录。通过识别并保护那些支撑起模型的少数“巨人”权重,LegoLM 使我们能够在不丢失智能的前提下,将这些庞大的 AI 大脑缩减到背包之中。它将一种此前在大型模型上表现破碎的方法,转化为了一个具有竞争力的、高效的 AI 未来工具。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。