Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving

Wayve发表在ICRA2024上关于端到端大语言模型自动驾驶的文章。

摘要: 大语言模型(LLMs)在自动驾驶领域显示出前景,尤其是在泛化能力和可解释性方面。我们引入了一种独特的对象级多模态LLM架构,该架构将矢量化的数值模态与预训练的大语言模型相结合,以改善驾驶情境中的上下文理解。我们还提供了一个新的数据集,该数据集包含16万对问答对,源自1万个驾驶场景,并与通过强化学习代理收集的高质量控制命令以及由教师LLM(GPT-3.5)生成的问答对配对。我们设计了一种独特的预训练策略,通过使用矢量标注语言数据将数值矢量模态与静态LLM表示对齐。我们还引入了一种用于驾驶问答的评估指标,并展示了我们的LLM驾驶员在解释驾驶场景、回答问题和决策方面的能力。我们的研究结果突出了基于LLM的驾驶行为生成在与传统行为克隆方法相比时的潜力。我们提供了我们的基准、数据集和模型供进一步探索。

1. 引言

7be1f89724e0423c3c7c3dafac2b7704.png
大语言模型(LLMs)的卓越能力展示了人工通用智能(AGI)的早期迹象【1】。这些能力包括分布外推理、常识理解、知识检索以及与人类自然交流的能力。这些能力与自动驾驶和机器人技术的重点领域高度契合【2】【3】。
现代可扩展的自动驾驶系统,无论是采用使用单一网络的端到端方法【4】,还是结合可学习的感知和运动规划模块的组件化配置【5】【6】,都面临着共同的挑战。这些系统在决策过程中通常表现为“黑箱”,这使得赋予它们分布外推理和可解释性能力尤其困难。尽管在解决这些问题方面已经取得了一些进展【7】,但这些问题依然存在。
文本或符号模态由于其在逻辑推理、知识检索和人类交流方面的内在适用性,是利用大语言模型(LLMs)能力的绝佳媒介【8】。然而,其线性顺序性质限制了对细致空间理解的能力,而空间理解是自动驾驶的关键方面。视觉语言模型(VLMs)中的开创性工作已开始通过融合视觉和文本模态来弥合这一差距【9】,使预训练的LLMs能够进行空间推理。然而,将新模态有效地融入语言表示空间需要大量标注图像数据的广泛预训练。
我们提出了一种将数值向量模态(一种在机器人技术中常用于表示速度、执行器位置和距离测量的数据类型)整合到预训练大语言模型(LLMs)中的新方法。这种模态比视觉模态更紧凑,从而缓解了一些视觉语言模型(VLM)扩展的挑战。具体来说,我们将常用于自动驾驶的对象级二维场景表示的矢量化数据,通过适配器【10】融合到预训练的LLM中。这种融合使模型能够直接解释和推理综合的驾驶情境。结果是,LLMs能够作为自动驾驶系统的“大脑”,直接与模拟器交互,以促进推理和动作预测。
为了以可扩展的方式获取训练数据,我们首先使用定制的二维模拟器,并训练一个强化学习(RL)代理来解决驾驶场景,作为人类驾驶专家的替代。**为了将对象级向量映射到LLMs中,我们引入了一个语言生成器,将这些数值数据翻译成文本描述以进行表示预训练。**我们进一步利用教师LLM(GPT)生成一个基于1万个不同驾驶场景的语言描述的问题回答数据集。我们的模型首先经历一个预训练阶段,以增强数值向量模态与潜在语言表示之间的对齐。接下来,我们训练我们的新架构,建立一个稳健的基准模型,LLM-driver,用于驾驶动作预测和驾驶问题回答任务。我们提供了我们的数据集、评估基准和预训练模型,以便重现并希望激发和促进该领域的进一步发展。本文的后续部分详细介绍了理论背景、我们提出的架构和实验设置、初步结果、未来研究的潜在方向,以及我们工作的意义对自动驾驶领域的广泛影响。
本文的贡献如下:

  1. 新颖的对象级多模态LLM架构:我们提出了一种新颖的架构,将对象级矢量化数值模态与任何LLMs融合,采用两阶段预训练和微调方法。
  2. 驾驶场景问答任务和数据集:我们提供了一个包含16万个问答对的数据集,涉及1万个带有控制命令的驾驶情境,这些数据是由RL专家驾驶代理和基于专家LLM的问答生成器收集而来的。此外,我们还概述了进一步数据收集的方法论。
  3. 新颖的驾驶问答(DQA)评估和预训练基准:我们提出了一种新的方法来评估驾驶问答性能,使用了相同的专家LLM评分器。我们提供了初步的评估结果和使用我们的端到端多模态架构的基准。

