23年10月来自美国USC和国内清华大学的论文“GPT-Driver: Learning to Drive with GPT“。
这是一个简单而有效的方法,可以将OpenAI GPT-3.5模型转化为自动驾驶汽车的可靠运动规划器。运动规划是自动驾驶的核心挑战,旨在规划安全舒适的驾驶轨迹。现有的运动规划器主要利用启发式方法来预测驾驶轨迹,但这些方法在面对新的和未见过的驾驶场景时表现出不足的泛化能力。本文提出了一种运动规划方法,利用了大型语言模型(LLM)固有的强大推理能力和泛化潜力。方法的基本见解是,将运动规划重新模拟为一个语言建模问题,这是以前从未探索过的视角。具体来说,将规划器的输入和输出表示为语言token,并通过坐标位置的语言描述,利用LLM生成驾驶轨迹。此外,提出了一种提示-推理-微调策略,激发LLM的数值推理潜力。利用该策略,LLM可以用自然语言描述高精度的轨迹坐标及其内部决策过程。
如图所示:将观察和自我状态转换为语言提示,引导LLM在自然语言中产生有规划的轨迹及其决策过程。随后,将该规划轨迹恢复为用于运动规划的数值格式。
尽管语言建模在运动规划中具有潜力,但简单地采用(Wei2022)、(Ouyang2022)和(Yao2022)方法,提示GPT-3.5生成轨迹,这个在实践中不起作用。为此,引入了一种提示-推理-微调策略,该策略激发了语言建模的潜力来解决运动规划问题。具体来说,介绍了一种方法,利用GPT token化模块K将观察结果O和自我状态S转换为语言提示。然后将这些提示输入到GPT-3.5模型F-GPT中。指示该模型明确地阐明其决策过程,并用自然语言生成规划的目标T。最后,对GPT模型的输出进行微调,确保与人类驾驶轨迹保持一致。
使用LLM进行运动规划的一个关键障碍是数据类型的差异:虽然运动规划器处理观察和自我状态的异构输入,但LLM主要用于处理语言输入。为了克服上述限制,求助于观察和自我状态的参数化表示,并将其转换为语言描述。特别是,用类名和位置参数化的检测目标作为感知结果。对于每个目标,都会形成一个句子来捕捉这些属性。这些句子共同构成感知提示。类似地,可以将检测目标的参数化未来轨迹转换为自然语言描述来制作预测提示。还可以通过阐明自车的当前状态(如速度和航向)来生成自我状态的提示。此外,提供有关运动规划的一般上下文信息,如坐标系、目标等。最后,使用ChatGPT-4以更简洁的格式重新表述这些提示,并将其用作GPT-3.5模型的输入。如图是一个提供给LLM输入提示的示例。上部文本框提供了与每个驾驶场景的运动规划相关的通用上下文。下面的文本框提供了对特定于这个框架的观察和自我状态的语言描述。参数化输入以红色突出显示。
当前运动规划器的一个共同弱点是其可解释性有限,因为这些规划器从黑盒子神经网络生成规划轨迹,没有阐明其决策背后的推理。为了解决这个问题,提出了一种专门为自动驾驶设计的思维链推理策略。特别是,将自动驾驶中的思维链推理过程总结为3个步骤:首先,从感知结果来看,运动规划器需要识别那些可能影响其驾驶动力学的关键目标。其次,从预测结果中分析这些关键目标的未来运动,规划器应该推断出这个关键目标何时、何地以及如何影响自车。第三,除了从之前的分析中获得的见解外,规划器还需要制定一个高级驾驶决策,然后将其转换为规划的轨迹。这个三步推理框架为运动规划提供了一种更结构化的方法,并确保整个规划过程具有更大的透明度。如图是一个LLM期待输出的示例。思维链推理和规划的轨迹以红色突出显示。
为了使LLM的输出与人类驾驶行为保持一致,用OpenAI微调API实现一种简单的微调策略。具体来说,从驾驶日志中收集每个场景的人类驾驶轨迹T。为了生成思维链推理R的真值引导,最初假设没有干扰,基于自车的当前速度和加速度计算得到假设的自车轨迹。然后,基于目标当前位置和预测的未来路径,检查是否与假设的自车轨迹重叠,这样可识别关键目标及其潜在影响。这种策略能够绕过手动标注推理过程的繁琐任务。最后,可以通过真值和语言建模损失项定义,微调LLM的输出。在推理过程中,把规划轨迹的语言输出转换回数字格式,进行评估。
最后提一下,由于OpenAI API的限制,实验无法获得模型的推理时间。因此,该方法是否能够满足商业驾驶应用的实时需求仍不确定。通常,与现有的基于MLP规划相比,基于GPT的规划表现出更长的推理时间。这个留给未来的工作去完成。