DuQuant: Distributing Outliers via Dual Transformation Makes Stronger Quantized LLMs
- 文章提出:Normal Outliers、Massive Outliers
- FFN 模块的第二线性层存在大量异常值(Massive Outliers)。
- 大量异常值会导致训练不稳定的问题:极大的异常值可能会导致基于优化的方法遇到损失爆炸的问题。由于梯度不稳定,OmniQuant [48] 和 AffineQuant [40] 都不得不排除下投影层的可学习参数
- 动机是跨不同通道重新分配激活异常值,从而促进更容易的量化。
- 具体来说,文章构造正交旋转矩阵和正交置换矩阵。通过将这些矩阵与激活值相乘,我们可以有效地对激活值执行列变换,从而允许异常值的重新分布。
QuaRot: Outlier-Free 4-Bit Inference in Rotated LLMs
- 实践中使用这些模型(称为推理)需要大量的计算、内存和能量,特别是在预填充阶段,其中模型应该处理大量提示并将其缓存在每一层中。
- 计算不变性定理 [Ashkboos et al., 2024, Theorem 1] 指出,变压器中的权重和块间激活可以使用正交矩阵进行变换,而不改变模型输出。
- KVcache 、
- 模型预填充阶段是指在生成文本或进行推理之前,模型处理输入序列并生成初始隐藏状态的过程。这个阶段涉及输入序列的处理、初始隐藏状态的生成以及大量的计算密集型操作。优化预填充阶段的性能对于提高模型的整体效率和响应速度至关重要。
- 解码阶段:在解码阶段,模型生成输出序列(例如,生成文本的下一个token)。这个阶段的主要瓶颈是内存消耗。
LRQuant: Learnable and Robust Post-Training Quantization for Large Language Models
TTA 的核心思想:
- 无需重新训练:TTA 不需要重新训练模型,而是在测试阶段通过某种机制(如自监督学习、正则化等)动态调整模型参数或特征,使其能够更好地适应测试数据的分布。
- 增强鲁棒性:TTA 的目标是让模型在面对分布偏移(distribution shift)或域偏移(domain shift)时,仍然能够保持良好的性能。
IntactKV: Improving Large Language Model Quantization by Keeping Pivot Tokens Intact
- 发现了一种新的异常值(outlier),这种异常值被之前的量化方法所忽视。这些异常值在输入的开始部分(即 [BOS] 标记和一些其他常见的标记,例如逗号“,”和句号“.”)表现出极高的数值,这些标记被称为“枢轴标记”(pivot tokens)。我们发现,这些异常值的极端数值使得自注意力机制(self-attention)集中关注这些枢轴标记,而忽略了输入中的其他标记。
- INTACTKV 的核心思想是从全精度(full-precision)模型中生成枢轴标记(pivot tokens)的无损 KV 缓存(KV cache,即键值缓存)。通过保持枢轴标记的 KV 缓存 完整无损,量化误差在自注意力机制输出上的累积将在后续的解码步骤中得到有效缓解。