我们的工作提供了将LLMs集成到模拟驾驶任务中的首创性基准方法。这包括一个全面的框架,涵盖了模拟器、自动数据收集、将新的对象级矢量模态整合到LLMs中以及基于GPT的评估方法。

2. 相关工作

2.1 端到端自动驾驶系统

近年来,在自动系统的端到端深度学习方法方面取得了显著进展【11】【12】【4】,其中一些最早的工作可追溯至ALVINN【13】,更近期的作品包括【14】。然而,现代自动驾驶系统面临的一个根本性挑战是在决策过程中缺乏可解释性【15】。理解为何做出某个决策对于识别不确定性领域、建立信任、实现有效的人工智能协作以及确保安全至关重要【16】。我们通过向端到端自动驾驶中添加矢量/文本模态和预训练LLMs,延续了这一研究方向。

2.2 自动驾驶系统的可解释性

已经引入了各种解释方法【17】,以理解深度神经网络的基础决策过程。例如,[18]、[19]和[20]是已经建立的模型无关的解释性方法,可以生成单个预测的解释。其他方法,如基于梯度的方法【21】、显著性图【22】和注意力图【23】,针对模型内部的操作,以解释决策过程。在自动驾驶领域,视觉注意力图提出了在驾驶图像中突出显示因果关系的区域【24】。在[25]中,作者将基于注意力的方法与自然语言相结合,创建了一种基于注意力的车辆控制器,根据一系列图像帧提供自然语言动作描述和解释。这项工作在[26]中进一步扩展,作者通过整合词性预测和特殊标记惩罚改进了架构。其他人认为仅仅使用注意力还不够【27】,因此进行了多种将这种方法与其他解释方法结合的努力。例如,[28]提出了利用关注类激活标记、编码特征、它们的梯度和它们的注意力权重同时解释transformers的方法。基于这项研究,我们提议在自动驾驶中使用文本模态进行可解释性解释。

2.3 自动驾驶任务中的多模态LLMS

最近,将多种模态集成到统一的大规模模型中的趋势引人注目。值得注意的例子包括VLMs,如[29]、[30]、[31]和[32],它们有效地结合了语言和图像,完成了图像字幕、视觉问答和图像-文本相似性等任务。另一个值得注意的进步[33]涉及从六个不同模态融合信息:文本、图像/视频、音频、深度、热度和惯性测量。这一激动人心的发展不仅扩展了使用多样化的数据输入和输出类型生成内容的可能性,还实现了更广泛的多模态搜索能力。
由于摄像头传感器是自动驾驶中最常用的传感器之一【34】,通过VLMs将语言整合到自然的步骤已成为自然之举。例如,[35]使用图像和语言指令来训练驾驶策略。[36]提出了一种学习车辆控制的方法,通过人类辅助。系统学会用自然语言总结其视觉观察,预测适当的动作响应(例如,“我看到行人过马路,所以我停下来”),并相应地预测控制。使用语言来解释模型内部运作也在[37]中进行了探索,在这里为自动车辆控制和行动的每个决策步骤提供了用户友好的自然语言叙述和推理。
在机器人技术中,我们已经看到将语言与其他模态融合的努力。虽然在自动驾驶领域之外,但与我们最接近的工作[38]利用了具有潜在对象候选的3D边界框的点云。它还使用了一个指向场景中目标对象的语言话语,来训练一个能够从一组潜在候选中识别目标对象的模型。最近,RT-2论文[39]展示了一种类似的方法,利用LLMs进行低级机器人控制任务,包括联合训练VQA和控制任务。然而,他们的框架局限于视觉模态,而我们引入了一种新颖的方法,将基于向量的对象级模态与LLMs联系起来,促进可解释的控制和驾驶问答任务。与这些现有方法相比,据我们所知,本文提出的工作是首次在自动驾驶领域特别是在自动车辆领域将数值向量模态与语言融合。

