模型压缩与优化技术
技术 | 作用 | 原理简介 | 典型工具 / 框架 |
---|---|---|---|
剪枝(Pruning) | 减少不重要的参数或神经元 | 删除权重值小或不活跃的连接 | PyTorch、SparseML、NNI |
蒸馏(Distillation) | 小模型学习大模型行为 | 大模型作为“老师”,训练小模型 mimic 其输出 | Huggingface distilBERT 、TinyBERT |
量化(Quantization) | 减少模型位数,提高运行速度 | 将浮点数(FP32)转为 INT8/INT4/二值 | bitsandbytes、ONNX、TensorRT、BQNN |
结构优化(Architecture Tuning) | 用更少计算实现更好效果 | 更轻量的网络设计:MobileNet、EfficientNet、DistilBERT | NAS、LiteTransformer |
LoRA / Adapter / Prefix Tuning | 微调参数量极少 | 插入少量可训练模块,冻结主干 | PEFT、HuggingFace |
KV缓存 & 推理优化 | 提高推理速度、节省显存 | Transformer中缓存历史Key/Value,避免重复计算 | vLLM、FlashAttention |
张量并行 / Pipeline并行 / 混合并行 | 实现多卡训练 | 按层/维度拆分参数并行训练 | DeepSpeed、Megatron-LM、Colossal-AI |
MII / Triton / ONNX Runtime | 模型服务优化 | 专为推理部署优化计算图和运行效率 | Triton Inference Server、ONNX、TorchScript |
几个重点术语:
1. 🔪 剪枝(Pruning)
-
比喻:把一棵树剪掉不常用的枝条
-
方式:
-
结构剪枝:剪掉某些神经元/通道(提升推理速度)
-
非结构剪枝:剪掉小权重值(稀疏化,但可能不提升速度)
-
-
应用:模型部署到算力受限设备(移动端、IoT)
2. 🧪 蒸馏(Knowledge Distillation)
-
比喻:学生学习老师的“思考过程”而不是仅仅数据标签
-
教师模型输出 soft label(概率分布),学生模型学习它
-
好处:小模型也能达到接近大模型效果
3. 🎚️ 量化(Quantization)
-
将 FP32 → INT8 / INT4 / 二值化
-
显著减少模型大小和推理延迟
-
需要注意精度损失,常和 QAT(Quantization Aware Training)结合使用