Bootstrap

论文阅读: DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models

DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models

论文链接:https://arxiv.org/abs/2309.16292

💡摘要

自动驾驶的最新进展依赖于数据驱动的方法,这些方法被广泛采用,但面临着数据集偏差、过度拟合和不可解释性等挑战。从人类驾驶的知识驱动本质中汲取灵感,我们探索了如何将类似的功能注入自动驾驶系统的问题,并总结了一个集成交互环境、驾驶员代理和记忆组件的范例来解决这个问题。利用具有涌现能力的大型语言模型(LLM),我们提出了 DiLu 框架,该框架结合了推理和反射模块,使系统能够基于常识知识进行决策并不断发展。大量实验证明DiLu具有积累经验的能力,并且在泛化能力上比基于强化学习的方法具有显着优势。此外,DiLu能够直接从现实世界的数据集中获取经验,这凸显了其部署在实际自动驾驶系统上的潜力。据我们所知,我们是第一个从人类如何驾驶的角度向自动驾驶系统灌输知识驱动能力的人。

📉背景

近年来,在数据驱动方式的推动下,自动驾驶取得了显着的进步(Bogdoll 等人,2021;Chen 等人,2023a;b)。这些数据驱动的算法努力捕获和建模累积数据的底层分布(Bolte et al., 2019;Zhou & Beyerer, 2023),但它们总是遇到数据集偏差、过度拟合和不可解释性等挑战(Codevilla et al., 2019) .,2019;Jin 等人,2023)。这种现象不可避免地导致数据驱动方法的边际性能。 (Heidecker 等人,2021;Chen 等人,2022)。

从 LeCun(2022)提出的深刻问题中汲取灵感:“为什么青少年可以在大约 20 小时的练习中学会驾驶汽车,并知道如何在许多他/她以前从未遇到过的情况下采取行动?”,我们探索了构成人类驾驶技能基础并提出关键区别的核心原则:人类驾驶从根本上来说是知识驱动的,而不是数据驱动的。例如,当面临前方卡车有丢失货物危险的情况时,人类可以依靠常识和可解释的推理来确保车辆之间保持安全距离。相比之下,数据驱动方法依赖大量相似数据来适应这种场景,缺乏环境理解并限制了其泛化能力。此外,由于迭代多样化且不可预测的驾驶场景的复杂挑战,这项任务对于自动驾驶系统来说尤其艰巨且昂贵。这一观察引发了一个基本问题:我们如何将人类驾驶员的这种知识驱动能力灌输到自动驾驶系统中?
具有新兴能力的大型语言模型(LLM)的最新进展提供了人类知识的理想体现,为解决这个问题提供了宝贵的见解。LLM拥有人类水平的卓越能力,并在机器人操作(Driess et al., 2023a; Huang et al., 2023b;a)、多模态理解(Gao et al., 2023)和终身技能学习方面表现出很强的能力( Wang 等人,2023;Zhu 等人,2023b)。然而,就像人类可能需要20个小时的练习才能学会驾驶一样,LLM在没有任何经验或指导的情况下无法成功执行驾驶任务。通过这些分析,我们总结了自动驾驶系统的知识驱动范式,如图1所示,包括三个组成部分:(1)智能体可以交互的环境; (二)具有回忆、推理、反思能力的驾驶员代理人; (3) 持续经历的记忆成分。在不断的演变中,驾驶员代理观察环境,从记忆组件中查询和更新经验并执行决策。
在这里插入图片描述

图1:自动驾驶系统的知识驱动范式,包括交互环境、具有回忆、推理和反思能力的驾驶员代理以及独立的存储模块。驾驶员代理不断发展以观察环境、查询、更新内存模块的经验,并做出控制自我车辆的决策。

遵循上述范例,我们设计了一个名为 DiLu 的新颖框架,如图 2 所示。具体来说,驾驶员代理利用推理模块从记忆模块中查询经验,并利用 LLM 的常识知识来生成基于就目前的情况而言。然后,它使用反思模块来识别推理模块产生的安全和不安全决策,随后使用LLM中嵌入的知识将它们细化为正确的决策。然后,这些安全或修订的决策将被更新到内存模块中。
在这里插入图片描述