3. 方法

e15a17d5a58e12f1e1f819e0ccbeaac7.png

3.1 使用RL生成数据

为了生成基于语言的基础驾驶数据集,我们使用了一个定制的现实感十足的二维模拟器,该模拟器能够生成驾驶场景。我们使用一个RL代理,该代理使用驾驶场景的对象级真实表示来解决模拟场景。在我们的方法中,我们使用基于注意力的神经网络架构,将环境使用向量表示映射到车辆动态动作。这个模型使用Proximal Policy Optimization(PPO)进行优化【40】。随后,我们从15个不同的虚拟环境中收集了连续的驾驶数据,这些环境具有随机生成的交通条件。我们的收集包括一个用于预训练的10万数据集,一个用于QA标记和微调的1万数据集,以及一个专门用于评估的1千数据集。

3.2 伪矢量字幕的结构化语言生成

在我们的框架中,我们旨在使用结构化语言生成器将向量表示转换为语言,以便将向量表示转化为LLMs。由于我们的对象级向量包含了重要的语义属性,如汽车和行人的数量,它们的位置、方向、速度、边界框和其他属性,我们使用了一个结构化语言生成器(lanGen)函数来制作从向量空间衍生的伪语言标签,如下所示:
2e6311d4ceb88fc43712eb2edafd964a.png
在此函数中,变量 v c a r , v p e d , v e g o , v r o u t e v_{car},v_{ped},v_{ego},v_{route} vcar,vped,vego,vroute分别表示与汽车、行人、自车和路线对应的向量信息。可选项 [ o r l ] [o_{rl}] [orl]表示来自RL代理的输出,包括用于引导动作推理过程的额外注意力和动作标签。注意力标签是从RL策略的注意力层收集的,类似于[41]。 这个lanGen能够将向量表示转换为人类可读的语言描述。它包含了当前驾驶情境的综合叙述,包括代理的观察、代理的当前状态和其计划的动作。这个全面的上下文基础使得LLMs能够进行推理,并以人类能够解释和理解的方式构建适当的响应。
o r l o_{rl} orl的包含内容是可选的,我们生成两种不同版本的伪标签以满足不同的需求:1) 没有注意力/动作:在表示预训练阶段使用(见第3.4.1小节),在这个阶段不需要推理注意力和动作。2) 带有注意力/动作:在微调阶段使用VQA标签与GPT配合使用(见第3.4.2小节)。这赋予了GPT提问有关注意力和动作的特定问题的能力,从而使驾驶LLM代理具有推理注意力和动作的能力。

3.3 驾驶问答数据标注

