寓言故事
仓库换了能装半格货的量斗
银匠铺要把大批银粒装进小匣,原先每粒都用大格单放。银匠起初靠更省格子的计量法办事,熟人熟路,日子小的时候很少出错。银匠发现,真正的难题不是把数字写小,而是在有限显存里保留模型仍能工作的数值信息。
后来匣子不够,搬运也慢。匣子越小,精度与容量的取舍越尖锐;粗暴合并会省空间,却可能让关键权重的误差累积成明显质量损失。
第一次修补很急:学徒想随便合并银粒,结果称量误差太大。把所有银粒压成同一种短记号确实省空间,却让关键数值的误差失去控制。可新毛病跟着出来,大家只盯最容易被看见的地方,远处的小偏差越积越深。
老师傅按分组范围压缩权重,保留必要的缩放信息,并用校验砝码比较量化前后的误差;bitsandbytes 让这套低比特加载和训练流程可落地。
老师傅把常见重量换成短记号,关键大数仍保留足够刻度,还为换算留下校验砝码。这一步麻烦,起初还拖慢了工期;可几轮之后,返工少了,师傅也不再凭脾气改规矩。仓库获得了显存空间,却没有把关键精度当作可以无限压缩的余量。
从此省下的显存可以换来更大的模型或更多并发,但每一次量化都要用任务质量和吞吐实测来证明值得。
银粒装得下了,账也大体对得上。从那以后,省空间可以靠更紧的记法,但要知道哪些地方不能省过头。