根据人类驾驶员和乘客的口头命令做出明智、合理的决策对于自动驾驶车辆的安全性和可靠性至关重要[1,2,3]。这不仅需要对命令的技术翻译和理解,还需要对人类语言固有的细微差别的常识掌握和情感理解。因此,大型语言模型(大语言模型)在该领域的研究人员中广受欢迎[4,5,6,7]。它们源自大量数据的全面知识库和强大的推理能力使它们能够以极高的准确性和类似人类的理解来解释各种人类输入并采取行动。
自动驾驶领域的传统方法虽然在某些方面有效,但在理解和适应人类复杂命令时面临一些关键限制:
为了应对这些挑战并成功地将大语言模型集成到自动驾驶系统中,我们引入了一种称为Talk2Drive的新颖框架。特别是,它将人类的口头命令转换为文本指令,然后由云端的大语言模型进行处理。大语言模型生成由自动驾驶车辆执行的特定驾驶代码,调整驾驶行为和控制参数以符合人类的偏好。车辆中的内存模块存储所有人车交互数据,确保每次驾驶体验都根据人类的历史偏好和命令进行个性化。这种方法旨在克服传统自动驾驶系统面临的几个关键挑战。
Talk2Drive框架的突出特点之一是其个性化功能,这是通过记录人与车辆之间的历史命令和反馈的新颖内存模块来实现的。每次激活大语言模型时,都会加载该内存模块,使系统能够回忆起以前的交互和偏好。这一历史背景使得大语言模型能够增强对人类个体的反应和驾驶模式,从而增强驾驶体验的个性化。
此外,传统系统无法解释人类的抽象表达,而Talk2Drive框架却表现出色。它采用了大语言模型算法,能够理解和响应各种人类情感和上下文线索。这对于增强人与车辆之间的交互特别有益,可以对诸如“我迟到了”之类的陈述做出更直观和同理心的反应,车辆可以理解紧急情况并相应地调整其操作。
我们的工作展示了基于LLM的自动驾驶系统在现实车辆中成功的端到端实施,据我们所知,这是此类系统中的第一个。本文的主要贡献总结如下:
在过去的二十年里,自动驾驶系统取得了显着的进步。以汽车工程师协会(SAE)对自动化水平的定义[11]为指导,并以深度神经网络(DNN)的快速发展为推动力[12,13]和深度强化学习(DRL)[14,15,16],自动驾驶汽车获得了增强的感知和决策能力。这些技术促进了乘用车先进驾驶辅助系统(ADAS)的发展以及更高级别自动驾驶的出现[17,18]。
还有一些研究涉及提供个性化体验来预测人类行为并增加人类信任的系统,而不是直接改变车辆控制[27]。杜等人提出了一种个性化联邦学习框架,通过监控驾驶员意图来预测换道操作,与传统模型相比,精度有所提高[28]。作为所提出的移动数字孪生框架[29]的具体应用,廖等人开发了驾驶员数字孪生,用于在线预测混合交通中的个性化变道行为,增强了联网和自动驾驶车辆的能力(CAV)来高精度预测人类驾驶车辆(HDV)的操作[30]。Sun等人探讨了个性化自动驾驶汽车对人类信任的影响,发现这种个性化显着增强了系统可靠性和人类信任[31]。然而,这种个性化框架经常遇到限制,例如动态适应人类偏好或看不见的流量场景。这就是大语言模型可以通过提供更细致和上下文感知的适应,利用其先进的语言理解和生成能力来补充这些系统的地方。
Talk2Drive框架是一种用于自动驾驶车辆规划和控制任务的创新方法,它将基于云的大语言模型与现实世界的车辆动力学相集成,以个性化的方式响应人类输入。本节详细介绍了支持Talk2Drive的方法,阐明了云端和实际操作的不同角色。在本文中,我们用I表示人工输入,用C表示驾驶上下文信息,用H表示历史数据,用P,以及F人类对行程的反馈。
Talk2Drive框架的第一步涉及直接接收来自人类的任意口头命令。利用尖端的语音识别技术,特别是开源APIWhisper[44],可以准确捕获这些口头命令,然后将其转换为文本指令(I)。这种翻译对于确保人类口语的内容和特性有效地转换为可供大语言模型处理的文本格式至关重要。同时,大语言模型还可以访问额外的基于云的实时环境数据,包括天气更新、交通状况和当地交通规则信息。例如,大语言模型可以通过OpenweatherAPI[45]获得天气信息,通过OpenStreetMapAPI[46]获得地图信息(如道路类型和速度限制)。t1>和通过TomTomAPI[47]的交通信息。所有这些背景数据(C)均采用文本格式,对于为决策过程提供信息、确保响应考虑环境背景至关重要。
然后,大语言模型推理过程的输出由用于规划和控制的可执行代码组成。受“代码即策略[48]”概念的启发,大语言模型根据这种解释生成相应的代码(P)。这些代码不仅仅是简单的指令;它们包括复杂的驾驶行为和需要在车辆的低级控制器中进行调整的参数。具体来说,生成的代码调整前视距离和前视比率等控制参数,以优化纯追踪性能。此外,这些代码还可以修改车辆的目标速度以满足驾驶员的命令。这些动作代码以ROS主题命令的形式,指导基于Autoware[49]的自动驾驶系统修改其轨迹跟随配置。
在此步骤中,提出了一种新颖的内存模块来存储人与车辆之间的历史交互(H),这是Talk2Drive框架的关键特征,有助于其强调个性化。人与车辆之间的每次交互都会被记录并以文本格式保存到ECU内的内存模块中。该记录包括人的命令I、大语言模型生成的代码P以及人的反馈F。每次行程后都会更新内存模块中的历史数据。考虑到大语言模型的适应性,如果用户对相似的命令做出不同的反应,大语言模型将优先考虑最近的响应作为当前决策过程的参考点。当用户发出命令时,大语言模型访问内存模块并将存储的信息(H)作为决策过程输入提示的一部分。
同步定位与建图(SLAM)是自动驾驶系统的重要模块[50]。在我们的Talk2Drive框架中,我们采用SLAM从传感器数据中提取特征,然后使用估计算法不仅获取车辆,还获取周围环境的配置。在我们的框架中,SLAM的定位任务将传感器检测到的特征与3D地图进行匹配,而SLAM的建图任务生成3D地图,并使用正态分布变换(NDT)通过将LiDAR扫描数据与3D点进行匹配来进行定位。云地图,并在开源自动驾驶软件Autoware.AI[49]中实现。
3D-NDT[51]用于我们框架中的本地化,是从2D-NDT[52]扩展而来的。该算法利用正态分布找到位于某一位置的点的概率,而不是直接利用点的位置信息。正态分布使得数值优化变得可行[51]。对于地图生成任务,我们使用3DNDT算法将周围环境分割成3D单元(体素)网格。对于每个单元,NDT估计最适合该单元内点的正态分布,从而形成3DNDT图。然后,在定位任务中,我们采用匹配策略,通过计算创建的地图的单元格中当前扫描点数据的可能性来找到最能对齐分布的姿势p→,通常通过以下方式进行优化高斯近似p~(T)来找到最适合分布的姿势。我们使用得分函数来表示可能性,其在方程中定义如下:
其中T(p→,mis→)是对位姿p→[53]对应的点m→进行变换的变换函数。特别地,点集Ms={m1s→,m2s→,m3s→…mns→}被定义为扫描点云。点集Mm={m1m→,m2m→,m3m→…mnm→}被定义为生成的地图中的点云。只要找到一个使得分函数达到最大值的位置和方向,我们就将该位置和方向视为车辆当前的位置和位姿。算法1提出了通过查找位姿p→来匹配点集Ms和Mm的NDT算法。
导航到所选轨迹上当前前瞻航路点时,前转向角δfk可以通过以下公式[54]计算:
其中是轴距,k是圆弧的曲率,定义如下:
为了保持所需的恒定纵向车辆速度Vd,我们使用以下公式直接计算车辆的当前加速度ak:
其中Vk是车辆惯性坐标下的当前车速。
在本研究中,我们使用自动驾驶汽车进行现实世界的实验,这是一辆支持线控的2019款雷克萨斯RX450h,由AutonomouStuff提供,使用PACMod线控系统以及便利功能、配电系统、传感器、ROS驱动程序以及速度和转向控制(SSC)[56]。
我们的车辆平台上部署了车载计算机ECU,具有较高的处理速度和计算能力,使车辆平台能够完成复杂的任务,特别是行人检测、交通灯识别等复杂自动驾驶场景中的感知任务。核心电脑配置如下:Inteli9-9900第9代3.10/5.0GHz六核65W处理器,8核16线程,64GBDDR42666MhzSODIMMRAM,NVIDIAQuadroRTX-A400016GBGDDR6140WGPU和512GBM.22280NVMe固态硬盘。我们在Ubuntu18.04中使用ROSMelodic部署开源自动驾驶软件Auoware.AI[49]。
在语言学领域,发出指令可以归类为提出请求,属于指令的划分,是一般言语行为分类理论[57]中五种言语行为类型之一。更具体地说,请求的直接程度可以通过三种不同的策略[58]来表征:
在这种情况下,人类明确指出所需的操作,例如“提高车辆的速度”。这通常采用祈使句的形式。
这种情况涉及以社会和文化上公认的礼貌和/或标准的方式表达请求。一个例子是“你能加快一点速度吗?”
其中tresponse是命令发送到云端的时刻,tcommand是代码返回到车辆的时刻。
为了探索大语言模型在命令解释和随后对车辆的影响方面的推理能力,我们测量了速度的百分比变化。这是通过计算有和没有大语言模型处理命令时的车速差异来完成的。
速度方差(σ2)是自治系统中的一个关键安全指标,它衡量速度的一致性,反映系统的稳定性和可预测性[60,61]。计算方法如下:
加速度(A),也称为速度变化率,是车辆动力学舒适度的度量[62,63]。
|Aˉ|值较高表示行程中速度变化更不稳定,从而增加晕车或其他类型不适的风险[64]。
手动干预的频率表明模型适应不同人的个性化偏好的能力[20]。接管率R可以计算为:
其中,Ntakeover是针对特定类型驾驶员涉及接管的实验驾驶试验的次数,而Noperation是针对该类型驾驶员进行的实验驾驶试验的总数。
Fromthedata,wecandrawthefollowingconclusions:
在我们的初步分析中,大语言模型直接处理包括人类命令和上下文信息在内的输入,然后将输出代码发送到ECU。然而,本节探讨了集成记录人车交互历史的内存模块以增强性能最佳的大语言模型GPT-4[9]的个性化的影响。该历史数据包含之前的命令I、生成的代码P以及人类反馈F,例如人类对车辆性能的个人评价(“你还差一点”)。有点慢”),历史数据是为每个驱动程序单独存储的,每个驱动程序都有一个独特的内存模块。此外,我们还设置了输入Token的最大数量限制,上限为512个。通过纳入这种反馈循环,大语言模型利用过去的交互作为改进未来响应的资源。
首先,结果表明所有大语言模型基线都表现出对清晰直接的命令背后含义的正确理解(I级)。对于看起来不太简单的复杂命令(二级和三级),大多数大语言模型仍然能够准确地找到人类的意图,显示出其强大的推理能力。这表明大语言模型具有先进的语言处理能力,即使命令没有明确说明,它们也能掌握人类目标的本质。
此外,结果表明,虽然大语言模型可以理解人类的整体意图,但每个模型可以告诉人们所需的速度调整程度的程度存在差异。这一发现指出了进一步改进的潜在领域。增强大语言模型更精确地量化人类期望的速度变化的能力,可能会在未来的迭代中对人类命令做出更精细的响应。
在本文中,我们在所提出的Talk2Drive框架中创新地使用了大语言模型,证明了自动驾驶汽车在理解复杂且上下文丰富的人类命令并采取行动的能力方面取得了深远的进步。Talk2Drive的高级语言推理功能使其能够通过了解个人的命令偏好来改善驾驶体验,从而提供自动驾驶技术的一定程度的定制。该框架从语音识别模块开始,将用户的口头输入翻译成文本指令,然后发送到大语言模型进行推理。除了这些文本指令外,大语言模型还考虑上下文输入,例如当前天气状况、道路状况和交通规则。此外,大语言模型利用我们架构中新颖内存模块的历史车辆与人的交互来增强个性化决策。在处理这些不同的输入后,大语言模型生成在ECU中执行的代码。然后,ECU将命令传送到CAN总线和线控驱动系统,最终控制车辆的执行器。我们的Talk2Drive框架是第一个在真正的自动驾驶汽车上部署大语言模型的框架,实现了令人兴奋的100%代码执行成功率。此外,我们的框架显着改善了自动驾驶的个性化方面,在保证系统的安全性和舒适性的同时,接管率降低了高达90.1%。
在我们未来对Talk2Drive框架的研究中,我们将重点通过模型蒸馏等技术来减少大语言模型的延迟,以实现无缝的实时性能,以满足精确控制的严格要求。通过模型蒸馏,大语言模型可以被精简,变得更小、反应更灵敏,比当前的迭代反应更快。确保强大的数据安全性也将是一个优先事项,保护用户偏好和敏感信息。此外,我们预计探索与其他智能交通系统和物联网设备无缝集成的潜力,旨在创建更加智能的城市移动网络。