大量数据是启用语言模型问答能力的关键。当向LLMs引入新的模态时,尤其需要具有与模态输入相关的高质量问答数据集。研究表明,使用ChatGPT标记的数据在文本注释任务方面的性能超过了众包工人【42】。受到Self-Instruct【43】和LLaVA【44】的启发,我们利用GPT生成了一个驾驶问答数据集。该数据集以结构化语言输入为条件,代表了向量。
具体而言,我们要求GPT模拟一名认证的专业驾驶教练的角色,为学生生成问题和答案。我们提供了基本的驾驶规则作为预先提示,涵盖了交通信号变换和驾驶方向等方面,因为我们处于一个左侧驾驶的国家。我们要求GPT为每个场景生成16组随机问题和答案,考虑到由lanGen生成的当前驾驶情景的语言描述。我们还包含了一些指示,以指导动作相关问题的生成,这样它们可以很容易地通过正则表达式进行解析,用于评估动作预测任务。
为了减少幻觉,我们建立了简单的防护规则。我们指示GPT包括一个与驾驶相关的问题,这个问题不能从观察输入中推断出来。如果遇到这样的问题,模型的回答应该类似于“基于我所拥有的观察,我无法回答这个问题”,防止模型想象出不存在于提供的向量观察中的对象。
此外,我们还包含了一个与驾驶无关的随机问题,指示模型用“作为AI驾驶员,你提出的问题超出了我的范围,但我可以尝试回答。”来回答问题。然后,模型会正常回答问题,从而保留语言模型作为通用助手的多功能性。
我们的开源代码中可以找到详细的说明【1】。以下是GPT生成的一些问题-答案对的示例:

  • 问题:“你观察到哪些物体?” 答案:“我观察到一辆移动的汽车,和两名行人。汽车是从相反的方向过来的,而行人则是从右边和左边穿过马路。”
  • 问题:“在这种情况下你将如何驾驶?为什么?”** 答案:**“我的动作如下: - 油门踏板0% - 刹车踏板7% - 方向盘保持直行。原因是因为我正在维持缓慢的速度,因为有行人横穿,而我保持直行是为了让我们的车辆与道路保持正确的对齐。”
  • 问题:“伦敦有哪些最好的旅游景点?” 答案:“作为AI驾驶员,你提出的问题超出了我的范围,但我可以尝试回答。伦敦的一些著名旅游景点包括伦敦塔、白金汉宫、大英博物馆、碎片大厦和伦敦眼。”

3.4 驾驶LLM的训练

将LLM-Driver作为语言模型中的驾驶问答(DQA)问题进行训练的关键在于将对象级向量模态集成到预训练的LLMs中,创建一个能够解释和交互语言和向量输入的多模态系统。
我们使用两阶段过程来有效地将对象级向量模态融合到LLM-Driver中。在第一阶段,我们将向量表示嵌入到LLMs能够解码的嵌入中。这是通过冻结语言模型并优化向量编码器和向量变换器的权重来完成的。在第二阶段,我们对模型进行微调,以适应DQA任务,训练它根据对环境的当前理解回答驾驶相关问题并采取适当的行动。
2c087512db162c351b2cd0ea36d3a021.png
如图3所示,我们的模型建立在三个关键组件上:向量编码器、向量变换器和带有低秩适配(LoRA)模块的冻结LLM。

  • **向量编码器:**四个输入向量通过多层感知器(MLP)层处理。然后它们通过一个交叉注意力层进入一个潜在空间。我们将自车特征添加到每个学习到的输入潜在向量中,以强调自车状态。
  • **向量变换器:**该部分包含自注意力层和与潜在空间及问题标记一起工作的交叉注意力层。这将潜在向量转化为LLM能够解码的嵌入。
  • **带适配器的LLM:**在这里,我们将可训练的秩分解矩阵(LoRA)注入到预训练LLMs的线性层中,以实现参数高效微调。我们在实验中使用LLaMA-7b【45】作为预训练的LLM。

3.4.1 向量表示的预训练

将新的模态集成到预训练的大型语言模型(LLMs)中是一个巨大的挑战,因为这需要大量的数据和计算资源。在本研究中,我们提出了一种新颖的方法,通过结构化语言来弥合向量空间和语言嵌入之间的差距,特别是关注于数值标记。
在预训练阶段,我们冻结语言模型,同时端到端训练整个框架,以优化向量编码器和向量变换器(V-former)的权重。这样的优化过程能够有效地将向量表示嵌入到LLMs可以直接解码的嵌入中。需要注意的是,在这个预训练阶段,我们仅使用感知结构化语言标签,避免训练涉及推理的任务,如动作预测(车辆控制命令)和代理注意力预测(专家聚焦空间注意力)。这是因为在这个阶段,我们的重点仅在于表示训练,我们希望避免过早将任何推理组件整合到V-former中。
预训练过程使用了从模拟器中收集的10万个问答对。此外,在每个训练周期中,我们随机采样了20万个均匀分布的随机值向量,通过全面探索向量空间及其相关的语义意义,促进了稳健的表示学习。我们采用了第3.2节中描述的lanGen方法,自动标注伪向量字幕数据。在预训练阶段,我们对向量字幕结果中的错误进行惩罚,以优化向量编码器和V-former的权重,从而将向量空间转化为LLMs能够理解的语言嵌入。
通过这种方法,我们能够有效地将对象级向量模态融入预训练的LLMs中,这为微调阶段提供了一个良好的起点。

