一文搞懂量化、剪枝和知识蒸馏都是什么?

📚AI Infra系列文章

AI Infra-为什么AI需要专属的基础设施?

GPU与TPU:AI计算硬件的核心对比

AI训练与推理的硬件需求有什么区别?

AI训练要的数据这么多,怎么存?

AI训练中的混合精度计算技术详解

随着深度学习模型的参数量从百万级跃升至千亿级,部署和推理的计算、存储、带宽压力急剧增加。尤其在边缘设备和低延迟应用中,庞大的模型不仅占用显存 ,还拖慢推理速度。

模型压缩与加速技术(量化、剪枝、蒸馏等)就是为了解决这个问题:在尽可能保持精度的前提下,降低模型大小和推理延迟。

所有相关源码示例、流程图、模型配置与知识库构建技巧,我也将持续更新在Github:LLMHub,欢迎关注收藏!

希望大家带着下面的问题来学习,我会在文末给出答案:

  1. 为什么模型压缩后推理速度能显著提升?
  2. 量化、剪枝、蒸馏之间的核心区别是什么?
  3. 如何组合多种压缩方法,获得更优的性能/精度平衡?

1. 量化(Quantization)

量化是将模型参数和计算过程从高精度(FP32)映射到低精度(如 INT8、FP16、BF16),减少存储与计算开销。

量化可以压缩存储空间 ,FP32 占 4 字节,INT8 仅占 1 字节,理论上体积可减至 1/4。同时可以加速计算,低精度运算能充分利用硬件的 SIMD / Tensor Core,加快推理。

常见方法包括PTQ(**Post-Training Quantization)和QAT(Quantization-Aware Training) **

QAT训练过程中模拟量化效果,能够实现较高的精度。PTQ训练后直接量化,无需重新训练,简单但精度下降可能较大。


2. 剪枝(Pruning)

剪枝通过移除模型中冗余或不重要的权重/神经元,减少参数量和计算量。

剪枝包括:

  • 非结构化剪枝:移除单个权重(稀疏化矩阵),压缩率高但硬件利用率低。
  • 结构化剪枝:移除整个通道/卷积核/注意力头,硬件加速友好。

剪枝能直接减少模型参数量和计算量(FLOPs),并且可以与量化结合,进一步压缩。


3. 知识蒸馏(Knowledge Distillation)

知识蒸馏通过让小模型(学生)学习大模型(老师)的输出分布,在更小的模型中复现大模型性能。

  • 老师提供soft labels(概率分布),比one-hot标签包含更多信息。
  • 学生模型结构可完全不同,更灵活。

知识蒸馏可以显著减小模型体积,同时保留大部分性能,但是需要额外的蒸馏训练过程。


4. 组合策略

在工业部署中,通常会组合多种方法:

  1. 剪枝 → 去除冗余结构。
  2. 量化 → 降低计算精度。
  3. 蒸馏 → 保留性能。
  4. 再配合 TensorRT / OpenVINO / TVM 等推理引擎优化。

不同方法对推理加速的影响(以Transformer为例):

方法 压缩率 推理加速 精度下降
INT8 量化 ~4x 1.5-3x 0.5-2%
结构化剪枝 ~2-4x 1.5-2.5x 1-3%
蒸馏 ~2-6x 2-4x 0-2%
组合策略 ~6-10x 3-6x ≤1%

最后,我们回答一下文章开头提出的问题

  1. 为什么模型压缩后推理速度能显著提升?

低精度运算减少计算量和内存访问;剪枝减少参数和FLOPs;蒸馏用更小模型直接减少推理步骤。

  1. 量化、剪枝、蒸馏之间的核心区别是什么?

量化:降低精度;剪枝:移除冗余结构;蒸馏:训练小模型模仿大模型。

  1. 如何组合多种压缩方法?

先剪枝减少冗余,再量化降低精度,最后通过蒸馏恢复精度,并配合推理引擎获得最佳性能。


关于深度学习和大模型相关的知识和前沿技术更新,请关注公众号 coting !

以上内容部分参考了 PyTorch/TensorFlow 官方文档与实际部署案例,非常感谢,如有侵权请联系删除。

相关推荐
倒头就睡的小比特4 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼4 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark4 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her14 天前
并查集-听课笔记
笔记·算法·并查集
码流子4 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven4 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark4 天前
从算法设计模式看编程思维的抽象能力4
算法
2601_962218614 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法