DiLu的框架。它由四个模块组成:环境、推理、反思和记忆。在DiLu中,推理模块可以观察环境,结合记忆模块中的场景描述和经验生成提示,并解码LLM的响应以完成决策。同时,Reflection模块对这些决策进行评估,识别出对体验不安全的决策,最后将修改后的体验更新到Memory模块中。

大量实验表明,所提出的框架 DiLu 可以利用 LLM 为自动驾驶系统做出正确的决策。我们设计了一个闭环驾驶环境,并证明DiLu凭借内存模块中积累的经验可以表现得越来越好。值得注意的是,DiLu 仅使用 40 个记忆项,就实现了与基于强化学习 (RL) 的方法相当的性能,后者已广泛训练了超过 600,000 集,但具有有效泛化到不同场景的能力。此外,DiLu 直接从现实数据集中获取经验的能力凸显了其部署在实际自动驾驶系统上的潜力。

我们的工作贡献总结如下:

  1. 据我们所知,我们是第一个从人类如何驾驶的角度向自动驾驶系统灌输知识驱动能力的人。因此,我们引入了一种新颖的范例,其中涉及交互环境、驱动程序代理以及内存组件

  2. 我们提出了一个名为 DiLu 的框架来实现这种范例来解决闭环驾驶任务。该框架包含一个内存模块来记录经验,并利用 LLM 来促进推理和反思过程。

  3. 大量的实验结果展示了DiLu通过与环境交互不断积累经验的能力。此外,DiLu比基于强化学习的方法表现出更强的泛化能力,并展示了在实际自动驾驶系统中应用的潜力。

RELATED WORKS

2.1 ADVANCEMENTS IN LARGE LANGUAGE MODELS

大型语言模型(LLM)是基于 Transformer 的语言模型的一类,其特点是参数数量巨大,通常数量达到数千亿甚至更多。这些模型在大量文本数据集上进行训练,使它们能够理解自然语言并主要通过文本生成和理解来执行各种复杂任务(Zhao et al., 2023)。 LLM 的一些众所周知的示例包括 GPT3(Brown 等人,2020)、PaLM(Chowdhery 等人,2022)和 LLaMA(Touvron 等人,2023)、GPT4(OpenAI,2023b)。LLM的新兴能力是其区别于小型语言模型的最重要特征之一。具体来说,情境学习(ICL)(Brown et al., 2020)、指令跟随(Ouyang et al., 2022;Wei et al., 2021)和链式推理(CoT)(Wei et al., 2021) 2023)是LLM的三种典型的新兴能力。 OpenAI 对LLM的追求实现了两个非凡的里程碑:ChatGPT(OpenAI,2023a)和 GPT-4(OpenAI,2023b)。这两个里程碑标志着LLM能力的重大进步,特别是在自然语言理解和生成方面。值得注意的是,大型LLM的最新发展展示了类人智能,并有潜力推动我们更接近通用人工智能(AGI)领域(Zhao et al., 2023; Zhu et al., 2023a)。

2.2 ADVANCED TASKS BASED ON LARGE LANGUAGE MODEL

