晶圆表面彩色微缩电路阵列的微距特写

1.58 这个数字从哪来

三值模型把每个权重压成三种符号之一:-1、0、+1。既然只有三种取值,理论上每权重只需 log₂3,也就是大约 1.585 比特,这就是「1.58-bit」这个说法的由来。但在真实工程里没人能按理论值存——主流做法是把 5 个三值权重塞进 1 个字节(五进制打包),由于实际使用的分组大小都是 2 的幂,最终落在 1.625 比特每权重。

也就是说,理论值和工程值之间,卡着大约 0.04 比特的差额。差距很小,小到大多数人默认它是不可避免的。9 月中旬提交在 arXiv 的一篇论文(编号 2609.16338)说:未必。

他们先做了一件很笨但很关键的事

1.625 比特这个结果,建立在「-1、0、+1 三种符号出现概率相同」的假设上。论文作者没有直接接受这个假设,而是去测了 29 个真实的三值大模型,统计权重里各个符号的实际占比。

结论是:零权重最多能占到全部权重的 51.5%。三值模型的分布严重不均匀,而现成的存储格式,一直在为「均匀分布」买单。

BITCOS:按分布来存

基于这个观测,作者提出了一种叫 BITCOS 的布局:一个稠密的存在位图,加一个压缩过的符号向量。给定权重中的零密度 z,它的成本是 2 − z 比特每元素。换句话说,模型越稀疏,存储越省。

在测试的 29 个模型里,有 26 个用 BITCOS 存得比五进制打包更紧凑,最稀疏的那个模型上做到了 1.485 比特每权重——不仅越过了 1.58,还越过了理论下限。因为那个下限本身也建立在「均匀分布」的错误前提上。

不只是论文上的数字

存储格式要能落地,得看能不能被快速解包。论文给出了针对 AVX-512、AVX2 和 Intel Xe2 GPU 的优化解包序列。在真实模型呈现的零密度下,对比生产级的三值矩阵向量乘内核,实测收益最高 1.28 倍;端到端推理在 5 种平台上跑下来,CPU 解码吞吐最高提升 1.18 倍,GPU 最高 1.27 倍。

这件事真正的启示

端侧推理的成本大头往往不是算力,而是内存带宽——每读一个权重都要排队,省下来的每一比特都直接换成吞吐。而这篇论文给出的方法,本质上是把「分布假设」本身当成了优化对象:先质疑前提,再动代码。

工程里最值钱的改进,常常就藏在这种「原来大家都这么假设」的地方。