3. 模型压缩技术概览

在自动驾驶模型部署中,模型压缩不是单一技术的“独角戏”,而是一组技术协同配合的“组合拳”。量化、剪枝、蒸馏、低秩分解和神经架构搜索(NAS)分别从数值精度、参数冗余、知识迁移、矩阵结构和网络拓扑五个维度对模型进行压缩与加速。理解它们之间的关系、适用边界和组合方式,是制定高效压缩方案的前提。

核心原理:五种技术的作用维度

五种技术并非互相替代,而是作用于模型的不同层面:

  • 量化:将 FP32 权重/激活映射到 INT8/INT4 等低比特表示,减少存储与带宽,利用整数运算加速。它改变的是“数值精度”,不改变网络结构。
  • 剪枝:移除冗余权重、通道或层,降低参数量和计算量。它改变的是“参数稀疏度”,可分为非结构化剪枝与结构化剪枝。
  • 蒸馏:用大模型(教师)指导小模型(学生)训练,让小模型获得接近大模型的泛化能力。它改变的是“知识传递方式”,通常需要重新训练。
  • 低秩分解:将大权重矩阵分解为多个小矩阵乘积,降低计算复杂度。它改变的是“矩阵结构”,适合全连接层和卷积核。
  • 神经架构搜索:自动搜索满足精度与延迟约束的网络结构。它改变的是“网络拓扑”,属于设计阶段的压缩。
从工程视角看,量化与剪枝是“后处理压缩”,蒸馏是“训练策略”,低秩分解是“结构近似”,NAS 是“架构级搜索”。它们可以串联使用,形成多级压缩流水线。
模型压缩技术关系与组合策略 原始 FP32 模型 高精度 · 高延迟 · 大体积 量化 FP32 → INT8/INT4 数值精度压缩 剪枝 移除冗余权重/通道 参数稀疏化 蒸馏 教师→学生知识迁移 训练策略 低秩分解 大矩阵→小矩阵乘积 矩阵结构近似 神经架构搜索 自动搜索最优结构 拓扑级设计 典型组合策略流水线 策略 A:剪枝 + 量化 结构化剪枝 → 微调 → PTQ/QAT 量化 适合:分类/检测主干 策略 B:蒸馏 + 量化 教师模型指导小模型 → 学生模型量化部署 适合:精度敏感任务 策略 C:NAS + 低秩 + 量化 NAS 搜索轻量结构 → 低秩分解压缩矩阵 → 量化部署

方法流程:从模型到部署的压缩流水线

在实际工程中,压缩通常遵循“先结构、后数值、再训练”的顺序。一个可落地的流程如下:

  1. 基线评估:在目标硬件上测量原始模型的延迟、内存和精度,确定压缩目标。
  2. 架构级优化:若允许重新设计,使用 NAS 搜索满足延迟约束的骨干网络。
  3. 结构化剪枝:移除冗余通道或层,获得紧凑结构,并进行微调恢复精度。
  4. 低秩分解:对全连接层或大卷积核进行矩阵分解,进一步降低计算量。
  5. 知识蒸馏:用原始大模型作为教师,指导压缩后的小模型训练,弥补精度损失。
  6. 量化:采用训练后量化(PTQ)或量化感知训练(QAT),将模型转换为 INT8/INT4。
  7. 部署验证:在目标芯片上验证精度、延迟和功耗,必要时迭代调整。
顺序并非绝对。例如,可以先蒸馏再剪枝,也可以剪枝后直接量化。关键是根据任务精度容忍度和硬件特性选择组合。

案例/场景:自动驾驶感知模型的压缩组合

以自动驾驶中常用的 YOLO 系列检测模型为例,部署到车规级芯片时通常采用“剪枝 + 蒸馏 + 量化”组合:

  • 剪枝:对骨干网络进行通道剪枝,将参数量减少 40%~60%,FLOPs 降低约 50%。
  • 蒸馏:用未剪枝的大模型作为教师,对剪枝后的小模型进行特征图蒸馏和输出蒸馏,mAP 恢复 1~2 个百分点。
  • 量化:采用 QAT 将模型量化为 INT8,在 NVIDIA Orin 或地平线征程芯片上获得 2~4 倍推理加速。

对于 Transformer 类模型(如 BEV 感知),低秩分解和量化更为关键,因为注意力矩阵和全连接层占据大量计算。NAS 则常用于搜索适合车端算力的轻量注意力结构。

误区/复盘:常见压缩陷阱

误区一:压缩越多越好。过度剪枝或量化会导致精度断崖式下降,尤其在自动驾驶的安全关键任务中不可接受。应设置精度红线,如 mAP 下降不超过 1%。
误区二:忽略硬件支持。非结构化剪枝产生的稀疏矩阵在通用 GPU 上未必加速,需确认芯片是否支持稀疏计算。
误区三:量化后不校准。PTQ 需要代表性校准数据集,否则激活值分布偏移会导致严重精度损失。
误区四:蒸馏教师越强越好。教师过强而学生容量不足时,知识难以迁移,反而效果不佳。

技术对比与适用场景

技术 作用维度 典型压缩率 适用场景 主要风险
量化 数值精度 2~4 倍 推理部署、边缘芯片 精度损失、校准依赖
剪枝 参数稀疏度 2~10 倍 过参数化模型、CNN 结构破坏、需微调
蒸馏 知识迁移 1~3 倍 小模型训练、精度恢复 教师选择、训练成本
低秩分解 矩阵结构 1.5~3 倍 全连接层、大卷积核 秩选择、精度波动
NAS 网络拓扑 1~5 倍 架构设计、硬件定制 搜索成本高、迁移难

组合策略建议

根据任务类型和硬件约束,可参考以下组合:

# 组合策略配置示例
strategy_A:
  name: "剪枝 + 量化"
  steps: [structured_pruning, fine_tune, PTQ]
  target: "CNN 检测/分类模型"
  expected: "4x 加速, 精度损失 <1%"

strategy_B:
  name: "蒸馏 + 量化"
  steps: [teacher_student_distill, QAT]
  target: "精度敏感的小模型"
  expected: "2x 加速, 精度接近教师"

strategy_C:
  name: "NAS + 低秩 + 量化"
  steps: [NAS_search, low_rank_decomp, QAT]
  target: "Transformer/BEV 模型"
  expected: "3x 加速, 硬件定制优化"

总结来看,量化、剪枝、蒸馏、低秩分解和 NAS 各自解决不同层面的压缩问题。工程实践中,应根据模型类型、硬件平台和精度要求,选择两到三种技术组合,形成“结构压缩 + 知识恢复 + 数值加速”的完整流水线,才能在自动驾驶场景中实现精度与效率的平衡。