由于LLM嵌入常识知识的卓越能力,它们被广泛应用于各种任务(Sammani et al., 2022; Bubeck et al., 2023; Schick et al., 2023)。此外,还出现了一个新兴的研究领域,利用LLM创建具有类人能力的自主代理(Chowdhery 等人,2022;Yao 等人,2022;Park 等人,2023;Fu 等人,2023) ;朱等人,2023b)。特别是,LLM被证明拥有丰富的可操作知识,可以以推理和规划的形式提取这些知识用于机器人操作。例如,(Driess et al., 2023b)提出了体现语言模型,将现实世界的连续传感器数据直接集成到语言模型中,在单词和感知信息之间建立直接联系。 Voyager(Wang et al., 2023)通过结合提示机制、技能库和自我验证引入了终身学习。这三个模块均以LLM为基础,使代理能够学习更复杂的行为。类似地,Voxposer(Huang et al., 2023b)利用 LLM 为各种操作任务生成机器人轨迹,并由开放式指令和对象引导。与此同时,在 AGI 的见解和嵌入式人工智能原理的推动下(Pfeifer & Iida,2004;Duan 等人,2022),自动驾驶领域也正在经历深刻的变革。 Wayve (2023) 提出了一种开环驾驶评论器 LINGO-1,它结合了视觉、语言和动作来增强如何解释和训练驾驶模型。LLM在各个领域都表现出了卓越的人类水平的能力,但我们观察到他们缺乏像人类一样参与和理解复杂驾驶环境的固有能力。相比之下,自动驾驶汽车依赖于能够主动与驾驶环境交互并了解驾驶环境的系统。为了弥补这一差距,我们提出了一种新颖的知识驱动的自动驾驶范式和 DiLu 框架,使LLM能够通过融入人类知识来理解驾驶环境和驾驶。

📚METHODOLOGY

3.1 OVERVIEW

基于前面介绍的自动驾驶系统的知识驱动范式,我们提出了一个名为 DiLu 的实用框架,如图 2 所示。DiLu 由四个核心模块组成:环境、推理、反射和内存。特别是,推理模块首先观察环境并获取当前场景的描述。同时,使用提示生成器将该场景描述与从记忆模块检索的类似情况的少数经历相结合。然后,这些提示被输入开箱即用的大型语言模型 (LLM),决策解码器通过解码 LLM 的响应来采取行动。

该过程在推理模块内迭代,从而产生时间序列决策序列。随后,我们使用 Reflection 模块来评估过去的决策序列,将它们分类为安全或不安全。不安全的决策被修改,这些精细的决策最终被更新回内存模块。记忆、推理和反思模块的详细实现将在下面的章节中详细阐述。

3.2 MEMORY MODULE

如果没有少量的经验,开箱即用的LLM在处理复杂的闭环驾驶任务时无法执行精确的推理。因此,我们采用内存模块来存储过去驾驶场景的经验,其中包括决策提示、推理过程和其他有价值的信息。与人类驾驶员类似,智能体应该依靠推理过程和对之前遇到的类似驾驶情况的考虑来做出决策。为了检索过去的场景,我们将文本场景描述转换为向量,作为记忆模块中衡量相似性的关键,该模块由向量数据库构建(Johnson et al., 2019)。记忆模块使LLM能够记住和回忆驾驶经历。然而,就像人类在开始驾驶之前需要从驾校学习基础驾驶知识一样,我们需要在初始化内存模块时向LLM教授基本的决策过程。为了确保记忆模块中知识的一致性,我们采用“几次”的方法来教授LLM这一基本决策过程。这涉及人类首先根据场景描述建立全面的决策过程。然后,这些进程将作为“少数”添加到内存模块中,从而完成其初始化。

3.3 REASONING MODULE

在推理模块中,我们利用记忆模块的经验和LLM的常识知识来针对当前的交通场景进行决策。具体地,推理过程如图3所示,包括以下过程: (1)通过描述符对场景进行编码; (2)回忆记忆模块中的一些经验; (3)生成提示; (4) 将提示输入LLM; (5) 从 LLM 的回答中解码行动。
在这里插入图片描述

图 3:推理模块。我们利用LLM的常识知识并查询记忆模块中的经验,根据场景观察做出决策。

**通过描述符对场景进行编码:**为了便于DiLu了解当前的交通状况,场景描述符将当前的场景数据转录为描述性文本。如图4(a)所示,场景描述符遵循标准句子结构,并利用自然语言来全面描述正在进行的驾驶场景。该描述包含静态道路详细信息以及有关场景内自我车辆和周围车辆的动态信息。然后,这些生成的描述将用作提示生成器的输入,并用作从内存模块获取相关的小镜头体验的密钥。

