模型优化-------模型压缩

模型压缩是一种优化技术,目标是在尽量保留模型性能的前提下,减少模型的体积、计算成本和内存占用。特别适合模型部署在边缘设备、移动端、嵌入式系统等资源受限环境中。

其中,"剪枝(Pruning)、量化(Quantization)和知识蒸馏(Knowledge Distillation)"是最常用且研究最深入的三种方法。


一、剪枝(Pruning)

原理:

剪枝的核心思想是去掉对模型输出影响较小的参数或结构,使得模型更加稀疏或紧凑。

类型:

  1. 非结构化剪枝(Unstructured Pruning):

    • 精确到单个权重级别;

    • 比如将小于某阈值的权重置为 0;

    • 会产生稀疏矩阵,需要专门的硬件或库支持加速。

  2. 结构化剪枝(Structured Pruning):

    • 删除整个神经元、通道(channel)、卷积核或 transformer 中的 attention head;

    • 对硬件更友好,能获得实际的加速效果。

  3. 动态剪枝

    • 运行时根据输入动态决定哪些结构被跳过;

    • 典型例子如动态卷积、Early Exit 网络等。

一般流程:

训练完整模型 → 剪除低贡献参数 → 微调恢复性能


二、量化(Quantization)

原理:

量化是将模型参数和计算从高精度(如 FP32)转换为低精度(如 INT8、FP16),以减少模型大小、内存访问量和计算需求。

类型:

  1. 后训练量化(Post-Training Quantization, PTQ)

    • 不需要重新训练;

    • 简单高效,但可能引入较大精度损失;

    • 如 PyTorch 中 torch.quantization.quantize_dynamic()

  2. 量化感知训练(Quantization-Aware Training, QAT)

    • 在训练中加入量化模拟;

    • 准确率更高,但训练成本略高。

  3. 静态 vs 动态量化

    • 静态量化会量化权重和激活;

    • 动态量化只量化权重,激活在运行时动态计算。

优势:

  • 精度损失可控(尤其是 QAT);

  • 模型大小缩小约 4 倍;

  • 推理速度明显加快(特别在支持低精度硬件上);


三、知识蒸馏(Knowledge Distillation)

原理:

将一个大模型(teacher)的知识迁移给一个小模型(student)。student 模型不仅学习真实标签,还学习 teacher 输出的"软标签"(概率分布)。

优势:

  • 学习到类与类之间的相对关系(从 softmax 输出中学习);

  • student 模型可以比单独训练更轻量、更有效;

  • 常用于压缩 BERT、GPT 等大型模型,如:DistilBERT、TinyBERT、MiniLM。

蒸馏方式:

  • logits 蒸馏:使用 teacher 输出的 softmax 概率作为目标;

  • 中间层蒸馏:对比 student 和 teacher 的隐层输出;

  • 多任务蒸馏:同时结合标签监督和模型蒸馏。


四、其他压缩技术(补充)

1. 参数共享(Weight Sharing)

  • 用哈希函数或其它规则让多个参数共享同一值;

  • 应用于 BERT-of-Theseus、ALBERT 等。

2. 低秩分解(Low-rank Factorization)

  • 将大的矩阵表示分解成多个小矩阵的乘积;

  • 常见如 SVD 分解,用于减少全连接层、注意力矩阵的计算。

3. 神经架构搜索(NAS)

  • 自动搜索性能与效率兼顾的模型结构;

  • 如 MobileNet、EfficientNet、FBNet 等都是通过 NAS 获得的紧凑模型。

4. 混合精度训练(Mixed Precision Training)

  • 训练时同时使用 FP16 和 FP32;

  • 可减少显存占用、提高训练速度,同时保持数值稳定性。


五、总结对比

方法 是否需再训练 压缩目标 精度影响 实际部署效率 应用场景
剪枝 是(微调) 参数/结构 可控 中~高 CNN、Transformer
量化 选配(PTQ/QAT) 位宽/存储 可控~小 移动端、边缘设备
蒸馏 模型结构 小~可提高 教学模型、小模型
参数共享 参数冗余 可控 多层结构模型
低秩分解 大矩阵 全连接/注意力模块
NAS 模型结构 不确定 自动模型压缩
相关推荐
WXX_s40 分钟前
【OpenCV篇】OpenCV——01day.图像基础
人工智能·opencv·计算机视觉
c7691 小时前
【文献笔记】ARS: Automatic Routing Solver with Large Language Models
人工智能·笔记·语言模型·自然语言处理·llm·论文笔记·cvrp
柏峰电子2 小时前
光伏电站气象监测系统:为清洁能源高效发电保驾护航
大数据·人工智能
后端小张2 小时前
智谱AI图生视频:从批处理到多线程优化
开发语言·人工智能·ai·langchain·音视频
零一数创2 小时前
智慧能源驱动数字孪生重介选煤新模式探索
人工智能·ue5·能源·数字孪生·ue·零一数创
叫我:松哥2 小时前
基于python django深度学习的中文文本检测+识别,可以前端上传图片和后台管理图片
图像处理·人工智能·后端·python·深度学习·数据挖掘·django
程序员岳焱2 小时前
从 0 到 1:Spring Boot 与 Spring AI 打造智能客服系统(基于DeepSeek)
人工智能·后端·deepseek
SugarPPig2 小时前
Hugging Face 模型的缓存和直接下载有什么区别?
人工智能·缓存
AI扶我青云志2 小时前
bert模型中config.json中所有参数
人工智能·json·bert
问道财经2 小时前
豪鹏科技锚定 “AI + 固态” 赛道:从电池制造商到核心能源方案引领者的战略跃迁
人工智能·科技·能源