把模型变小变快的两条主要路线:量化是降低每个参数的数值精度,蒸馏是让大模型教出一个小模型。
模型效果上去了,部署成本也跟着上去:显存占用大、响应慢、按量计费贵。要在真实产品里跑得起来,压缩是绕不开的一步。量化和蒸馏是两条不同思路。
神经网络里的参数原本用高精度浮点保存,每个都要占不少字节。量化就是改用更少的比特来表示它们,比如从 16 位降到 8 位甚至 4 位。 - 好处:显存和存储占用下降、内存带宽压力减小、在支持低精度运算的硬件上速度更快。 - 代价:数值精度损失。省得太狠时,模型会变得迟钝、容易出错或复读。 - 进阶做法:不是所有参数都一样重要,可以只对一部分做低比特处理,或者只量化权重、激活值保持较高精度;也有用少量数据做校准来减小误差的做法。
思路完全不同:让一个能力强但笨重的大模型当老师,把它的输出——不只是标准答案,还包括它对各类答案的偏好分布——作为学习目标,去训练一个小得多的学生模型。学生学到的往往比只照着标准答案练更好,因为它继承了老师对「哪些答案更合理」的判断。