回忆一下Memory模块的几个经验:在推理过程中,当前驾驶场景的描述也被嵌入到一个向量中,如图3所示。然后使用这个向量在Memory模块中发起相似性查询,搜索前k个类似的情况。由此产生的配对场景描述和推理过程组装为少量体验,然后集成到提示生成器中。

生成提示:如图 3 中的蓝色虚线框所示,每帧的提示由三个关键组成部分组成:系统提示、场景描述符的文本描述以及小镜头体验。在系统提示中,我们提供了闭环驾驶任务的简明概述,其中包括任务输入和输出的内容和格式的介绍,以及控制推理过程的约束。在每个决策框架中,我们都会根据当前的驾驶场景构建量身定制的提示。 LLM 随后使用这些提示进行推理并确定当前框架的适当操作。详细提示见附录A.2。

**将提示输入LLM:**由于闭环驾驶任务需要复杂的推理过程才能做出正确的决策,因此我们采用了Wei等人引入的思想链(CoT)提示技术。 (2023)。这些技术需要LLM生成一系列句子来描述逐步的推理逻辑,最终得出最终的决定。采用这种方法是因为驾驶场景固有的复杂性和可变性,如果语言模型直接产生决策结果可能会导致幻觉。此外,生成的推理过程有助于后续反射模块进一步细化和修改不正确的决策,这将在 3.4 节中进一步阐述。

**从 LLM 的响应中解码操作:**将提示输入 LLM 后,我们在操作解码器中解码最终决策,如图 4 (b) 所示。动作解码器将 LLM 的决策结果转换为自我车辆的动作,并向环境提供反馈。通过重复上述过程,我们建立了一个由LLM驱动的闭环决策系统。
在这里插入图片描述

图 4:(a) 由场景描述符生成的文本场景描述,(b) 决策解码器使用 LLM 推理的输出对动作进行解码。

3.4 REFLECTION MODULE(反射模块)

在推理模块中,我们使用LLM在所提出的内存模块的支持下承担闭环驱动任务。下一步我们希望在驾驶结束后积累宝贵的经验并丰富记忆模块。为了实现这一目标,我们在 DiLu 中提出了 Reflection 模块,它不断地从过去的驾驶经验中学习。 DiLu可以通过Reflection模块逐步提高其性能,类似于新手成为经验丰富的驾驶员的过程

Reflection模块如图5所示。在闭环驾驶任务期间,我们根据驾驶场景记录用作输入的提示以及LLM为每个决策帧生成的相应决策。一旦驾驶会话结束,我们就获得了一个决策序列,例如图 5 中从 0 到 4 的 5 个决策帧。当会话结束而没有任何碰撞或危险事件时,表明会话成功,DiLu 继续从以下几个关键决策帧中采样序列。这些帧将直接成为历史驾驶体验的一部分并丰富记忆模块。

在这里插入图片描述

图 5:反射模块。 Reflection模块将闭环驾驶任务中记录的决策作为输入,利用总结和校正模块来识别安全和不安全的决策,然后通过LLM中嵌入的人类知识将其修改为正确的决策。最后,这些安全的或修改的决策被更新到内存模块中。

相反,如果当前会话由于与其他车辆碰撞等危险情况而终止,则表明驾驶员代理做出了不准确的决定。纠正推理模块做出的不安全决策对于系统至关重要。借助可解释的思维链响应,我们可以轻松找到危险情况的原因。当然,我们可以请人类专家来完成这样的纠错过程。然而,我们的目标是让自动驾驶系统能够自己从错误中学习。我们发现LLM可以有效地充当错误纠正者。我们的方法是使用发生错误决策的驾驶场景以及原始推理输出作为LLM的提示。我们指示LLM查明错误决定背后的原因并提供正确的决定。我们还要求LLM提出策略,以避免将来出现类似错误。最后,正确的推理过程和从错误中学到的修正决策被保留在记忆模块中。

❗EXPERIMENTS

4.1 Settings