3.4.2 驾驶QA微调

在预训练阶段之后,我们将可训练的LoRA模块集成到LLM中,并在我们在第3.3节中收集的驾驶QA数据上,端到端优化向量编码器、向量变换器和LoRA模块的权重。
为了训练LLM-Driver输出准确的驾驶动作,我们在VQA数据集中加入了一些动作触发问题。这些问题在被提问时,要求代理以特定格式生成动作。例如,问题 “在这种情况下你会如何驾驶,为什么?” 需要代理根据向量输入推断动作。我们使用一种简单的语言-动作对齐策略,通过正则表达式匹配来提取在我们的模拟器中控制车辆所需的动作。为了确保模型足够关注这些重要问题,我们使用不同的表达方式对动作触发问题进行上采样,例如:

  • “在这种情况下你会如何驾驶?”
  • “你会采取什么行动?”
  • “在这种情况下你是如何驾驶的?”
  • “你在这种情况下的计划行动是什么?”

我们在包含10,000个场景的数据集上进行微调,每个场景包含16个驾驶QA实体,外加一个用于字幕数据的附加向量和一个动作预测QA对。最终结果是一个驾驶LLM代理,能够在当前驾驶场景的对象级向量的基础上,推理其行动并回答任何与驾驶相关的问题。

4. 评估于结果

本节旨在通过一个包含1000个不同驾驶场景的独立评估集,全面评估我们模型的性能。对于这些场景的向量字幕和向量QA数据的标注,遵循了第3.2节和第3.3节中讨论的相同方法。

4.1 感知和动作预测评估

为了评估我们的模型在感知和动作预测任务中的性能,我们设计了一系列测试和度量标准。这些测试旨在检验模型在不同驾驶场景下的综合表现,包括其对环境的感知能力以及做出正确驾驶决策的能力。
为了获取模型的感知和行动预测结果,我们使用相同的向量标注来提示模型,并从驾驶 QA 数据中添加行动预测触发问题。然后,我们使用正则表达式解析语言输出,以提取数值预测。
我们报告了使用两阶段方法训练的模型(带有预训练),以及仅在驾驶 QA 数据集上进行训练的模型(无预训练)的结果。我们还包括了一个基线模型,Perceiver-BC,用非预训练的 Perceiver 模型替换 LLM 以进行比较。这旨在评估预训练的 LLM 在驾驶相关任务(如行动预测)中的推理能力。Perceiver-BC 模型包括与 LLM 代理模型相同的 Vector Encoder 和 V-former 模块。但是,它不同之处在于它使用了基于变换器的策略模块,而不是带有适配器的 LLM(请参阅附录 A 获取更多详情)。Perceiver-BC 模型还输出了带有代理和交通信号灯检测的感知辅助任务的行动。为了保持公平比较,我们校准了 BC 模型,使其具有与 LLM 代理相似的可训练参数数量,总计约 2500 万个。Perceiver-BC 模型是使用与 LLM 代理相同的 10k 数据集进行感知和行动预测任务训练的,但没有使用 VQA 数据。
对于报告的指标,我们计算了车和行人数目的平均绝对误差(MAE),分别表示为 E c a r E_{car} Ecar E p e d E_{ped} Eped。此外,我们还测量了交通信号灯检测的准确性,以及交通信号灯距离预测的平均绝对距离误差(以米为单位),分别表示为 A c c T L Acc_{TL} AccTL D T L D_{TL} DTL。此外,我们还计算了归一化加速和刹车压力的 MAE,表示为 E l o n . E_{lon.} Elon.,以及归一化方向盘角度的 MAE,表示为 E l a t . E_{lat.} Elat.。最后,我们报告了在评估集上令牌预测的加权交叉熵损失,表示为 L t o k e n L_{token} Ltoken
13c1111845e583124e30bd6674f95b7c.png
正如表1所示,结果清楚地表明预训练阶段显著提高了模型的感知和行动预测能力。这表明预训练模型在感知和量化环境中的汽车和行人数量方面具有更高水平的准确性。预训练模型还显示出较低的损失值 L t o k e n L_{token} Ltoken,这表明了模型令牌预测的整体有效性有所提高。
请注意,我们排除了距离自我车辆30米范围之外的代理,这需要使用 x、y、z 向量进行计算。这个设置使得直接从向量解码代理检测变得更加困难。对于更简单的回归任务(例如,交通信号灯距离),Perceiver-BC 的性能比 LLMs 要好得多。
对于需要深入推理的行动预测任务,我们发现当提供相同数量的训练数据和可训练参数时,基于LLMs的策略优于Perceiver-BC方法。这表明LLMs作为有效的行动预测器,利用了在通用预训练阶段获得的知识——例如在红灯处停车或当有车辆或行人前方时减速——以根据它们的基础观察进行决策。
然而,需要注意的是训练方法的区别:Perceiver-BC 主要通过感知和控制输出的回归进行训练,而LLMs则通过交叉熵令牌损失进行训练,并从额外的16x对驾驶问题和答案中获益,这将加强感知和行动预测的学习。因此,这种比较可能不是完全公平的,应该仅作为参考。

