1. 课程导入
自动驾驶系统正从“感知—预测—规划—控制”的多模块拼接架构,快速演进为以端到端(End-to-End, E2E)神经网络为核心的统一驾驶模型。传统模块化方案中,感知输出目标框、预测输出轨迹、规划再做决策,各模块之间存在信息损失与接口误差累积;而端到端模型直接以多路摄像头、激光雷达、毫米波雷达、IMU、GNSS 等原始或轻量特征为输入,一次性输出轨迹、控制量或驾驶动作,让梯度从最终驾驶目标反向贯穿整个网络。这种范式在数据驱动上限、全局优化能力和场景泛化性上具有明显优势,但也把模型规模、计算量和实时性压力推到了工程前台。
一、发展背景:从模块化到端到端,再到车端可部署
端到端自动驾驶的演进大致经历三个阶段。第一阶段是模块化流水线,各子任务独立训练、独立部署,工程可控但误差累积明显。第二阶段是“大模型+后处理”的端到端原型,典型如基于 Transformer 的 BEV 感知与轨迹解码联合训练,模型参数量常达数亿甚至十亿级,在离线数据集上表现优异。第三阶段是车端可部署的端到端系统,要求模型在有限算力、有限功耗、确定性延迟和功能安全约束下稳定运行。真正决定产品能否落地的,不是离线指标有多高,而是单位时间内能否在车规芯片上完成推理并留出足够的安全冗余。
从工程视角看,端到端模型面临三重矛盾:一是模型容量与车端算力的矛盾,大模型精度高但难以实时;二是延迟确定性与动态场景的矛盾,自动驾驶对尾延迟极其敏感,一次超时可能直接影响控制闭环;三是精度与安全的矛盾,压缩后的模型必须保持关键场景下的行为一致性,不能因量化或剪枝引入危险抖动。
二、压缩与加速的工程意义
模型压缩与加速不是“把模型变小”这么简单,它是一套围绕精度、延迟、内存、功耗和可靠性做多目标权衡的系统工程。其核心价值体现在四个方面:
- 满足实时性:端到端模型通常要求单帧推理在数十毫秒量级,压缩与加速直接决定能否进入控制闭环。
- 降低硬件成本:更小的模型和更低的算力需求,意味着可以使用更低成本的芯片或把算力留给融合与安全模块。
- 控制功耗与散热:车端计算平台功耗受限,模型能效比直接影响续航与散热设计。
- 提升部署鲁棒性:量化、剪枝、蒸馏后的模型更易适配不同芯片后端,减少算子不支持带来的工程风险。
三、整体知识框架与学习目标
本课程围绕“模型—算法—芯片—工具链—评测”五层结构展开。模型层关注端到端网络结构与冗余来源;算法层覆盖剪枝、量化、蒸馏、低秩分解、神经架构搜索等压缩方法;芯片层讨论 GPU、NPU、DSP 等异构算力的特性与限制;工具链层涉及 ONNX、TensorRT、TVM、厂商 SDK 的转换与调优;评测层则建立精度、延迟、内存、功耗和功能安全的综合指标体系。
学习目标可归纳为三点:第一,理解端到端模型的计算瓶颈与冗余来源,能定位“哪里值得压”;第二,掌握主流压缩与加速方法的原理、适用边界和调参经验,能回答“怎么压”;第三,建立从训练到部署的完整工程链路意识,能评估“压完是否还能安全开”。
四、典型场景与常见误区
以一个基于 BEV+Transformer 的端到端驾驶模型为例:原始模型在服务器 GPU 上单帧推理约 120 ms,参数量 2.3 亿,显存占用 6 GB。经过结构化剪枝去掉 35% 通道、INT8 量化并做算子融合后,模型在车端 NPU 上单帧推理降至 28 ms,显存占用 1.4 GB,闭环测试中关键场景通过率仅下降 0.6 个百分点。这个案例说明,压缩与加速的收益是数量级的,但必须以充分的场景回归为代价。
| 常见误区 | 表现 | 正确做法 |
|---|---|---|
| 只看参数量 | 参数少但延迟反而更高 | 以实测延迟和能效比为第一指标 |
| 先压缩后调精度 | 精度掉点后难以恢复 | 压缩与微调交替进行,保留敏感层 |
| 忽略尾延迟 | 平均延迟达标,偶发超时 | 关注 P99 延迟与最坏情况 |
| 量化一刀切 | 检测头精度骤降 | 对敏感层使用混合精度 |
五、工程链路速览
一个可复用的端到端压缩加速流程通常包含以下步骤,后续章节会逐一展开:
1. 基线建立:训练端到端模型,记录精度、延迟、内存、功耗
2. 冗余分析:统计通道重要性、注意力分布、量化敏感度
3. 压缩策略:剪枝 + 量化 + 蒸馏组合,确定各层配置
4. 微调恢复:小学习率微调,冻结敏感层,回归关键场景
5. 图优化:算子融合、常量折叠、内存复用
6. 后端部署:ONNX 导出 → 芯片编译器 → 实车推理
7. 闭环评测:精度、P99 延迟、功耗、功能安全全量回归
8. 数据回流:收集失败场景,驱动下一轮迭代
掌握这套链路,意味着你不仅能训练出一个“聪明”的端到端模型,更能把它真正装进车里、跑在路上的每一帧里。这正是本课程要解决的核心工程问题。