本文经自动驾驶之心公众号授权转载,转载请联系出处。
DiLu(的卢)是首个基于AI Agent范式的知识驱动自动驾驶框架,其结合了常识知识和大语言模型,通过记忆模块以实现闭环自动驾驶决策制定并拥有持续进化的能力。通过不断对环境的交互积累经验,自我反思纠正错误的决策,从而实现Life-long Learning。DiLu现已在GitHub上开源,欢迎大家体验。
论文信息
- 论文题目:DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models ( ICLR 2024 接收)
- 论文发表单位:上海人工智能实验室,华东师范大学,香港中文大学
- 论文地址:https://arxiv.org/abs/2309.16292
- 代码地址:https://github.com/PJLab-ADG/DiLu
研究动机
自动驾驶技术近年来发展迅速,但目前仍然面临着诸多挑战。最主要的挑战之一是数据集偏差和过拟合问题,当前的系统大多基于数据驱动(Data-driven)的深度学习方法,它们在标准化和简单的驾驶场景下表现良好,但在复杂多变的真实世界环境中却经常遇到困难。同时,当前的自动驾驶系统在理解复杂的交通环境、预测其他车辆和行人的行为等方面还存在不足。
正如Yann LeCun 所指出的 [1]:为什么一个从未开过车的少年可以在20 小时内学会驾驶,而当今最好的自动驾驶系统则需要数十亿的训练数据和数百万次在虚拟环境中进行强化学习试验?
这些问题的根源在于现有系统缺乏对环境深层次理解和适应性,在面对未知或复杂场景时的表现远远不及人类驾驶员。人类驾驶员能够利用其丰富的驾驶经验和常识性知识,灵活地应对各种驾驶情境。这种能力源自于人类的知识驱动行为,即基于对环境的理解、经验的积累和逻辑推理来做出决策。这引发了我们的思考,如何将人类的这种知识驱动方式应用于自动驾驶系统,以使其能够不断积累经验,提升其在面对复杂环境时的表现。
知识驱动的自动驾驶范式
基于上述动机,我们提出了知识驱动(Knowledge-driven)的自动驾驶范式。这一范式的灵感正是来源于人类的驾驶行为。当面临新的驾驶情境时,人类驾驶员依靠积累的经验和常识做出决策。例如,遇到前车可能掉落货物的情况时,人类会基于常识保持安全距离。这种基于知识的决策过程与数据驱动方法截然不同,后者依赖大量相似数据来拟合特定场景,但缺乏对环境的深入理解。
在上图中,我们展示了这一范式的理念。图中的驾驶智能体(Driver Agent)具有三个关键能力:回忆(Recall)、反思(Reflect)和推理(Reason)。这些能力使得智能体不仅能够从记忆模块(Memory)中提取过往经验,进行场景分析和决策;还能通过与环境(Environment)的不断交互和记忆的更新,实现持续的进化。与传统的数据驱动方法相比,知识驱动的自动驾驶范式更加注重对环境的理解推理和自我持续学习的能力。
关于知识驱动的自动驾驶更细致的介绍,请参考我们团队的综述:Towards Knowledge-driven Autonomous Driving (https://arxiv.org/abs/2312.04316). [2]
DiLu框架介绍
基于上述知识驱动的自动驾驶新范式,我们尝试并实现了一个全新的自动驾驶框架:DiLu(的卢)。该框架通过整合利用大语言模型(LLM),实现基于常识的决策和持续的驾驶经验累积。该框架由四个核心模块组成:环境(Environment)、推理(Reasoning)、反思(Reflection)和记忆(Memory)。下图详细展示了DiLu框架的工作流程和各模块之间的交互方式,包括环境感知、推理决策生成、决策的反思评估,以及记忆的更新和累积。
推理模块是DiLu框架中的关键组成部分,它利用LLM的常识知识和存储在记忆模块中的经验来进行Few-shot决策制定。具体来说,推理模块首先从环境中获得场景描述,然后结合记忆模块中的相似经验生成决策所需Prompt。接着,这些提示被输入到LLM中,LLM基于这些信息生成当前帧的驾驶决策,并输入环境实现决策闭环。下图展示了推理模块的工作流程,包括场景描述的生成、记忆模块的调用、提示的生成以及LLM的决策解码过程。
反思模块是DiLu框架中的另一个核心部分,它负责评估并修正推理模块产生的决策。这一模块通过分析记录的决策序列来识别不安全或不准确的决策,并利用LLM的智能对这些错误决策进行修正。修正后的决策会被更新回记忆模块,从而实现系统的持续学习和进化。下图展示了反思模块的工作流程,包括决策的评估、关键决策帧的采样、错误修正和经验的更新过程。
实验结果
DiLu使用Highway-env仿真环境进行闭环实验测试。Highway-env [3] 是一个基于OpenAI Gym开发的Python环境,专为开发和测试自动驾驶系统的决策算法而设计,提供了一个充满挑战的多车交互路况环境。下面这个视频展示了一次闭环实验中,DiLu框架如何在复杂的交通情境中作出决策。视频中,绿色的自车不仅成功地进行了变道以提升车速,还像经验丰富的司机一样与前车保持了安全距离,没有采取任何冒险的驾驶策略。同时,DiLu在每个决策节点不仅能做出准确的驾驶决策,还能展示其完整的推理过程,这一点体现了我们框架优异的可解释性。
此外,我们还进行了一系列精心设计的量化实验,来验证DiLu框架在自动驾驶闭环决策中的表现。我们将DiLu与Highway-env下现有的强化学习方法GRAD [4] 进行了比较。我们发现,DiLu 仅使用记忆模块中的 40 条经验就超过了强化学习方法在 600,000 个episodes训练后的闭环表现。同时,DiLu在泛化能力方面也表现出显著的优势,特别是在高密度交通环境下,DiLu展示了其出色的闭环成功率。基于数据驱动的强化学习方法相比,DiLu不仅更加聪明,而且具有更强的泛化能力。此外,我们的实验也证实了DiLu框架能够有效利用其记忆模块中的经验,不断地提升决策质量和系统的整体性能。
总结
DiLu是首个基于AI Agent范式的知识驱动自动驾驶框架,可能也是第一个将LLM和自动驾驶决策相结合的工作。具体来说:DiLu结合了常识知识和大语言模型技术,通过记忆模块以实现驾驶决策制定并拥有持续进化的能力。DiLu可以通过不断对环境的交互积累经验,并通过自我反思纠正错误的决策,从而实现Life-long Learning。通过大量实验,我们证明了DiLu框架在经验积累和泛化能力方面具有显著优势,并可以随着LLM的发展同步提升性能。此外,DiLu还能够直接从真实世界数据集中获取经验,这为其在实际自动驾驶系统中的应用提供了潜力。
原文链接:https://mp.weixin.qq.com/s/2sKGP7HfxVQgEMqqez-dNA