4.2 驾驶问题质量评估

为了评估对驾驶环境提出的开放式问题的回答质量,我们采用了GPT-3.5来对我们模型的回答进行评分。这是一种最近出现的技术,用于评估自然语言回答[47][48][49]。这种方法使我们能够快速而一致地评估我们模型对于那些没有固定答案的问题的表现。
在评估过程中,我们使用了用于数据集生成的语言描述观测(见第3.3节)、测试集中的问题以及模型的回答来提示GPT-3.5。GPT的任务是根据给定的观察细节写下一句评估,然后为每个回答给出一个0到10的分数(0为最差,10为最佳)。模型的最终得分是所有问题分数的平均值。我们注意到,GPT的评估有时可能对于答案不正确但在语义上接近的情况过于宽容,以及其他与GPT评分相关的问题,如[49]中报告的情况。为了验证这些发现,我们手动对230个随机抽样的问答对进行了评分,并获得了可比较的结果。
1fcf2bab9025cc47b2f7445ccda1cfbb.png
我们在表2中的结果表明,相较于没有进行预训练的模型,预训练可以使模型的评分分别提高了9.1%和10.8%,这是根据GPT评分和人工评分得出的结论。供参考,我们还提供了在运行评估过程时得到的人工不正确答案的分数(无论是持续回答“我不知道”还是随机重排所有答案),以及由GPT提供的“地面实况”答案标签。从这些结果中,我们可以看出,我们的模型仅利用矢量化表示作为输入,可以比持续或随机答案方法获得更高的分数。

5. 总结和不足

尽管我们的方法展现出相当多的新颖性和潜力,但初步结果表明,LLM在完全适应模拟环境方面仍有待进展。我们意识到开环与闭环结果可能存在差异[50],我们未来的工作将专注于解决在闭环系统中高效评估模型的挑战。这包括解决LLM的推理时间长和需要彻底测试系统的广泛步骤。此外,我们预计需要改进基线生成的直接驾驶命令的精度,以便在闭环设置中有效运行。造成这种情况的因素包括任务的复杂性、模型架构的潜在增强以及改进我们的训练数据集的规模和质量。我们已经观察到数字不准确性和我们系统早期开发阶段可能导致解释和推理上的差异,阻止了我们的想法在闭环设置中的完全实现。这些观察结果将指导我们未来的研究,因为我们继续完善我们的方法。
尽管如此,我们的工作为未来在这个方向的研究奠定了基础。我们相信,我们提出的架构,结合了将新的模态接地到LLM中的新方法、数据自动标注流水线和基于LLM的评估流水线,可以作为研究人员探索将数字矢量模态与LLM集成到自动驾驶背景中的起点。
在未来的研究方面,改进架构以更好地处理数字矢量模态中的微妙差异可能是一个有前景的方向。我们的方法在模拟环境之外也具有潜力应用。如果有足够的真实世界感知标签用于VLM的预训练和微调,我们的方法也可以适用于真实世界的驾驶场景。
总的来说,尽管我们的结果还处于初步阶段,但我们相信我们的工作在将矢量模态与LLM集成到自动驾驶背景中迈出了重要的一步。

