QuaRot 与 SpinQuant#
本页内容5 个部分
QuaRot 与 SpinQuant 可以沿着 AWQ 的 preconditioning 视角自然理解。AWQ 使用对角矩阵改变各坐标轴的尺度;QuaRot 进一步使用正交矩阵改变坐标轴方向;SpinQuant 再进一步,不满足于预先指定或随机的 rotation,而是直接学习一个更适合量化的正交变换。
一句话地图:
1. 旋转的直觉与等价条件#
1.1 为什么 diagonal scaling 还不够#
AWQ 使用:
并进行:
它可以独立 stretch / shrink 每个 channel,但 channel 方向本身不变。
例如 activation:
对角 scaling 可以把第三个 channel 从 20 压到 2,同时在 weight 一侧做逆向补偿。但它不能把这个高度集中的 outlier 能量分散到其他坐标。
Rotation 可以改变 basis orientation,而 diagonal scaling 可以独立改变各轴尺度;正交变换保持 L2 范数,二者不是严格的强弱包含关系。
1.2 正交 rotation:不改变函数,只改变坐标系#
令:
则:
所以线性层满足:
这和 AWQ 的等价缩放具有相同结构,但 不再是逐 channel scaling:
每个新 channel 都是旧 channels 的线性组合。
因此 rotation 是真正的 basis change。
AWQ / diagonal S:
x₁ → scale x₁
x₂ → scale x₂
x₃ → scale x₃
QuaRot / orthogonal R:
[x₁,x₂,x₃,...]
↓ mix
[x₁',x₂',x₃',...]
1.3 Rotation 为什么能帮助量化:把 outlier 摊开#
考虑极端 activation:
使用 normalized Hadamard matrix:
它满足:
旋转后:
于是:
before:
20 0 0 0
↑ concentrated outlier
after Hadamard:
10 10 10 10
正交变换保持 L2 norm:
能量没有消失,但最大坐标值从 20 降到 10:
对于由最大绝对值决定动态范围的均匀低比特量化,这一点非常重要。
若粗略有:
则 rotation 前:
rotation 后:
这个例子的网格步长更细,但两组数恰好都可被各自 absmax INT4 网格精确表示,因此并没有展示误差下降。更重要的是,旋转不保证对每个输入降低最大坐标:反过来把 乘同一个 就得到 。收益需要在校准/评估分布上测量。
核心链条:
outlier concentration
↓
orthogonal rotation
↓
energy spreading
↓
smaller coordinate-wise dynamic range
↓
finer effective quantization grid
2. QuaRot 的结构化旋转#
2.1 QuaRot 的核心视角#
QuaRot 可以理解为一种 rotation-based quantization preconditioning。
它利用 Transformer 中的计算不变性,在不改变 full-precision 模型函数的前提下,把 hidden representation 旋转到一个更适合低比特表示的 basis,再对 weight、activation 和 KV cache 做更激进的低比特量化。
与 AWQ 对比:
| AWQ | QuaRot | |
|---|---|---|
| 变换 | diagonal scaling | orthogonal rotation |
| 数学对象 | ||
| 作用 | stretch / shrink axes | rotate basis |
| 能否混合 channels | 否 | 是 |
| outlier 处理直觉 | 缩小对应 channel | 将集中能量 spread 到多个 channel |
| 典型目标 | weight-only 低比特 | weight / activation / KV 更全面的低比特化 |
模型级等价不只依赖单个线性层的恒等式。非线性、RMSNorm 的可学习缩放、残差相加和 RoPE 都限制了可插入或吸收旋转的位置;例如通常 。QuaRot 需要按计算图安排离线吸收与在线变换。
2.2 为什么 Hadamard 特别适合做 rotation#
一般 dense orthogonal matrix:
若直接存储并应用,需要约:
的存储和计算,这对 LLM hidden dimension 很昂贵。
Hadamard transform 的优势是:
- 它是正交 / 可归一化为正交变换;
- 具有高度结构化的 模式;
- 不需要显式存储完整 dense matrix;
- Fast Hadamard Transform 可以近似以
复杂度完成。标准快速 Walsh–Hadamard 变换要求维度为 的幂;其他维度需要实现支持的分解或填充,不能假定任意 都直接可用。
所以它提供了一种非常实用的折中:
dense random orthogonal
↓
strong basis mixing
↓
O(d²)
structured Hadamard
↓
orthogonal + strong mixing
↓
O(d log d)
这正好回应了 AWQ 留下的问题:能否获得 rotation 的表达能力,而不支付一般 dense basis transform 的成本?
2.3 为什么 rotation 对 activation / KV quantization 尤其有价值#
Weight 是静态的,很多 weight-only 方法可以离线搜索 scale、group 或其他参数。但 activation 与 KV cache 随输入动态变化,而且常见的 outlier 会直接扩大 runtime quantization range。
Diagonal scaling 可以把 activation outlier 转移到 weight 一侧,但 rotation 提供另一种可能:
不只是移动 outlier 的尺度负担,而是改变 outlier 在 representation space 中的空间分布。
这使 rotation-based 方法特别适合思考 W/A/KV 同时低比特化的问题。
QuaRot 的重要意义也在这里:量化问题不再只是“如何压 weight”,而是整个 Transformer representation 如何选择一个更适合低比特 arithmetic 的 basis。
3. SpinQuant 的可学习旋转#
3.1 QuaRot 留下的问题:哪个 rotation 最好?#
假设任意正交 都保持 full-precision 等价:
但经过 quantizer 后:
的误差会依赖于具体的 。
原因和 AWQ 一样:quantization 是非线性的。
因此虽然许多 rotation 都在浮点世界中等价,它们在低比特世界中并不等价。
这就产生一个自然问题:
这就是 SpinQuant 的出发点。
3.2 SpinQuant:从“使用 rotation”到“学习 rotation”#
QuaRot 的核心是找到有效的 rotation-based reparameterization;SpinQuant 进一步把 rotation 本身视为优化变量。
概念流程:
initialize R
↓
calibration data
↓
quantization-aware forward / objective
↓
optimize R
↓
find a quantization-friendly basis
↓
quantize model
可以把目标抽象理解成:
这里最关键的是约束:
也就是说,优化不能把 变成任意 dense matrix;它必须一直留在 orthogonal set 上。
3.3 为什么必须保持 orthogonal#
rotation preconditioning 的一个核心优势是可以插入:
而不改变 full-precision 模型。
例如:
如果优化过程中 不再正交:
那么:
此时已经不是等价 reparameterization,而是在修改模型函数本身。
因此 SpinQuant 的优化问题具有明显的几何结构: 需要在 orthogonal group / manifold 上移动,而不是在整个 空间中自由更新。
4. 算例、比较与边界#
4.1 一个二维几何直觉#
想象 activation distribution 沿某个斜方向高度拉长:
y
↑
│ •
│ •
│ •
│ •
─────────────┼────────────→ x
而普通 uniform quantizer 的 grid 永远沿 coordinate axes:
+---+---+---+---+
| | | | |
+---+---+---+---+
| | | | |
+---+---+---+---+
| | | | |
+---+---+---+---+
如果 representation 的方向与 grid 很不匹配,有限的低比特 levels 会被浪费在不重要的空间区域。
Rotation 相当于问:
能否旋转 representation,使数据分布与 axis-aligned 的低比特 quantization grid 更匹配?
QuaRot 的思路是利用有效的结构化 / 随机 rotation 消除或 spread outliers;SpinQuant 则进一步说:既然 rotation angle / basis 很重要,那就直接从 calibration objective 中学习它。
4.2 AWQ、QuaRot、SpinQuant 的统一视角#
三者都可以看成:保持 quantizer 相对简单,而改变 quantizer 所看到的 representation geometry。
original model representation
↓
reparameterization
↓
quantization-friendly geometry
↓
simple low-bit Q
区别在于 reparameterization family:
| 方法 | Transformation family | Mental model |
|---|---|---|
| AWQ | diagonal | 学 / 搜索每个 axis 应该 stretch 多少 |
| QuaRot | orthogonal | 旋转 basis,把 outlier energy spread 开 |
| SpinQuant | optimized orthogonal | 学习最适合量化的 rotation |
下面列出相关设计选项;具体成本取决于旋转是否可离线吸收,不是每个箭头都意味着运行时更贵:
low cost high flexibility
scalar
↓
diagonal scaling (AWQ)
↓
structured orthogonal rotation (QuaRot-style)
↓
optimized rotation (SpinQuant)
↓
general dense transform
4.3 更深的一层:量化不只是设计 quantizer#
传统直觉容易把问题写成:
AWQ / QuaRot / SpinQuant 提供了另一条路线:
以及 activation:
其中 可以是 diagonal scaling,也可以是 orthogonal rotation。
因此真正可以优化的是:
而这三种方法的共同洞察可以浓缩为:
Don't only improve the quantizer; improve the geometry seen by the quantizer.
4.4 总结#
AWQ#
用 activation-aware diagonal scaling 改变各 channel 的有效量化分辨率。
QuaRot#
利用正交 rotation 改变 basis,把集中 outlier 的能量 spread 到多个维度,从而降低 coordinate-wise dynamic range,使 weight / activation / KV cache 更适合低比特表示。
SpinQuant#
不再满足于给定的 rotation,而是直接学习一个 quantization-friendly orthogonal basis。
最终可以把三者放在同一条发展线上:
这条路线的核心不是让 full-precision 模型计算不同的函数,而是利用等价 reparameterization 改变低比特 quantizer 面对的数值几何。
参考资料#
QuaRot、SpinQuant。文中的等价关系均指量化前的精确算术;量化、舍入和 kernel 实现仍需单独验证。