
模型忘东西,是分批忘的先说一个反直觉的事实。Llama-3 的 70B 版本,16bit 精度下要 140GB 显存起步。把权重全部压到 4bit,只剩 35GB,一台游戏本就能装下。每个参数能表达的数值从几万种砍到十六种,精度砍掉四分之三。按直觉,模型应该「傻掉四分之三」。实际呢?日常对话、写作、翻译,大多数人试不出区别。这不是魔法,也不是「模型其实没那么复杂」。恰恰相反,它说明模型内部有一种非常不均匀的结构。今天拆一下这件事,以及它照出来的那张「承重图」。知识不住在一个参数里一台计算器,某个数字算错一点,结果就是错的。神经网络不是这种机器。它的知识分散在几亿、几百亿个参数之间,没有一个参数单独负责「记住」某件事。所以把很多参数的精度砍掉,误差是互相抵消的。这个参数歪一点,那个参数歪一点,合起来的输出几乎没变。像一支合唱团:少数人音准差一点,整体还是那首歌。冗余,是量化的本钱。但「不重要」不等于「可以乱动」冗余是本钱,不是无边无际的本钱。参数单独看都不要紧,它们之间的结构才要紧。有些通道像承重墙:平时看不出来,一砸全楼响。这有实验。MIT 韩松组的 AWQ 论文(MLSys 2024 最佳论文)里有一张对照表,做的是 OPT-13B 的 3bit 压缩。先解释一下表里的尺子:困惑度,大致可以理解为模型对下文的犹豫程度,越低越稳。OPT-13B 全精度是 10.