在我们的实验设置中,我们利用成熟的 Highway-env 作为我们的模拟环境,它是自动驾驶和战术决策领域广泛使用的平台(Leurent,2018)。该环境提供了多种驾驶模型并提供了真实的多车辆交互环境。此外,环境中的车辆密度和车道数量可以自由调节。 Highway-env 的详细设置参见附录 A.1。在我们的DiLu框架中,我们采用的大语言模型是OpenAI开发的GPT家族。 GPT-3.5(OpenAI,2023a)用于框架的推理模块,负责为自我车辆做出合理的决策。 GPT-4 被用于 Reflection 模块,因为与 GPT-3.5 相比,它显示出显着改进的自我修复和事实检查能力(Bubeck 等人,2023;Olausson 等人,2023)。为了作为 DiLu 框架中的 Memory 模块,我们采用开源嵌入向量数据库 Chroma1。使用 OpenAI 的 text-embedding-ada-002 模型将场景描述转换为向量。 DiLu管道的演示视频附在补充材料中

4.2 THE VALIDATION OF THE DILU FRAMEWORK

在本节中,我们主要关注验证DiLu框架的有效性,特别是有或没有Memory模块的推理和反射过程。没有Memory模块的DiLu框架被称为0-shot基线,我们用1-shot、3-shots和5-shots经验进行对比实验,以证明经验积累的必要性。初始记忆模块包含 5 种人造体验。然后将这些经验用于不同的少镜头设置中进行推理和反思,从而实现经验的不断积累和更新。我们在Memory模块分别有5、20、40次体验时进行对比实验。每个设置用不同的种子重复 10 次。

结果如图 6 (a) 中的箱线图所示。**成功步数(SS)**是没有碰撞的连续帧数,SS 为 30 意味着本车已完成驾驶任务。我们发现,随着 Memory 模块中经验数量的增加,DiLu 框架的性能在所有的少样本设置中都得到了提高。值得注意的是,5次设置在20次体验场景下的大部分情况下都成功完成了闭环驾驶任务。此外,当内存模块配备 40 条经验时,所有试验的中值 SS 都超过 25。相比之下,当框架缺少内存模块并运行 0-shot 实验时,没有任务成功执行,中值 SS 为低于5。这表明LLM不做任何适配就无法直接执行闭环驱动任务。
在这里插入图片描述

图 6:(a) 不同记忆模块经验和不同少样本数的定量实验。值得注意的是,5 次设置可通过 20 和 40 个内存项实现最多 (30) 个模拟步骤。 (b) 使用 20 个内存项在不同流量密度环境下进行泛化实验。

此外,我们观察到,对于固定数量的内存项,框架的性能随着小样本体验数量的增加而提高。具体来说,在 40 个内存项的情况下,5-shot 框架成功通过了几乎所有测试,而 3-shot 和 1-shot 框架的中值 SS 分别为 27 和 25。这可以归因于这样一个事实:更多的小镜头包含了类似驾驶场景中的不同体验。当作为提示输入LLM时,这些可以让LLM利用更广泛的信息和决策策略,从而促进更理性的决策。几个详细的案例研究可以在附录 A.3 中找到。

4.3 COMPARISON WITH REINFORCEMENT LEARNING METHOD

我们在 DiLu 和最新最先进的强化学习 (RL) 方法 GRAD (Xi & Sukthankar, 2022) 之间进行了比较实验,该方法被插入到近端策略优化 (PPO) (Schulman et al., 2017)作为政策和价值网络共享的特征提取器。 GRAD 通过使用全局的通用表示在高速公路环境中实现了有希望的性能。我们在车道4-密度-2的设置下训练GRAD,这意味着车辆密度为2.0的4车道高速公路场景。培训详情参见附录 A.4 和 A.5。作为对比,DiLu 使用了 40 条纯粹从 Lane-4-Density-2 设置中获得的经验。我们将**成功率(SR)**定义为在 30 个决策帧内没有发生任何碰撞的驾驶,然后在三种环境设置下进行实验:lane-4-density-2、lane-5-density-2.5 和lane-5-density-3 。每个设置包括 10 个具有不同种子的测试场景。

