端到端自动驾驶VLM模型:LMDrive: Closed-Loop End-to-End Driving with Large Language Models
论文地址:https://arxiv.org/pdf/2312.07488
代码地址:https://github.com/opendilab/LMDrive
1. 摘要
一方面,目前自动驾驶领域取得了显著进展,但在遇到长尾场景或复杂城市路况时,当前的自动驾驶方法仍容易失效甚至导致严重事故。另一方面,大语言模型(LLMs)展现出了接近“通用人工智能”的推理能力。因此,利用大语言模型所具备的“人类知识”帮助自动驾驶应对长尾问题,提升端到端模型的可解释性,并与导航和驾驶员进行互动成为端到端自动驾驶研究的热点。论文提出 LMDrive —— 一个新颖的、语言引导的、端到端、闭环自动驾驶框架。LMDrive 能够融合处理多模态传感器数据和自然语言指令,从而实现与人类乘客或导航系统的交互,在真实指令场景下进行驾驶。主要创新点:
- 使用冻结的预训练 LLM 保持强推理能力;
- 为其引入多视角的相机和 LiDAR 编码器,以及可学习的输入/输出适配器;
- 在 CARLA 模拟器上构建支持语言指导的数据集,涵盖动态场景与复杂指令;
- 构造挑战性评估集(LangAuto Benchmark)。
2. 方法
LMDrive 框架由两个部分组成:视觉编码器(Vision Encoder),用于处理多视角、多模态的传感器数据(相机 + LiDAR),并生成视觉 token;大语言模型(LLM)及其辅助模块,包括 tokenizer、Q-Former、Adapters,用于处理视觉 token 和语言指令,进而预测控制信号与任务完成状态。
2.1 视觉编码器
没有使用预训练的 CLIP 模型,设计了一个多视角多模态视觉编码器来处理 RGB 图像和 LiDAR 数据,并融合成 Bird's Eye View(BEV)视图,以生成视觉 token 输入给 LLM。为了提高视觉编码器的理解力,增加了感知和预测任务项,这些预测头只用于视觉预训练阶段,在指令微调和推理时将被移除。
图像编码(2D):对每张图像使用 ResNet提取 2D 特征图,将特征图展平成 token 序列,来自不同视角的 token 使用一个 Transformer 编码器进行融合。
点云编码(3D):LiDAR 输入使用 PointPillars处理点云数据,形成以自车为中心的 LiDAR 特征图,每个“pillar”覆盖 0.25m × 0.25m 区域,使用 PointNet进一步聚合特征,输出维度为C×H×W,作为 BEV 查询向量。
解码器:生成traffic light和waypoint的query,结合激光点云的query,以视觉特征作为KV,使用标准 Transformer 解码器,生成BEV token、traffic light token和waypoint token。
预训练:BEV token 接入 CenterPoint,预测目标边界框与速度;Waypoint token + 导航点输入 GRU,预测 N 个未来轨迹点;Traffic light token 输入两层 MLP,预测红灯/绿灯状态。
2.2 指令跟随的LLM模型
LLM模型用于将输入的视觉token和导航任务翻译成驾驶指令,LLM模型选用开源模型,如LLaMA-2、Vicuna-1.5或者LLaVA-v1.5,训练过程中会冻结LLM的参数,只会训练输入输出头。
文本 Tokenizer:采用主流 LLM(如 LLaMA)中使用的标准分词器(tokenizer)将自然语言指令转化为 token,这些 token 构成文本输入部分。
Q-Former:将图像/点云提取出的视觉 token 输入给语言模型会带来显著计算负担(比如 BEV token 的数量通常很大),因此采用 BLIP-2提出的 Q-Former 模块来进行视觉 token 压缩。具体做法:
- 输入:来自前一阶段的三类 token(BEV / Waypoint / Traffic Light);
- 对每一类输入 token 分别使用一个 Transformer 模块(Q-Former);
- 每个模块中引入一组可学习的 Query token(如 4 个),通过 Cross-Attention 选择性地关注输入 token;
- 输出:每类 token压缩为固定长度的语义向量(每帧 3×4=12 个 token),作为视觉信息输入语言模型。
Token Adapters:由于视觉 token 的维度(如 256)通常不同于语言模型 token 的维度(如 4096),我们引入了一组 token adapter 模块(通常是一层线性映射)来完成维度对齐。此外,在每一帧数据后附加一个 [SEP] token,用于帮助语言模型学习帧间结构。
输出解码:直接将车辆行驶轨迹文本化,模型直接按照字符输出轨迹,然后再转成数字即可。以自回归地生成这些轨迹点,推理的时间会比较长。
3. 总结
后续探索方向:
- 更强语言模型:引入更大规模、具备推理能力的语言模型;
- 结构化输出:结合语言输出和向量回归,提升精度与控制稳定性;
- 实际部署:将此框架推广到真实车辆或更高保真度的仿真环境中;
- CoT(思维链)解释性:进一步研究 LLM 输出语言的推理链条,与行为之间的对应关系。