ByteNoteByteNote

字节笔记本

2026年5月31日

英伟达让模型变小了,但性能没降

API中转
¥120

模型压缩是大模型落地中一个很现实的需求。大模型效果好,但体积太大,部署成本太高。英伟达发布的压缩技术做到了一个看似矛盾的结果:模型变小了很多,但性能几乎没有下降。

这套方法的核心是结构化的权重剪枝和知识蒸馏的深度结合。权重剪枝的思路很简单:模型中并不是所有参数都同等重要,有些对最终输出的贡献很小,把它们置为零对效果影响可忽略。英伟达不是随机剪枝,而是分析每一层中每个参数的重要性,优先剪掉贡献最小的。

但剪枝不是终点。剪掉参数后模型的能力会有损失,需要用知识蒸馏来弥补。以剪枝后的模型为学生模型,以原始完整模型为教师模型,让学生的输出分布尽量接近教师。通过蒸馏训练,学生学会了用更少的参数表达同样丰富的知识。

剪枝和蒸馏的关键在于两者的交替优化。先剪掉一部分参数,然后蒸馏恢复能力。再剪掉一部分,再蒸馏。如此交替进行,直到达到目标压缩比例。直接一步到位剪掉大量参数会导致能力损失过大,蒸馏也难以恢复了。

压缩比例与性能之间存在 trade-off。英伟达的实验表明,在压缩比例为 50% 时,模型性能几乎没有下降,甚至在部分任务上略有提升,因为剪枝去除了噪声参数。在压缩比例达到 75% 时,性能开始出现小幅下降。在压缩比例为 90% 时,性能下降明显,但仍然优于同等规模从头训练的模型。

实际的压缩流程包括几个步骤。先用少量校准数据计算每个参数的重要性。重要性通常基于参数大小或对损失的影响来评估。然后按照重要性排序,剪掉最不重要的参数。剪枝后做短时间的蒸馏训练恢复性能。重复这个过程直到达到目标压缩比例。

与量化相比,剪枝的优势在于它直接减少了模型的计算量,而不是仅仅降低了存储需求。量化后的模型需要特殊的推理库才能加速,而剪枝后的模型可以直接在标准推理框架上运行。但剪枝对硬件加速不如量化友好,因为在 GPU 上进行稀疏矩阵运算的效率不如稠密矩阵。

实际应用中最好的做法是组合使用多种压缩技术。先用量化降低模型精度,再用剪枝减少参数量,最后用蒸馏恢能力。英伟达的实验表明,组合使用三种技术可以在保持 95% 以上性能的同时,将模型体积压缩到原来的十分之一。

这套压缩方法的一个重要优势是通用性。它不依赖特定的模型架构或硬件平台,压缩后的模型可以直接用标准推理框架部署,不需要特殊硬件或私有的推理引擎。对于需要将大模型部署在手机、IoT 设备、边缘服务器上的场景,这是目前最实用的方案。

模型压缩的评估也需要多维度的考量。除了压缩前后的模型在 benchmark 上的准确率对比,还需要关注实际部署中的推理延迟、内存占用、吞吐量等指标。一个压缩后的模型可能在准确率上略有下降,但如果推理速度提升了 3 倍,总体而言仍然是成功的压缩。不同的部署场景对压缩的要求不同。边缘设备上运行可能需要 4 倍以上的压缩,但可以接受一定程度的性能损失。云端部署可能只需要 2 倍压缩,但对性能要求更高。根据具体的部署场景确定压缩目标和性能指标,避免过度压缩导致的性能损失。模型压缩与量化的结合是当前的主流做法。剪枝减少参数量,量化降低每个参数的位数,两者相辅相成。先剪枝后量化通常比反过来效果好,因为剪枝可以提前去除噪声参数,让量化的损失更小。

模型压缩除了剪枝和蒸馏,量化也是重要的技术手段。量化将模型参数的精度从 FP32 降低到 INT8 或 INT4,可以大幅减少模型体积和计算量。INT8 量化通常可以在几乎没有性能损失的情况下将模型体积减少 4 倍。INT4 量化可以进一步减少体积,但性能损失稍大。不同的量化方式适用于不同的场景。英伟达在模型压缩领域的探索表明了未来大模型部署的发展方向。随着模型规模的持续增长,没有压缩技术的大模型在实际应用中越来越不现实。未来的趋势是模型训练时就考虑压缩,把压缩纳入训练流程中,而不是训练完成后的后期优化。这种训练感知压缩可以进一步降低压缩带来的性能损失。

分享: