本文经自动驾驶之心公众号授权转载,转载请联系出处。
写在前面 && 笔者理解
大型语言模型(LLMs)的发展无疑是这几年人工智能领域的热潮,它们的应用范围已经逐步从经典的自然语言处理(NLP)任务,到了一些新兴场景,如基于LLM的智能体研究。而这篇文章,作者的研究重点之一,就是采用LLMs进行自动驾驶(LLM4AD),各种基于LLM的算法和技术不断增强自动驾驶技术的能力。
论文链接:https://arxiv.org/pdf/2410.15281v1
LLMs可以从高层次的决策制定过程到细致的低层次控制都能为自动驾驶系统做出贡献。在高层次上,LLMs可以积极参与调整驾驶模式或决策过程。可以想象一下,当你坐在一辆自动驾驶汽车中,你只需要抽象地表达你的感受,比如“我不想让我的朋友们等我。”然后LLM4AD系统解释你的情感,并相应地调整车辆的控制策略,与你当前的驾驶心情或偏好保持一致。相比之下,基于非LLM的系统缺乏从一些模糊的表达中准确理解或解释人类意图的能力。当然,这样的系统还有个优势就是可以持续学习,使其能够不断适应个人喜好和愿望,根据不同的用户改善驾驶体验。另一方面,在低层次上,LLMs在调整和控制过程中也可以发挥关键作用。LLMs可以将特定场景分析并把收集到的信息转换成指导低层次控制器的数学表示。另外,LLMs还可以从控制器接收输入数据,并提供性能更新,帮助人类分析控制环路的有效性,还可以潜在地建议改进或检测问题以增强整体性能。
说了这么多,总结一下LLMs应用在自动驾驶领域的优劣势吧:
Pros:
- 直观的语言交互:LLMs使得人与车辆之间的交流变得直观。人类可以表达抽象的命令和感受,而LLMs则能够准确捕捉人类表达背后的意图。
- 上下文理解和推理:LLMs提供从交通法规到事故报告等不同来源的上下文理解,从而确保生成的决策保证安全并遵循当地法规。
- 零样本和少样本规划:零样本泛化能力使得LLMs能够执行它们之前未曾受过训练的任务。这可以帮助解决处理一些很少见的corner cases。
- 持续学习和个性化:LLMs持续学习和适应,提供遵循个人用户偏好并随着时间改善驾驶体验的能力。
- 可解释性和信任:LLMs可以用自然语言解释它们的决策,改善自动驾驶系统与其用户之间的信任和理解。
Cons:
- 延时性可能不达预期:LLMs通常需要几秒钟来处理文本信息。这种延迟可能在需要立即、实时决策的情况下带来重大的安全问题和风险。
- 可能出现幻觉问题:“幻觉”是指LLMs生成的输出在事实上是错误的、无意义的或与输入提示无关的实例。由于自动驾驶是一项安全关键任务,幻觉可能会引入重大的安全和可靠性问题,可能破坏对LLM4AD系统的信任。
- 数据隐私和安全问题:因为LLMs收集和处理大量文本数据,包括可能关于其周围环境、乘客和驾驶偏好的敏感信息。
这篇论文主要介绍了作者将 LLM 集成到自动驾驶系统中的思路方法,从提出的概念和开放数据集的创建到在仿真和实车实验中的实现,都有相关的说明。
作者提出的LLM4AD的概念
作者提出LLMs扮演自动驾驶系统中决策“大脑”的角色。在作者的框架内,LLMs并不直接影响感知或定位模块,这些模块充当车辆的“眼睛”;相反,它们使用这些模块的输出作为参考来指导高层次的决策过程。通过接收来自这些模块的处理数据,LLMs可以增强知情决策,来提高自动驾驶车辆的性能。在下游,车辆的控制模块充当其“手”,执行从基于LLM的决策过程中获得的驾驶策略。
整体LLM4AD框架如图1所示。人类提供指令和评估,其中指令I和评估F以及历史记忆H、系统消息S和上下文信息C作为输入提供给LLMs。记忆模块存储对应于不同用户的人车交互的相应历史记录H。在接收到这些输入后,LLMs进行推理并产生输出,包括生成的语言模型程序(Language Model Programs, LMPs)P和推理思想R。生成的LMP被发送到执行器在环境中执行,而推理思想帮助LLMs生成更合理的驾驶策略。不过要注意的是,这是一个通用概念,具体实现可能因不同应用而异。
人类指令和评估
人类的指令I和评估F直接以自然语言形式输入到LLMs中。I包括人类对自动驾驶智能体的期望需求,而人类的评估F是对这些驾驶策略有效性的反馈。
系统消息
系统消息S是在对话或任务开始时向LLM4AD系统提供指令或上下文的一种方式。自动驾驶任务中的系统消息S就像一套高层次的指导方针或规则。这些高层次的系统消息包括任务定义、遵守交通规则、描述决策状态和总体目标或优化指标。它们作为指导自动驾驶车辆在路上行为和决策过程的基础框架。如果没有精心设计的系统消息,LLMs可能会做出错误的假设或无意的策略。
情境描述符
情境描述符将当前的驾驶上下文C转换成文本描述。它的目的是为LLMs提供情境感知和对当前驾驶场景的全面表示,使它们能够在当前交通情况下做出适当的决策。这可能包括诸如“您位于双车道高速公路的最左车道”或“一辆车位于您当前位置前方50米处”的描述性语句。描述符将不同道路使用者和自车之间复杂的空间和时间关系直观地转换成自然语言格式,允许上下文信息被LLMs推理。
历史记忆和记忆模块
记忆模块存储不同用户的配置文件,以增强所有用户的驾驶体验。每当人类用户使用LLM4AD系统时,系统会记录与该用户相关的相关历史交互H。随后,当前人类用户的历史数据被传输到LLMs作为输入。这个特定的历史交互H作为当前用户偏好的参考点,因此指导系统改善用户体验。每次行程结束后,交互数据将在记忆模块中的相应配置文件中更新。
大型语言模型
LLMs作为作者框架中的核心模块,将接收上述所有输入,并生成文本输出(语言模型程序LMPs P和推理思想R)。值得一提的是,作者采用了思维链提示技术,它作为一个指导信号,确保与类人推理和实际驾驶考虑的一致性。思维链向LLMs提供了一系列推理示例,填补了现有的知识空白。通过提供一系列逻辑和连接的步骤,LLMs可以更有效地在复杂的驾驶场景中表现良好。
生成程序
LLMs的一个关键输出是生成的LMPs P,由可执行代码组成。这些代码用于影响环境中自车智能体的驾驶行为,它们不仅能够推广到新的自然语言命令,而且还可以基于模糊的语言描述(例如,“快点”、“向左转”)提供精确的数值,如根据驾驶上下文的速度。
输出思想
通过采用思维链提示,LLMs不仅生成程序代码,还提供了用于达到解决方案的思考过程的逐步解释。这些思维链代表了LLMs在做出每个决策背后的推理,例如“由于命令是‘快点’,我将增加目标速度”或“要向左转,我需要根据当前速度调整转向角度。”输出的思想R伴随着生成的程序P,提供了LLMs如何在驾驶情境描述的上下文中解释自然语言命令以产生精确的控制值,如速度或转向角度。这种输出思想提高了LLM4AD系统决策过程的透明度和可解释性。
执行器
执行器充当LLMs文本输出与当前自动驾驶策略之间的桥梁。它从LLMs中取出生成的LMPs P并在相应环境中执行。这允许代码与自车的当前状态进行交互,并使生成的程序能够在真实或仿真环境中部署其预期的驾驶行为。在作者的范围内,不同的自动驾驶系统将在它们各自的执行器中有所不同地执行这些代码。
作者提出的LLM4AD的基准数据集
作者提出了第一个评估基于LLM的智能体在自动驾驶中指令跟随能力的标准基准测试——LaMPilot-Bench。LaMPilot-Bench由三个关键部分组成:仿真器、数据集和评估器。
仿真器
作者扩展了HighwayEnv,增加了适合基于LLM的智能体的接口,并实现了自定义交叉路口,以多样化驾驶场景。
数据集
LaMPilot数据集由4900个半人工标注的交通场景组成,其中500个样本作为测试集。每个数据样本包括:
- 一个指令I:一个高层次的任务描述。
- 一个初始状态:用于初始化仿真器。
- 与指令I一致的目标状态标准。
数据集涵盖了多样化的驾驶场景,对于每个驾驶场景,LaMPilot包括多种情况。以转弯场景为例,多样性反映在如自车的初始位置和状态、特定任务(左转/右转或直行)、其他车辆的数量以及它们的位置和状态等多个变量中。其他车辆的驾驶模型参数是随机初始化的,每个场景都被分配一个随机种子。数据集还包括反映现实车内人类命令的各种指令,按操作类型(例如,路线规划、变道、超车)和场景类型(高速公路和交叉口)分类。
评估器
LaMPilot-Bench评估器包含了评估智能体驾驶策略安全性和效率的指标。碰撞时间(Time-to-collision, TTC)用于衡量车辆保持安全距离和避免碰撞的能力。速度方差(Speed variance,SV)被认为是另一个安全指标。时间效率( time efficiency,TE)得分评估策略在预定义的时间限制Tlimit内完成任务的能力。其具体计算方法详见论文。
当智能体在保持安全(即,避免碰撞)和效率(即,在规定时间内完成)的同时实现了指令中指定的目标时,认为任务成功完成。例如,当车辆在目标车道内并且其方向与车道方向一致时,且在指定阈值内,变道任务即算完成。最终得分根据其重要性加权汇总所有单独指标。
基线
作者设置了启发式基线、零样本和少样本基线、人类反馈基线三种baselines,来对模型进行分析。
定量结果
作者在LaMPilot-Bench上展示了各种方法的实验结果,总结了启发式基线、零样本和三样本基线以及人类反馈基线的性能。
实验表明,现成的LLM能够根据人类指令为驾驶任务生成代码策略。然而,显著的碰撞率表明需要进一步的研究来完全捕捉现实世界驾驶场景的复杂性和安全要求。
作者做的LLM4AD的仿真研究
仿真设置
仿真是开发和评估自动驾驶系统的关键工具,使研究人员能够安全高效地探索多样化的驾驶场景并收集训练数据。在这项工作中,作者利用CARLA仿真器来开发和评估作者提出的将LLMs集成到自动驾驶中的框架。其中使用三个关键指标评估智能体性能:
- 路线完成率(RC):衡量智能体完成路线距离的百分比
- 违规处罚(IP):跟踪智能体犯下的各种违规行为(例如,碰撞、闯红灯)作为几何级数,从理想的基础分数1.0开始,每次违规都会减少
- 驾驶得分(DS):RC和IP的乘积,作为主要评估指标
Human-in-the-Loop Learning
本节的主要研究目标是开发一个人类引导的学习流程,使自动驾驶智能体能够不断地从自然语言中的人类反馈中学习和改进。虽然作者的实验是使用CARLA进行的,并使用Python进行代码生成,但核心方法并不局限于这个特定设置,可以适应其他环境和编程语言。表IV提供了LMP生成过程的示例。作者引入了一种基于检索增强生成(RAG)的人类在回路学习方法。这种方法使LLM在生成输入查询的响应时使用定制的知识数据库。关键过程如下:在执行生成的策略代码(P)之后,人类乘客提供自然语言反馈(F),这些反馈连同P一起被反馈到LLM中。这个反馈循环使持续学习成为可能。如果反馈是积极的(即,人类对执行感到满意),代码(P)将提交到数据库以供将来检索和重用。否则,反馈将作为迭代改进的指导。新的生成过程可以被表述为:
其中P'是基于原始代码P和人类反馈F改进的代码。数据库有两个目的:(1)作为一个自动驾驶知识库,它为持续学习提供了对角落案例的洞察,符合知识驱动的自动驾驶范式;(2)由于数据库是使用个性化反馈构建的,它自动将个人偏好纳入交互过程中。这种方法将框架从静态的开环系统转变为动态的、持续学习的系统。
结果
作者使用OpenAI的GPT模型API(gpt-4-turbo-preview和gpt-3.5-turbo)作为规划器中的LLM。表5展示了一些对比结果,基于这些结果,作者观察到:
- 没有少样本示例,现成的LLM在CARLA中精确推理所需的复杂闭环驾驶方面挣扎。
- 三样本基线也不足,根据CARLA的标准指标,得分显著降低。
- 作者的框架通过从人类反馈中学习到的50个代码片段,表现与Roach Expert强化学习基线相当。
- 大多数失败源于LLM低级规划频率的权衡。
LLM4AD的实车实验
为了进一步评估LLM4AD系统的有效性并验证其在现实世界场景中的适用性,作者将LLMs集成到实际的自动驾驶系统中,引入了一个名为Talk2Drive的框架。演示视频可见(https://youtu.be/4BWsfPaq1Ro)。
Talk2Drive框架
作者提出了Talk2Drive(见图3),这是一种创新的方法,利用LLMs来增强命令解释能力,并在自动驾驶车辆中启用个性化决策制定。它集成了基于云的LLMs,以实现个性化理解和将人类命令转化为实时车辆动态输入的可执行控制序列。这一节首先从问题陈述开始,然后阐述每个云侧和车辆侧操作的独特角色。
Talk2Drive系统主要有以下几个步骤,其流程图见图4。
- 云基LLMs:Talk2Drive框架使用基于云的LLMs来处理和理解人类的口头指令,并将其转化为车辆的可执行控制序列。
- 命令翻译:通过使用语音识别技术,人类的口头命令被转换成文本指令,LLMs进一步将这些指令翻译成具体的驾驶操作。
- 上下文数据集成:LLMs同时访问实时的环境数据,如天气、交通状况和当地交通规则,以提供更准确的驾驶决策。
- 个性化驾驶体验:通过存储和分析过去的交互历史,LLMs能够学习驾驶员的偏好,并根据这些信息调整驾驶策略。
- 记忆模块:该模块记录了用户的命令、系统响应和用户反馈,使系统能够根据用户的历史行为和偏好提供个性化的驾驶体验。
- 安全和效率:Talk2Drive框架在执行LLMs生成的控制命令时,会进行安全检查,确保生成的代码既符合格式要求,也考虑到了安全性和实际可行性。
- 实时反馈和迭代学习:系统允许用户对执行的命令提供反馈,这些反馈被用来不断改进LLMs的性能,实现持续学习和优化。
- 执行器的角色:生成的可执行代码(LMPs)被发送回车辆的电子控制单元(ECU),由ECU执行,以控制车辆的实际驾驶行为。
实验及结果
实验包括三种不同的场景:高速公路、交叉口和停车场。关于输入指令,有三种Level,表6给出一些例子:
作者对自动驾驶系统的评估指标,包括驾驶性能、时间效率和个性化的接管率三个方面,具体计算方法可见论文。
表7展示了路测的驾驶性能指标,除了高速场景的overtake指标,均有提升。
表8展示了不同场景下接管率的性能指标,也均有提升。
结论
作者全面探讨了LLM4AD,即大型语言模型(LLMs)在自动驾驶中的应用。作者的研究突出了LLMs在增强自动驾驶车辆技术的各个方面,从感知和场景理解到语言交互和决策制定的重要潜力。通过利用LLMs的自然语言理解和推理能力,作者展示了它们增强自动驾驶车辆的安全性、效率和用户体验的能力。此外,作者介绍了一个专门设计的全面基准测试,用于评估LLMs在自动驾驶领域的指令跟随能力。作者在模拟和真实车辆平台上进行的实验表明了作者提出的基于LLM的方法的有效性。这些发现强调了LLMs对自动驾驶技术未来的影响,使其更安全、更智能、更易于所有人使用。