结果如图 7 (a) 所示。首先,在lane-4-density-2设置中,DiLu仅使用Memory模块中的40个经验就实现了70% SR,而GRAD在600,000个训练集后收敛到69% SR。我们发现GRAD的很多故障都是因为刹车不及时,导致与前车相撞。这是因为强化学习方法倾向于适应环境,而未能考虑到类人的驾驶知识。
在这里插入图片描述

图 7:(a) 在不同类型的高速公路环境中与 GRAD 的性能比较。这两种方法仅在lane-4-density-2设置上进行优化,并分别在lane-4-density-2、lane-5-density-2.5和lane-5-density-3上进行评估。 (b) 利用不同领域的经验进行实验。

其次,我们将在 Lane-4-density-2 上优化的 DiLu 和 GRAD 迁移到 Lane-5-density-2.5 和 Lane-5-density-3 设置。我们观察到,随着车道数量的变化和交通密度的增加,这两种方法在迁移的环境中都会遭受不同程度的性能下降。然而,在最复杂的lane-5-density-3环境中,DiLu在没有额外优化的情况下仍然保持了35%的SR,而GRAD则有85%的性能下降。这表明DiLu在一种环境中积累的经验可以推广到另一种环境中。但基于强化学习的方法往往会过度适应训练环境。

4.4 EXPERIMENTS ON GENERALIZATION AND TRANSFORMATION(泛化和变换实验)

数据驱动的方法通常过度适应训练环境,而人类知识应该与领域无关,并且可以推广到不同的环境。我们进行了多项实验来评估 DiLu 的泛化和转换能力。

**不同环境下的泛化能力。**我们验证DiLu的Memory模块中获得的经验是否具有泛化能力。更正式地说,我们使用了从lane-4-density-2环境中获得的20个经验,并在lane-5-density-3设置中进行了实验,分别测试了3-shot和5-shot的闭环性能。实验结果如图6(b)所示。正如我们所看到的,DiLu 的 3-shot 版本在 Lane-4-density-2 设置下实现了 13 个中值 SS,而在 Lane-5-density-3 设置下降低到 5 个介质 SS。但在 5-shot 版本中,我们在相同情况下实现了 30→23 中值 SS 退化。这表明,将更多的少量经验输入到LLM中,泛化能力会更好。

**使用真实世界数据集的转换能力。**由于 DiLu 的内存模块以自然语言文本的形式存储经验,因此它包含与环境无关的知识,可以轻松转移到不同的环境。为了说明这种功能,我们创建了两个内存模块,每个模块包含从两个不同来源提取的 20 条经验:(1) Highway-env 和 (2) CitySim,一个包含现实世界车辆轨迹数据的数据集(Zheng 等人,2023) 。我们随后在 Highway-env 环境中的 Lane-4-density-2 和 Lane-5-密度-3 场景中评估了这些模块。实验结果如图7(b)所示。与没有任何先前经验的系统(由灰色点划线表示)相比,CitySim 提供的知识增强了 DiLu 的性能。此外,当将经验转移到更拥挤的环境(从lane-4-density-2到lane-5-density-3)时,与仅在模拟域内积累的内存相比,从真实世界数据派生的内存表现出卓越的鲁棒性。

4.5 EFFECTIVENESS OF TWO MEMORY TYPES IN THE REFLECTION MODULE(反射模块中两种存储器类型的有效性)

在本节中,我们通过消融研究探讨将成功经验和修订的不安全经验纳入反思模块的意义。我们采用包含20个初始经验的Memory模块,并观察新内存积累过程中的性能变化。结果如表 1 所示。基线表示使用具有 20 次初始体验的内存模块的系统。然后我们依次将12个成功记忆和6个校正记忆添加到基线中。在实验中,基线的中位成功步数仅为 10。然而,在更新新的经验后,所有两种方法都实现了超过 20 的中位成功步数,并且具有两种类型经验的方法在所有统计上都显示出更高的成功步数。措施。因此,在反思过程中加入两种不同类型的体验是合理且有效的。
在这里插入图片描述