6. 伦理问题和广泛影响

通过将LLM引入自动驾驶,我们正在承担其伦理影响[51]。我们相信LLM社区的进一步研究将解决这些问题。至于自动驾驶,确保系统能够安全处理所有可能的驾驶场景至关重要。通过提高自动驾驶系统的可解释性,我们可以帮助建立对这项技术的信任,从而加速其采用,并最终实现更安全、更高效的交通系统。

7. 附录A Perceiver-BC模型

f4af7649ae3b335e8c8a15ddffb94a8d.png
为了评估利用预训练的大型语言模型(LLMs)在驾驶任务中的推理能力,例如动作预测,我们决定使用一个简单的Perceiver-BC模型进行比较实验。我们已经在图5中详细说明了实现过程。
Perceiver-BC模型包括与LLM代理模型相同的向量编码器和向量形成器模块。然而,它的不同之处在于它使用了一个基于感知器的策略模块,而不是LLM与适配器。为了保持公平的比较,我们校准了BC模型,使其具有与LLM代理模型相似数量的可训练参数,总共约2500万个可训练参数。
Perceiver-BC模型使用了与LLM代理模型相同的10k数据集进行训练。该数据集仅包括标题和动作数据。我们将Perceiver-BC模型训练了5个周期,就像LLM代理模型一样。我们已经在表1中报告了这些评估结果。

8. 附录B 其他结果

在这里,我们包含了更多的DrivingQA结果,包括一些失败案例,分别在图6和图7中。
8831fd877994ed196b12ea0e4bba5899.png
b384f0a549638060b43253ff3918fa0c.png

9. 对象级别的向量表示设计

为了有效地将自动驾驶的复杂性转化为大型语言模型(LLM)可以理解和处理的格式,我们设计了一个对象级别的向量表示。这使我们能够使用一组紧凑的对象级别向量来表示驾驶条件的各种关键方面,例如预定路线、附近车辆、行人存在以及自我车辆的状态。
我们的对象级别向量包含有重要的语义属性。这使我们能够从向量表示中创建结构化的语言标签。这个过程将复杂的驾驶情况转化为了一个大型语言模型(LLM)可以理解的语言格式。这使得LLM能够理解驾驶条件,做出决策,甚至根据自己的内部推理生成可以解释的输出。
下面的模式提供了关于我们的向量输入系统中每个方面的更多细节:

# A 2d array per ego vehicle describing the route to follow.
# It finds route points for each vehicle. Each point goes into a new row,
# then each point have the following attributes:
# - (x, y, z) of a point
# - its direction
# - pitch
# - speed limit
# - is junction?
# - width of the road
# - is traffic light and its state
# - is give way?
# - is a roundabout?
route_descriptors: torch.FloatTensor
# A 2d array per ego vehicle describing nearby vehicles.
# First, if finds nearby vehicle in the neighbourhood of the car.
# Then allocates an array of zeros a fixed max size (about 30).
# There is a logic that tries to fit dynamic and static vehicles into
# rows of that array.
# For every vehicle:
# - "1" for marking that a vehicle is found in the row
# (empty rows will have this still "0")
# - Is it dynamic or static (parked) vehicle
# - its speed
# - its relative position in the ego coordinates
# - its relative orientation
# - its pitch
# - its size
# - vehicle class
# - positions of its 4 corners
vehicle_descriptors: torch.FloatTensor
# A 2d array per ego vehicle describing pedestrians.
# First, if finds nearby pedestrians in the neighbourhood of the car.
# Then allocates an array of zeros a fixed max size (about 20).
# Then every found pedestrian is described in a row of that array:
# - "1" for marking that a pedestrian is found in the row
# (empty rows will have this still "0")
# - ped. speed
# - its relative position in the ego coordinates (x, y, z)
# - its relative orientation
# - pedestrian type
# - intent of crossing the road
pedestrian_descriptors: torch.FloatTensor
# A 1D array per ego vehicle describing its state. Specifically,
# - VehicleDynamicsState (acc, steering, pitch ..)
# - Vehicle size
# - Vehicle class
# - Vehicle dynamics type
# - Previous action
# - 2 lidar distance arrays, placed on the front corner of the vehicle
ego_vehicle_descriptor: torch.FloatTensor

