LMDrive:大语言模型辅助闭环端到端
LMDrive:大语言模型辅助闭环端到端

背景
自动驾驶行驶过程中要从起点到终点,避免碰撞,防止违反交通法规
端到端与模块化设计之分------端到端已成主流
闭环与开环------在线数据与
驾驶模拟器------使用了carla
交通场景
设计了两种工况,有一些特殊交互场景,来检验模型对特殊情况的处理。
之前的工作
现有问题:
1现代自动驾驶方法在遇到长尾的、难以预见的事件以及复杂的城市场景时,表现不佳,容易引发严重事故。
2并且以往的自动驾驶方法倾向于依赖有限格式的输入,比如传感器数据和导航航点,这限制了车辆对语言信息的理解能力以及与人类的交互能力。
新的尝试:大语言模型(LLM)展现出接近 "通用人工智能(AGI)" 的强大推理能力,有望改善自动驾驶面临的问题。图中还展示了结合大语言模型的自动驾驶系统架构,通过指令输入,利用传感器数据等,形成数据和梯度流动的闭环控制。
这里是闭环的系统,完整的跑完这个过程,而不是用一个数据集(使用数据集来跑一个开环是不一样的)
通过instruction作为输入,同时有环境的数据,由LLM输出control给Environment
贡献情况
提出新框架:提出了一种新颖的端到端、闭环、基于语言的自动驾驶框架 LMDrive,它通过多模态多视角传感器数据以及自然语言指令,与动态环境进行交互。
提供数据集:提供了一个包含约 6.4 万个数据片段的数据集,每个片段包含一条导航指令、若干提示指令、一系列多模态多视角传感器数据以及控制信号,数据片段时长在 2 到 20 秒之间。
建立评估基准:提出了 LangAuto 基准,用于评估将语言指令作为导航输入的自动驾驶智能体,该基准涵盖了具有误导性或冗长的指令,以及具有挑战性的对抗性驾驶场景 。
实验验证:进行了大量的闭环实验,验证了所提出框架的有效性,并分析了 LMDrive 的特点,为该方向的后续研究提供了参考。
数据集格式
navigation instruction
notice instruction
示例:
包含的一些关于场景的语言的等等
多种表述、误导性、多个指令等
指令多样化:借助 ChatGPT API 为每种类型的指令生成八个不同的变体。比如对于 "右转" 指令,就有 "行驶 [x] 米后右转" 等多种不同表述方式,以丰富指令形式。
加入误导性指令:为了提升模型应对误导性指令的能力,模拟了这类场景并将其添加到数据集中,增强模型在面对错误或干扰信息时的鲁棒性。
连接多个指令:构建了一些连续的复杂指令数据,用于模拟真实的基于导航的驾驶场景,使数据集更贴合实际应用中的复杂情况。
复杂的指令
两个连续指令场景:给出了两组示例,像 "准备前方右转。沿此路线继续行驶。" 以及 "沿此路线保持当前方向。向左,准备驶入。" ,模拟了较为基础的连续导航指令情境。
三个连续指令场景:列举了三组示例,比如 "在即将到达的 T 字路口右转。驶向左侧车道。沿此路线保持行驶。" 这些示例更为复杂,模拟了在实际驾驶中可能遇到的一系列连贯的导航指令情况,有助于训练和评估自动驾驶模型处理复杂指令序列的能力 。
2T左右的数据
框架
输入部分:
导航指令:
例如 "在下个路口左转",通过 Tokenizer(分词器)处理后输入到大语言模型(LLM)中。
视觉数据:
多视角的 RGB 图像和激光雷达(LiDAR)数据,先由 Vision Encoder(视觉编码器)编码,再经过 Q-Former 和 Adapter(适配器)处理,输入到大语言模型。
提示指令(可选):
比如 "注意前方行人",同样经过 Tokenizer、Q-Former 和 Adapter 处理后进入大语言模型。
处理部分:
大语言模型接收上述多种输入信息,进行综合处理和推理,判断当前指令是否完成。
输出部分:
如果指令未完成,模型会继续处理输入信息;若指令完成,模型通过 Adapter 输出控制信号(如方向盘、油门、刹车等控制指令),实现自动驾驶操作 。 整个框架体现了多模态数据与大语言模型的结合,用于实现基于语言指令的自动驾驶控制 。
视觉编码器(vision encoder):
负责处理来自摄像头和激光雷达等多视角、多模态的传感器数据。通过对这些数据的分析理解周围场景,并生成视觉标记(visual tokens),为后续模型提供关于外部环境的视觉信息。
大语言模型及其相关组件:
包括分词器(tokenizer)、Q-Former 和适配器(adapters)。该部分处理所有历史视觉标记以及语言指令(导航指令和可选的提示指令),通过对这些信息的整合和推理,来预测车辆的控制信号,比如方向盘转向、加减速等操作,同时判断当前的指令是否已经完成。
输入部分:
有两种输入,多视角的图像作为 2D 输入,激光雷达(LiDAR)数据作为 3D 输入。
视觉编码器处理:
2D 处理路径:
多视角输入先经过 2D Backbone(骨干网络)提取特征,再通过 Transformer Encoder(Transformer 编码器),输出 key 和 value 值,用于后续处理。
3D 处理路径:
LiDAR 输入进入 3D Backbone(骨干网络),同时还有交通信号灯查询(Traffic Light query)和路径点查询(Waypoint queries)作为额外输入,接着经过 Decoder(解码器),与 2D 路径的输出结合,生成鸟瞰图(BEV)形式的视觉标记(Visual Tokens)。
视觉标记
生成过程:
由视觉编码器生成。多视角图像和激光雷达数据分别经过 2D Backbone、Transformer Encoder 以及 3D Backbone、Decoder 等模块处理后,融合生成鸟瞰图(BEV)形式的 visual tokens ,它综合了车辆周围环境的 2D 和 3D 信息。
作用:
是连接视觉感知与后续预测及决策模块的桥梁。一方面,作为输入提供给预测头(Prediction Headers),用于生成 BEV 地图、预测交通信号灯状态和未来路径点;另一方面,在 LMDrive 模型整体流程中,会被输入到大语言模型,让大语言模型结合语言指令进行处理,从而输出控制信号,实现自动驾驶 。简单来说,visual tokens 承载了环境感知信息,便于模型后续完成各类任务。
预测模块:
BEV 地图预测:
视觉标记进入 CenterPoint 模块,生成 BEV Map,用于展示车辆周围环境的鸟瞰图。
交通信号灯状态预测:
通过多层感知器(MLP),根据视觉标记预测交通信号灯状态。
未来路径点预测:
利用门控循环单元(GRU),根据路径点相关的视觉标记,预测未来的路径点(Future waypoints)。
预训练阶段:
视觉编码器会连接预测头(prediction headers)。此时,它利用多视角多模态传感器数据作为输入,执行目标检测、交通信号灯状态分类和未来路径点预测等预训练任务。通过这些任务,视觉编码器能够学习到如何从输入数据中提取与自动驾驶相关的关键信息,例如识别周围物体、判断信号灯状态和规划未来行驶路径等。
指令微调阶段和推理阶段:
预测头会被舍弃,并且视觉编码器被冻结(参数不再更新)。在这个阶段,视觉编码器的主要作用是生成视觉标记(visual tokens),这些标记会被输入到大语言模型(LLM)中。这样做的目的是将视觉信息转化为大语言模型能够理解和处理的形式,以便大语言模型结合语言指令对自动驾驶行为进行决策和控制。
视觉编码器预训练阶段:视觉编码器以单帧传感器数据作为输入。由于指令标注过程会丢弃一些帧,所以使用指令标注前的原始数据集进行预训练,该原始数据集包含约 300 万帧数据。在此阶段,仅对视觉编码器进行预训练,任务集中在场景理解相关的感知任务上,如目标检测、交通信号灯状态识别等,让视觉编码器学会从传感器数据中提取有用的视觉信息。
指令微调阶段:整个系统在指令的引导下进行端到端的自动驾驶训练。此时,Q-Former 和适配器(Adapters)是可训练的,而其他组件被冻结。LMDrive 模型以一系列帧作为输入,在训练时会设置一个固定的序列长度来构建批量数据,目的是让模型学会将视觉信息、语言指令和控制信号进行对齐,使模型能够根据语言指令和视觉输入输出合适的控制信号,实现自动驾驶。
基准benchmark
独特性:LangAuto 基准测试是首个在 CARLA(一个自动驾驶模拟环境)中评估基于语言指令的闭环驾驶的基准。与之前的 Town05 和 Longest6 等基准不同,它使用自然语言指令,而非离散命令或路点来指导自动驾驶。
特征:
自然语言引导:用自然语言引导车辆到达目的地,还会加入适当的提示以增强安全性,更贴近现实中的人类指令交互。
场景丰富:覆盖 CARLA 中的全部 8 个城镇,包含高速公路、十字路口、环形交叉路口等多种场景,以及 16 种环境条件,包括 7 种天气和 3 种光照条件,能全面测试自动驾驶系统在不同环境下的表现。
多样挑战:支持不同的行驶路线,提供多样化的驾驶挑战和场景,增加了测试的复杂性和全面性。
误导性指令:约 5% 的指令是故意设置的误导性指令,持续 1 - 2 秒,自动驾驶智能体必须识别并忽略这些指令以安全导航,以此测试系统应对干扰信息的能力。
度量metics:
路线完成率(Route completion):指已完成的路线长度占总路线长度的百分比,用于衡量自动驾驶系统在给定路线上的行驶进展情况,体现其能否按照指令规划的路线前进并抵达目的地。
违规分数(Infraction score) :当自动驾驶车辆发生碰撞或违反交通规则时,违规分数会根据相应的折扣因子降低。这个指标主要用于评估自动驾驶系统在行驶过程中的安全性和遵守交通规则的程度。
驾驶分数(Driving score) :由路线完成率和违规分数相乘得出,综合描述了驾驶进展和安全性两个方面,是一个被广泛认可的用于对自动驾驶系统进行排名的指标。通过这个分数,可以更全面地评估不同自动驾驶系统在复杂场景下的综合性能。
测试路线类型
LangAuto Track:导航指令会根据自动驾驶智能体的位置实时更新。它包含三个子路线(Tiny/Short/Long),分别对应不同的路线长度,用于在不同行程距离下测试自动驾驶系统对导航指令的响应和执行能力。
LangAuto - Notice Track:在 LangAuto Track 的基础上,增加了提示指令,用于模拟在复杂场景下为自动驾驶系统提供实时帮助的情景,测试系统处理额外提示信息并做出正确反应的能力。
LangAuto - Sequential Track:将连续的指令合并为一个长指令,模仿现实世界中导航软件的指令形式,考验自动驾驶系统理解和执行复杂长指令的能力。
不同路线的对比分析
表格对 LangAuto Track 中的三个子路线(LangAuto、LangAuto - Short、LangAuto - Tiny)进行了对比:
平均行驶距离(Avg. Driving Distance):LangAuto 平均为 635.8 米,LangAuto - Short 为 305.9 米,LangAuto - Tiny 为 122.4 米,体现了各子路线的长度差异。
平均导航指令数量(Avg. Navigation Instructions):LangAuto 为 20.3 条,LangAuto - Short 为 10.8 条,LangAuto - Tiny 为 5.1 条 ,反映出随着路线长度缩短,导航指令数量相应减少。
平均提示指令数量(Avg. Notice Instructions):LangAuto 为 5.8 条,LangAuto - Short 为 3.3 条,LangAuto - Tiny 为 1.7 条,说明不同长度的路线在运行过程中所需的提示指令数量也有所不同。 这些数据有助于评估自动驾驶系统在不同路线复杂度下的性能表现。
性能指标
这张表格展示了在 LangAuto 基准测试中,6 种不同大语言模型(LLM)作为骨干网络时的性能对比以及消融研究结果,涉及的指标和解读如下:
指标说明:
DS(Driving score):驾驶分数,是路线完成率(RC)和违规分数(IS)的乘积,综合衡量自动驾驶系统的行驶进展和安全性,分数越高表示性能越好。
RC(Route completion):路线完成率,指已完成的路线长度占总路线长度的百分比,数值越高意味着系统在规划路线上行驶得越远。
IS(Infraction score):违规分数,反映自动驾驶系统遵守交通规则的程度,数值越高表示违规越少。
模型对比:
Random Init.(随机初始化):作为对比基线,其各项指标数值相对较低,说明未经训练或预训练的模型在自动驾驶任务中表现较差。
LLaMA、LLaMA2:是不同版本的大语言模型。在不同的 LangAuto 子路线(LangAuto、LangAuto - Short、LangAuto - Tiny)测试中,它们在各项指标上均明显优于随机初始化模型,且 LLaMA2 在部分指标上比 LLaMA 有一定提升。
Vicuna、Vicuna-v1.5:Vicuna 模型及其 v1.5 版本在不同路线测试中的表现也优于随机初始化,且 Vicuna - v1.5 在一些指标上略高于 Vicuna。
LLaVA-v1.5:在所有对比的模型中,LLaVA - v1.5 在多数指标上取得了最高的数值,表明该模型在基于语言指令的自动驾驶任务中综合性能相对更优。
关于 LMDrive 模型中不同模块设计的消融研究,对比分析了各模块对模型性能的影响:
上半部分
对比 LLaVA-v1.5 和 Vicuna-v1.5 在 LangAuto 和 LangAuto - Notice 基准测试中的表现,指标如下:
违规分数(Infraction Score):分数越高表示遵守交通规则越好。在 LangAuto - Notice 基准测试中,两款模型的违规分数均高于 LangAuto 基准测试,说明额外的提示指令有助于减少违规。
车辆碰撞(Vehicle Collisions)、行人碰撞(Pedestrian Collisions)、布局碰撞(Layout Collisions):数值越低表明碰撞情况越少。可以看到,在 LangAuto - Notice 基准测试中,这几项碰撞指标均有所降低,意味着提示指令提升了安全性。
闯红灯违规(Red light Violations)、驶离道路违规(Offroad Infractions)、道路堵塞违规(Blocked Infractions):数值越低代表违规情况越少。从数据可以看出,不同模型在不同基准测试中的违规情况有差异 ,但总体上 LangAuto - Notice 基准测试中的部分违规情况相对较少。
下半部分
对比 LLaVA-v1.5 和 Vicuna-v1.5 在 LangAuto 和 LangAuto - Sequential 基准测试中的表现,涉及驾驶分数(DS)、路线完成率(RC)和违规分数(IS):
LLaVA-v1.5:在 LangAuto 基准测试中的 DS 为 36.2,RC 为 46.5,IS 为 0.81;在 LangAuto - Sequential 基准测试中,DS 降至 34.0,RC 降至 43.7,IS 保持 0.81 ,说明合并连续指令的 LangAuto - Sequential 基准测试对其驾驶和路线完成能力有一定挑战。
Vicuna-v1.5:在 LangAuto 基准测试中的 DS 为 34.0,RC 为 39.0,IS 为 0.85;在 LangAuto - Sequential 基准测试中,DS 降至 31.9,RC 降至 37.1,IS 降至 0.84 ,同样显示出在 LangAuto - Sequential 基准测试中性能有下降。
训练过程可视化示例
备注:DriveLM相关研究
Awesome-DriveLM
A collection of resources and papers on Large Language Models in autonomous driving
BEVGPT: Generative Pre-trained Large Model for Autonomous Driving Prediction, Decision-Making, and Planning
Pengqin Wang, Meixin Zhu, Hongliang Lu, Hui Zhong, Xianda Chen, Shaojie Shen, Xuesong Wang, Yinhai Wang
AAAI 2024 [Paper]
ADAPT: Action-aware Driving Caption Transformer
Bu Jin, Xinyu Liu, Yupeng Zheng, Pengfei Li, Hao Zhao, Tong Zhang, Yuhang Zheng, Guyue Zhou, Jingjing Liu
DriveGPT4: Interpretable End-to-end Autonomous Driving via Large Language Model
Zhenhua Xu, Yujia Zhang, Enze Xie, Zhen Zhao, Yong Guo, Kwan-Yee. K. Wong, Zhenguo Li, Hengshuang Zhao
arXiv Oct. 2023. [Paper]
Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving
Long Chen, Oleg Sinavski, Jan Hünermann, Alice Karnsund, Andrew James Willmott, Danny Birch, Daniel Maund, Jamie Shotton
arXiv Oct. 2023. [Paper][Code]
GPT-Driver: Learning to Drive with GPT
Jiageng Mao, Yuxi Qian, Hang Zhao, Yue Wang
arXiv Oct. 2023. [Paper] [Code]
Drive Anywhere: Generalizable End-to-end Autonomous Driving with Multi-modal Foundation Models
Tsun-Hsuan Wang, Alaa Maalouf, Wei Xiao, Yutong Ban, Alexander Amini, Guy Rosman, Sertac Karaman, Daniela Rus
arXiv Oct. 2023. [Paper]
LanguageMPC: Large Language Models as Decision Makers for Autonomous Driving
Hao Sha, Yao Mu, Yuxuan Jiang, Li Chen, Chenfeng Xu, Ping Luo, Shengbo Eben Li, Masayoshi Tomizuka, Wei Zhan, Mingyu Ding
arXiv Oct. 2023. [Paper]
Drive Like a Human: Rethinking Autonomous Driving with Large Language Models
Daocheng Fu, Xin Li, Licheng Wen, Min Dou, Pinlong Cai, Botian Shi, Yu Qiao
arXiv July 2023. [Paper] [Code]
LINGO-1: Exploring Natural Language for Autonomous Driving
Wayve
[Website]