表 1:反射模块中两种记忆类型对成功步骤的有效性。 MIN、Q1、Median、Q3、MAX 表示四分位数统计评价

Conclusion

在本文中,我们深入研究了将人类水平的知识灌输到自动驾驶系统中的领域。我们总结了知识驱动的范式,并提出了 DiLu 框架,其中包括用于记录过去驾驶经验的内存模块和配备推理和反射模块的代理。大量的实验结果表明,与基于 SOTA RL 的方法相比,DiLu 能够不断积累经验,并展现出强大的泛化能力。此外,DiLu 直接从现实数据集中获取经验的能力凸显了其部署在实际自动驾驶系统上的潜力。

📝附录

A.1 HIGHWAY-ENV 的详细设置

在highway-env的设置方面,我们直接从底层模拟中获取车辆信息并将其输入到场景描述符中。这些信息仅包括当前帧中每辆车的位置、速度和加速度数据,没有任何决策意图或潜在风险信息,如图4(a)和图8所示。meta-actions在我们的模型中用作决策输出。实验,其中包括控制自我车辆的五个离散动作:加速、保持速度、减速以及向左和向右变道。对于每个闭环驾驶任务,我们定义成功完成时间为30秒,决策频率为1Hz。这意味着,如果自我车辆能够以合理的速度在交通中行驶并且在 30 秒内没有发生碰撞,我们认为任务已成功完成。除非另有说明,我们的实验环境是四车道高速公路,车辆密度为2.0,代表交通密度和复杂性相对较高的场景。所有其他设置均遵循模拟器的默认配置。
在这里插入图片描述

图8:推理模块的提示模板。灰色框中的提示是固定的,而彩色框中的提示根据当前场景而有所不同。

A.2 PROMPTS EXAMPLE

本节我们详细介绍推理和反思模块中的具体提示设置。

推理提示 正如文中提到的,推理模块的提示主要由三部分组成:系统提示、场景描述、few-shot experience。具体来说,如图8所示,系统提示部分是完全固定的,主要包括闭环驱动任务的介绍、输入输出说明以及LLM回答的格式要求。大多数场景描述是固定的,但有三个部分与场景直接相关,并且是根据当前决策框架动态生成的。在驾驶场景描述中,包含本车及周围关键车辆的位置、速度、加速度等信息。需要注意的是,我们仅将驾驶场景描述的文本嵌入到向量中,并将其用作内存模块的查询输入。可用操作包括所有元操作。驾驶意图可以由人类输入来修改车辆的行为,默认意图是:“您的驾驶意图是安全驾驶并避免碰撞。”

至于few-shot experience,完全是从内存模块获得的。每个体验都由人类与 LLM 对话对组成,其中人类问题包括该决策框架的场景描述,LLM 响应代表驾驶员代理做出的正确(或修订后正确)推理和决策。提取的经验直接通过几次提示技术输入到大语言模型中,从而实现上下文学习。图 9 展示了 3 次体验查询的结果,其中包括两个“保持速度”决策和一个“减速”决策。值得注意的是,决策的一致性并不是几次镜头体验中的要求。
在这里插入图片描述

图9:图8所示场景的3次提示示例。DiLu从内存模块中回忆出前三个最相似的经历,其中包含2个空闲和1个减速决策。几次few-shot experience被作为“人类-LLM”对话输入到 GPT-3.5 中。

反思提示(Reflection prompts): 图10展示了反射模块的提示模板,主要包括系统提示和反射提示两部分。系统提示部分是完全固定的,主要包括反思任务的介绍,以及LLM回答的说明和格式要求。另一方面,反思提示部分包括LLM做出的错误决策和错误推理过程的场景描述。我们要求反思模块产生三个组成部分:错误分析、纠正推理和决策以及如何避免在未来犯同样错误的建议
在这里插入图片描述

图 10:反射模块的提示模板。灰色框中的提示是固定的,而彩色框中的提示根据当前场景而有所不同。

A.3 案例分析

在本节中,我们将展示几个案例研究。