10. RL专家

在这一部分,我们描述了训练用于在各种驾驶场景中收集数据的强化学习代理的方法。
代理将一组对象级别的向量,如9节所述,映射到可由模拟车辆动力学执行的动作。RL 代理的动作由两个独立的 Beta 分布建模,对应于加速度和方向盘转角。我们将从 Beta 分布中抽样的加速度值 x ∈ [ 0 ; 1 ] x ∈ [0; 1] x[0;1] 分成油门踏板和刹车压力:
c52ed08441ef1f8d0dd6c3d7e8b7f744.png
其中, s 1 s_1 s1 s 2 s_2 s2 缩放值到相应的输出范围。然后,油门踏板、刹车压力和方向盘转角这三个值被输入到我们的车辆动力学模拟器中,该模拟器与我们的真实世界车辆非常相似。
为了学习动作分布,我们选择了 Proximal Policy Optimization(PPO)[40] 作为强化学习算法,因为它简单易用、被广泛使用且稳健。在每个训练时期,我们使用闭环模式对代理进行模拟,并获取回放缓冲区。需要注意的是,我们同时控制多辆车辆,这使得我们能够非常高效地生成包含 10 到 20 万个样本的回放缓冲区。然后,我们从该回放缓冲区中检索批次数据,并使用 PPO 目标优化神经网络。之后,回放缓冲区被丢弃,我们开始下一个时期。我们在这个过程中运行了一万步。 作为神经架构,我们使用 Perceiver IO [46]。该架构的优势在于它能够灵活处理不同的输入和输出类型。来自模拟器的输入向量被预处理为令牌,使用具有 ReLU 非线性激活函数的多层感知器,然后输入到交叉注意力机制中。Perceiver 的两个输出查询用于分别预测加速度和方向盘转角的分布。另一个输出查询预测值的估计。 训练期间的奖励由以下公式给出,该公式基于[52]中描述的奖励:
851435219a3e82ea180ea8e7083c213b.png
其中, v v v 是车辆速度, v d e s i r e d v_{desired} vdesired 是所需速度启发式(下文描述), d l a t e r a l d_{lateral} dlateral 是车辆中心到最近车道中心的距离, α a n g l e α_{angle} αangle 是车辆与最近车道切线的夹角, ϕ t ϕ_t ϕt ϕ t − 1 ϕ_{t−1} ϕt1 是当前时间步和上一个时间步的方向盘转角动作, R f a i l e d    t o    s t o p R_{failed \; to\; stop} Rfailedtostop 是另一个关于让行的启发式。 β 1 、 β 2 、 β 3 β_1、β_2、β_3 β1β2β3 β 4 β_4 β4 是超参数, v s v_s vs ϕ s ϕ_s ϕs 是速度和方向盘刻度。 所需速度 v d e s i r e d v_{desired} vdesired 作为一种启发式用于确定各种情况下的最佳速度。我们考虑了代理处于交叉口、靠近另一辆车、交通信号灯、靠近行人或跟随前车等情况。针对每种情况,我们建立了一个启发式,并从中选择最小的最终所需速度。
停止失败启发式确保代理适当停止。它由以下方式给出:
38cff4845c602ba2616ac77929483e5c.png

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值