一句话定义
正交变换量化(Orthogonal Transform Quantization) 指在把数值压成低位整数之前,先对激活值做一次正交变换(工程上常见的形式是旋转),让原本分布很不均匀的数据变得均匀,再送进量化器。
正交变换有两个性质值得记住:
- 它保持向量的长度和内积,也就是两个数之间的接近程度、方向关系不变;
- 但它会把数值重新分配到各个坐标上。
所以模型下游的计算关系没有变,变的是「每个位置上的数字好不好压」。
它解决什么问题
激活值难量化,难点集中在离群值:某一层输出里偶尔冒出一个特别大的数,量化时的取值范围被它撑大,其余正常数值只能挤进极少的格子里,误差就上来了。
已有的应对办法是分组量化、混合精度,思路是「给离群值单独划一块地方」。代价是分组越细,越依赖硬件提供对应算子,不一定跑得更快(这一点可参考 激活值量化)。
正交变换走的是另一条路:不动量化器、不动硬件,先把数据本身摊平。旋转之后,原本集中在少数通道上的大幅值被分摊到更多通道,单点的「刺」变矮了,量化格子就能用得更充分。
关键做法
- 选一个正交矩阵做变换。 因为保持内积,模型后续计算的相似关系不受影响;被改变的是数值分布。
- 尽量折叠进相邻层。 如果前后都是线性层,变换矩阵理论上可以吸收进权重里,从而不额外增加推理开销——但能不能真的折掉,取决于模型结构(中间夹着非线性算子就不好折)和推理引擎的实现。
- 和分组量化配合。 变换先把整体分布摊平,分组再把剩余的局部差异隔离开,两者不冲突。
- 论文层面的进展。 arXiv 上有一篇工作把正交变换用在 LLM 的低比特量化上,讨论的正是「先重塑激活分布、再量化」这条路。
用不上的时候
- 变换不是免费的。 要么多算一次矩阵乘,要么依赖前一层折叠;折叠不掉的地方,就是实打实的额外开销。
- 它让量化误差更均匀,不会让模型见过更多东西。 压缩后在新场景上掉点,如果根因是训练数据没覆盖,做多少次旋转都补不回来。
- 位宽不是自动可达。 能不能真的跑在 4 位,还取决于分组粒度、算子支持与设备算力。参数表上的位宽不等于落地效果。
- 论文的验证对象是语言模型。 视觉模型上是否同样有效、能省多少,需要在自己的数据上实测,不能直接照搬结论。
参考
- arXiv SpectrumQuant: Spectrum Alignment for LLM Quantization(编号 2610.20303,2026-10-14)
- 激活值分组与硬件算子约束,可参考 Hardware-Friendly Token-Group Activation Quantization for Low-Bit Mamba Super-Resolution(编号 2610.16261)
延伸阅读
- 有的模型压到 4 位还能用,有的压到 8 位就废了 —— 这篇讲的是这件事对门店意味着什么。
相关词条
火眼识别提供端侧视觉引擎与设备管理平台,相关方案见 火眼识别官网。