首先,我们展示三种情况下推理模块的结果,如图 11 所示。在情况 1 中,绿色自我汽车紧紧跟随前面的汽车 368,并且它们的速度相似。最初,驾驶员代理探索是否可以在当前车道上加速。代理确定,由于自我汽车的速度与前面的汽车相似,因此不需要加速。随后,驾驶员代理探索维持当前速度的可能性。通过推理,智能体得出的结论是,虽然车辆之间的距离比理想跟随距离稍短,但保持速度是安全的,因为自我汽车的速度略低于前面的汽车。最后,智能体验证了向右变道的可行性,并计算出本车速度比右车道车辆低 5.88 m/s,具有安全跟车距离。因此,向右变道也是安全的。最后,代理人决定向右变道。
在这里插入图片描述

在案例2中,场景相对简单。代理观察到与前面的汽车有很长的距离,并且自我汽车的速度低于该汽车。因此,它决定加速。在这种情况下,代理不会执行有关保持速度或变换车道的进一步计算,这与人类驾驶员的典型思维过程和推理保持一致。
在这里插入图片描述

在案例3中,我们将提示中的驾驶意图从默认更改为“我需要换到最右边的车道”。驾驶员代理识别此意图。虽然它确定可以在当前车道上保持速度,但它会继续评估在当前车道上向右变道是否可行。最终,考虑到意图,智能体选择向右变道而不是保持速度。
在这里插入图片描述

接下来,在图 12 中,我们展示了反射模块的结果。在这种情况下,本车在第二个右车道行驶并做出了向右变道的错误决定,导致与汽车408相撞。因此,反射模块进行干预以纠正错误。首先,对碰撞原因进行分析。在审查原始推理过程后,GPT-4 敏锐地识别出了错误的根源。它意识到最初的决定没有考虑与右车道车辆的相对距离。事实上,408 号汽车仅比自我汽车“稍微领先”,这与最初决策过程所描述的“适当”距离相反。随后,在修正后的决策过程中,驾驶员代理补充并正确计算出本车与右车道车辆的相对位置。它还包括“碰撞时间”的计算(在最初的决定中完全没有)。根据这一计算,它确定“碰撞时间太短,无法安全变道”。结果,它选择减速,避免碰撞。最后,反思模块总结了从这次错误中吸取的教训,强调了确保有足够的空间和时间安全完成变道而不引起碰撞的重要性:“确保有足够的空间和时间安全完成变道非常重要”变道而不会造成碰撞。”
在这里插入图片描述

A.4 TRAINING SETTINGS OF GRAD

这里我们介绍 RL 方法 GRAD 的训练设置,以便与 DiLu 进行比较。 GRAD 每一集的奖励在训练过程中进行评估,如图 13 所示。在训练过程中,我们设置了由智能体和周围车辆的运动学状态组成的观测值,特别是它们的坐标、速度和航向。最多可观察到的周围车辆数量为 32 辆,速度范围为 15 至 25 辆。至于 Action,它是离散的,包括以下选项:OneLaneLeft、Idle、OneLaneRight、SpeedLevelUp 和 SpeedLevelDown。可用的速度级别为 10、15、20、25 和 32 个单位。奖励系统包括两个组成部分,一个是为智能体生存的每个时间步授予 0.2 的奖励,另一个是奖励从驾驶速度 (10, 32) 线性映射,奖励值介于0 和 0.8。此外,每个模型都经过 600,000 个操作步骤的训练,随后使用确定性策略对 24 个片段进行评估。
在这里插入图片描述

图 13:在训练过程中评估每个回合的奖励。每个数据点代表 5 次独立运行的平均值,并已使用窗口大小 9 进行平滑处理。阴影对应于这些运行的标准偏差

A.5 DIFFERENT DENSITY LEVEL

为了让读者直观地了解 Highway-env 下的不同车辆密度,我们在图 14 中展示了本文实验部分针对三种不同交通密度的多个场景的屏幕截图。可以看出,随着车辆密度的增加,场景中车辆数量增多,车辆间距和车速减小。
在这里插入图片描述

;