3. 模型压缩与加速概览
在自动驾驶端到端模型中,感知、预测、规划往往被统一到一个大规模神经网络中完成。模型参数动辄上亿,推理时需要同时处理多路摄像头、激光雷达与毫米波雷达数据,对延迟、功耗和内存带宽都极为敏感。模型压缩与加速,正是在不显著损失精度的前提下,让这样的模型能够真正跑在车端计算平台上的工程手段。
核心定义:模型压缩关注“把模型变小”,即减少参数量、激活值或存储占用;模型加速关注“把推理变快”,即降低计算量、访存量和调度开销。二者常常同时发生,但目标并不完全等价——一个模型可能体积很小,却因为算子不友好而推理缓慢。
一、压缩与加速的分类体系
从工程视角看,主流技术可分为五类:剪枝、量化、蒸馏、低秩分解和神经架构搜索。它们作用于模型的不同层面,也对应不同的收益与代价。
- 剪枝:移除冗余权重、通道或层。非结构化剪枝压缩率高但需要稀疏计算支持;结构化剪枝对硬件更友好,可直接减少卷积通道数。
- 量化:将 FP32 权重/激活映射到 INT8、INT4 甚至二值。它同时降低内存占用并提升算力利用率,是车端部署中最常见的手段。
- 蒸馏:用大模型(教师)指导小模型(学生)训练,把暗知识迁移到轻量网络中,常用于保留端到端模型的全局推理能力。
- 低秩分解:将大权重矩阵近似为多个小矩阵乘积,减少乘加次数,适合全连接层和大卷积核。
- 神经架构搜索:在给定延迟、功耗约束下自动搜索更优结构,属于“设计阶段”的加速,而非对已有模型的改造。
二、方法流程:从训练到车端部署
压缩与加速不是单点操作,而是一条流水线。典型流程如下:
- 基线训练:先得到高精度 FP32 模型,作为压缩的参考基准。
- 敏感度分析:逐层评估剪枝或量化对精度的影响,确定哪些层可动、哪些层必须保护。
- 压缩变换:按策略执行剪枝、量化、蒸馏或分解,得到候选模型。
- 微调恢复:用少量数据对压缩后模型做 fine-tune,弥补精度损失。
- 部署验证:在目标芯片上测延迟、功耗与数值一致性,确认满足车规要求。
# 典型量化感知训练配置片段(示意)
quant:
weight_bits: 8
activation_bits: 8
per_channel: true
calibration_samples: 512
exclude_layers: ["detection_head", "planning_head"]
finetune:
epochs: 10
lr: 1e-5
dataset: "calib_10k"
三、自动驾驶场景中的挑战与机遇
自动驾驶对压缩与加速提出了比通用视觉更苛刻的要求。下表对比了通用场景与自动驾驶场景的关键差异:
| 维度 | 通用视觉场景 | 自动驾驶端到端场景 |
|---|---|---|
| 精度容忍度 | 可接受 1~2% 下降 | 安全相关,精度下降需严格评估 |
| 延迟要求 | 百毫秒级可接受 | 通常要求 <100ms,部分模块 <30ms |
| 功耗约束 | 较宽松 | 车端散热有限,常 <30W |
| 输入模态 | 单图或视频 | 多摄像头+激光雷达+毫米波雷达 |
| 部署芯片 | GPU/CPU 通用 | Orin、地平线、黑芝麻等专用 NPU |
| 功能安全 | 一般不涉及 | 需满足 ISO 26262 与确定性执行 |
机遇:专用 NPU 对 INT8/INT4 有原生支持,量化往往能带来数倍加速;端到端模型结构相对规整,结构化剪枝和蒸馏的收益明显;神经架构搜索可以在设计阶段就锁定车端友好的算子组合。
常见误区:只追求压缩率而忽略硬件算子支持,导致模型虽小但推理更慢;量化时对检测头和规划头“一刀切”,造成安全相关输出漂移;蒸馏时教师模型过强,学生难以收敛。建议先做敏感度分析,再分阶段压缩,并始终在目标芯片上做端到端验证。
四、复盘:如何选择技术组合
实际工程中很少只用一种技术。一个可参考的决策顺序是:先用量化快速降低内存与算力门槛;再用结构化剪枝去掉冗余通道;若精度不足,用蒸馏恢复;对全连接层或大卷积核可叠加低秩分解;若仍不满足延迟,则回到设计阶段用神经架构搜索重新搜索结构。每一步都应在目标芯片上测量真实延迟,而不是只看理论 FLOPs。
理解这五类技术的定位与边界,是后续深入剪枝、量化、蒸馏等具体章节的基础。只有把压缩与加速放在“精度—延迟—功耗—安全”四维约束下统一考虑,才能让端到端模型真正落地到车端。