想象你有一本巨大的图书馆藏书(一个大语言模型),你想把它装进口袋里。这些书体积庞大,所以你决定把它们缩小以便携带。这个过程被称为量化。
目前,大多数人通过强制将每个词放入一个预先制作好的、僵化的 4 位“槽位”网格中来缩小这些书。这就像试图将形状不规则的岩石塞进一个由完美正方形的乐高积木组成的盒子里。你必须把岩石切碎或挤压才能塞进去,这会丢失一些细节,使故事变得有点模糊。
现有的方法试图通过旋转岩石或给盒子填充空隙来解决这个问题,但它们仍然必须使用相同的僵化乐高网格。
AAAC(激活感知的自适应码本) 提出了一种更聪明的缩小书籍的方法。以下是其工作原理,使用简单的类比:
1. 问题:“一刀切”的网格
在标准的 4 位量化中,模型中的每一组数字(权重)都被迫固定到同一组固定的值上(就像一份固定的 16 项菜单)。如果一个数字无法完美契合,它就会被四舍五入到最近的选项,从而丢失精度。
2. AAAC 解决方案:两个定制工具包
AAAC 不是为整个层使用一个固定菜单,而是为模型的每一层创建两个微小的定制工具包(称为码本)。
- 微小尺寸:这些工具包非常小——每层仅约64 字节。这大约相当于一条文本消息中单个表情符号的大小。
- 量身定制:这些工具包不是固定的,而是从模型活动的一小部分样本中“学习”而来的。它们是专门针对该特定层中岩石(权重)的形状量身定制的。
3. 如何选择:“符号位”技巧
对于每一组数字,AAAC 决定哪一个定制工具包最合适。
- 决策:它选择能最小化误差的工具包,特别关注哪些数字是“重要”的,这取决于模型当前是如何“思考”的(激活值)。
- 神奇存储:这里是巧妙之处。模型已经为其尺度数字存储了一个“符号位”(一个正负指示符)。然而,因为这些尺度数字总是正数,所以该符号位通常是空的(浪费的空间)。AAAC 将工具包的选择(0 或 1)隐藏在这个未使用的符号位中。
- 结果:你免费获得了一个更智能、更定制的契合度。它没有为模型增加任何额外的存储空间。
4. 速度与效率:“轻量级”方法
许多其他试图提高准确性的方法需要繁重的劳动:
- 基于梯度的方法就像试图在跑马拉松的同时解谜;它们需要数小时的时间和大量的计算机内存(RAM)来反向计算复杂的数学运算。
- AAAC 就像用简单、快速的启发式方法解谜。它不需要反向运行或使用大量内存。它只需查看一次数据,进行快速的“聚类”(将相似项分组),然后选择最佳工具包。
- 时间:它在单个显卡上仅需3 到 30 分钟即可完成,而其他高质量方法可能需要数小时。
5. 结果
该论文在 various 模型规模(从 1B 的小模型到 27B 的大模型)上,将 AAAC 与许多其他流行方法(如 AWQ、GPTQ 和 OmniQuant)进行了测试。
- 准确性:AAAC 始终比其他“轻量级”方法产生更清晰、更准确的结果。
- 竞争:它甚至匹敌或超越了那些需要数小时运行的“重型”方法,但只需几分钟即可完成。
- 组合:当与另一种称为 AWQ 的方法结合使用时,它恢复了压缩过程中损失的**70%**以上的质量,非常接近原始全尺寸模型。
总结
AAAC 是一种快速、无需内存的方式来缩小 AI 模型。它不是将数据强行塞入僵化的预制网格,而是为每一层构建两个微小的定制网格,并将网格的选择隐藏在浪费的比特空间中。它能在几分钟内实现高精度,而无需旧式更复杂方法所需的繁重计算能力。
技术摘要:AAAC(激活感知的自适应码本)
1. 问题陈述
大型语言模型(LLMs)面临显著的内存和计算约束,使得训练后仅对权重进行量化至 4 位(W4A16/W4A8)成为关键的部署策略。现有的训练后量化(PTQ)方法通常在固定网格假设下运行。它们试图通过通道缩放(AWQ)、截断或误差补偿(GPTQ)等技术,优化权重如何映射到预定义的静态 4 位标量网格(例如标准 INT4 或 NVFP4 格式),从而提高精度。
作者认为,这种方法留下了潜在的质量提升空间。虽然 4 位格式固定了存储代码的数量和分组缩放结构,但这并不强制要求标量重建网格本身必须是固定的。去量化后的值(即推理期间使用的实际权重)受此固定表的约束。现有方法改进了到该表的映射,但并未针对给定层的特定权重分布和激活统计信息来调整该表本身。
2. 方法:AAAC
本文提出了AAAC(激活感知的自适应码本),这是一种轻量级、无需梯度的方法,它用每层两个学习得到的标量码本(T0和T1)替换了单个固定的标量表T。
核心机制
- 自适应码本:AAAC 不再使用单个固定网格,而是为每层学习两个小型标量码本。这些码本的基数与基础 4 位格式相同(例如,NVFP4 为 15 个条目,INT4 为 16 个条目),但其值是通过校准数据优化得到的,而非由格式规范固定。
- 激活感知选择:对于每组权重,该方法选择能最小化激活加权重建误差的码本(T0或T1)。每个权重的重要性由其在校准集中对应列的平方激活能量决定(Ik=∑Xt,k2)。
- 零开销存储:
- 码本大小:每个码本仅包含约 15–16 个 BF16 值,每层总计约64 字节。对于 7B 模型,这仅增加约 14 KB 的存储,可忽略不计。
- 选择位:每组码本的选择被编码在该组正缩放因子的未使用的符号位中(因为缩放因子始终为正)。当选择组大小(S)与缩放组大小(g)匹配时,这允许实现每组选择且零额外存储开销。
- 学习算法:
- 初始化:T0和T1使用归一化权重分布的均匀间隔分位数进行初始化,其中T1偏移半个步长以提供不同的起始点。
- 交替优化:算法在以下步骤间交替进行:
- 分配:将每个权重组分配给能最小化激活加权误差的码本。
- 细化:使用激活加权的 k-means更新码本条目(计算每个条目对应的 Voronoi 单元的加权质心)。
- 效率:该过程不需要反向传播、不需要 Hessian 矩阵计算,也不需要全模型梯度。它仅利用前向传播激活独立处理各层。
3. 主要贡献
- 重新定义 PTQ 目标:AAAC 将重点从将权重映射到固定网格转变为学习网格本身,在量化中引入了新的自由度。
- 轻量级无梯度优化:与需要数小时反向传播和巨大内存开销(模型大小的 2–4 倍)的梯度辅助方法(如 OmniQuant、SqueezeLLM)不同,AAAC 通过在前向激活上执行简单的 k-means 进行学习。
- 零存储开销:通过利用缩放因子未使用的符号位,AAAC 实现了自适应码本选择,而无需增加模型的内存占用。
- 速度:量化在单张 GPU 上仅需3–30 分钟完成,比梯度辅助基线方法快数个数量级。
4. 实验结果
作者在 Llama(1B–13B)和 Qwen(0.5B–32B)模型系列上评估了 AAAC,使用了 NVFP4(g=16)和 INT4(g=128)两种布局。
- 与无梯度方法对比:AAAC 始终优于 RTN、IF4、AWQ 和 GPTQ。
- 在 WikiText-2 上,对于 NVFP4,AAAC 平均实现了59.2% 的差距恢复(相对于 RTN),显著超过 AWQ(28.1%)和 IF4(12.3%)。
- 在 INT4 设置(g=128)下,AAAC 在零开销(S=128)下已在大多数模型上优于 AWQ;增加微不足道的 0.0625 bpw 开销(S=16)后,性能进一步提升。
- 与梯度辅助方法对比:AAAC 的性能匹配或超过了需要数小时优化和高内存的方法。
- AAAC 实现了60.0% 的平均差距恢复,与QuIP#(配合微调)(60.0%)持平,并优于OmniQuant(55.0%)、SqueezeLLM(55.0%)和GPTVQ(25.0%)。
- 关键在于,AAAC 在峰值内存不超过原始模型大小且仅需数分钟而非数小时的情况下实现了这一性能。
- 下游任务:在使用 Qwen3.5 模型进行的 8 项下游任务(推理、知识、常识、数学)中,AAAC 在所有量化方法中实现了最高的平均准确率(64.21%),恢复了相对于 BF16 基线 49.3% 的差距。
- 与 AWQ 结合:当与 AWQ 结合(量化前对权重进行缩放)时,AAAC 平均恢复了**70.5%**的量化差距,证明了其与其他 PTQ 技术的兼容性。
5. 意义与主张
本文主张,AAAC 挑战了需要梯度才能缩小 4 位量化模型与全精度基线之间质量差距的普遍假设。通过证明一种轻量级、无需梯度的方法可以匹配甚至超越复杂、梯度辅助算法的性能,作者表明在最小规模上学习码本代表了 4 位 LLM 量化的一种实用且高效的方向。
其意义在于权衡:AAAC 以最小的计算成本(分钟级)和零内存开销提供了接近最先进(SOTA)的准确率(媲美需要 100 GPU 小时的方法),使得高质量 4 位量化能够适用于更广泛的部署场景。
作者指出的局限性:
- 评估仅限于参数量高达 32B 的模型;未测试 70B+ 的动态特性。
- 与梯度辅助方法的比较仅限于 LLaMA 7B/13B,这是为了保持与先前文献中协议的一致性。
- 该方法针对仅权重量化(W4A16/W4A8),未解决联合权重 - 激活量化(W4A4)问题。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。