当前位置: 首页 > news >正文

突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合

0.简介

本推文主要介绍了由来自北京航空航天大学的姜克谋、蔡轩和崔智勇教授等共同提出的一种名为KoMA的知识驱动的多智能体框架。论文《KoMA: Knowledge-driven Multi-agent Framework for Autonomous Driving with Large Language Models》提出了KoMA框架,通过结合大语言模型(LLM)和多智能体协作,显著提升了自动驾驶系统在复杂环境下的决策效率与安全性。该框架具备多步骤规划、智能体间共享记忆模块以及基于排名的反思优化机制,可以有效解决单一智能体在泛化能力、协作能力和高效决策方面的不足。

实验结果表明,KoMA框架在高速公路仿真环境中能够更好地适应不同场景的变化,特别是在复杂任务(如匝道并入和车流密度调控)中表现出优越的泛化能力。此外,研究还探索了不同的大语言模型(如GPT3.5、GPT4、Llama3、Llama2等)在框架中的推理表现,为未来构建更强大的知识驱动的自动驾驶系统提供了重要的参考。

本推文由邱雪撰写,审校为黄星宇和许东舟。

论文链接:https://ieeexplore.ieee.org/abstract/document/10745878

代码链接:https://jkmhhh.github.io/KoMA/

 1.背景与挑战

随着自动驾驶技术的快速发展,如何在复杂动态的交通环境中实现高效、安全的车辆控制成为一大核心难题。然而,现有的自动驾驶系统普遍面临以下挑战:

  1. 缺乏多智能体协作能力
    当前大部分自动驾驶框架依赖单一的智能体来完成驾驶任务,这种方法在面对复杂交通环境时,难以有效理解周围交通参与者的行为和意图,导致决策能力受限。
  2. 泛化能力不足
    传统自动驾驶系统依赖于大量特定场景的训练数据,而在未见过的复杂场景中适应能力较弱,容易出现不安全或低效的决策。
  3. 缺乏高效决策与解释能力
    现有方法通常无法快速应对高动态场景中的决策需求,同时对决策背后的逻辑缺乏解释性,使得系统难以被广泛接受。

在这样的背景下,如何引入具有强泛化能力、复杂推理能力以及高效协作能力的多智能体系统成为了自动驾驶领域亟需解决的问题。针对这些挑战,KoMA框架以大语言模型(LLM)为核心,通过多智能体协作与知识驱动的创新模块,提出了一种全新的解决方案,为下一代自动驾驶系统的研发提供了方向。具体如下:

  •  引入大语言模型增强智能体能力

大语言模型(LLM)不仅提升了智能体的推理能力,还提供了强大的泛化能力,能够高效处理复杂场景中的推理和情景描述。

  •  多智能体协作机制

通过多个智能体协作,结合周围环境信息判断其他交通参与者的行为意图,做出更加符合交通规范和实际需求的决策。

  •  多层次规划与决策模块

设计多步骤规划机制,智能体逐层分析环境并逐步做出行动决策,提高了系统应对复杂场景的能力。

  •  共享记忆模块

引入共享记忆机制,使智能体能够积累并共享驾驶经验,有效提升系统的适应性和长期决策水平。

  •  基于排名的反思与优化模块

通过排名机制对智能体的决策进行反思和迭代优化,不断提升框架的整体性能和效率,为复杂动态环境中的自动驾驶提供更强支持。

 2.方法

1 KoMA框架的整体工作流程

图1展示了KoMA框架的整体架构,突出了如何通过多智能体协作与基于大语言模型的决策模块提升自动驾驶系统的效率和适应性。框架的左侧描述了自动驾驶系统所处的环境(Environment,其中蓝色表示周围的环境车辆,绿色表示基于大语言模型(LLM)驱动的智能体车辆。智能体通过环境感知和交互模块,捕获周围车辆的状态信息(如位置、速度和车道位置),并将这些信息生成场景描述,供后续模块进行推理和规划。随后将生成的场景描述传递到解码模块(Decoder,将环境信息解码为语义化的场景描述。这一步是LLM理解环境的核心输入,为后续的智能体规划和决策提供了基础。

智能体在接收到场景描述后,通过多步骤规划模块(Multi-step Planning完成目标制定、计划生成和行动执行。多步骤规划包括三个关键部分:目标制定(Goal确定驾驶目标,如避让车辆或进入目标车道;计划生成(Plan设计具体的路径或行动序列;行动执行(Action将计划转换为具体的驾驶操作并反馈到环境中。此外,多步骤规划模块还包含交互机制(Interaction Interface,智能体能够分析和理解其他交通参与者的行为意图,从而协作完成更符合交通规范的决策。

为了提升系统的适应性和长期决策性能,框架引入了基于记忆的增强模块(Memory-based Enhancement。智能体共享一个记忆库(Shared Memory,用于存储经验数据,包括成功经验(Success Experience修正经验(Revised Experience。这些记忆数据通过向量化(Embedding)进行高效存储和检索。在 反思模块(Evaluation-Reflection中,智能体通过分析过去的经验并对决策进行优化,具体步骤包括重新规划(Replanning)、生成新行动(New Action)和总结经验(Summarizing)。优化后的新经验被存入记忆库,为未来决策提供支持。

整个框架形成了一个从感知、规划、行动、反思、优化的闭环流程。智能体通过规划与行动与环境实时交互,并结合反思机制提升决策质量。共享记忆模块显著增强了智能体的泛化能力,而多步骤规划和交互机制确保了智能体在动态交通环境中的实时响应与安全决策。KoMA框架为解决复杂交通场景提供了一种创新且高效的方案。

 3.实验结果 

2 KoMA0次(无记忆项)、20次(284个记忆项)和40次(624个记忆项)训练轮次后的性能,与MARL0次、20,000次和40,000次训练轮次后的性能进行比较

图2展示了KoMA框架与传统多智能体强化学习框架(MARL)在不同轮训练阶段的成功率对比,KoMA框架在训练后期表现出更强的适应性和协作能力,反映了基于记忆增强的KoMA框架在处理多智能体协作任务中的显著优势。

3 在初始场景中,使用不同记忆模块进行测试的实验结果,分别在训练 20 轮和 40 轮后进行评估

图3展示了不同记忆模块对KoMA框架在训练过程中的成功率影响,结果表明共享记忆机制显著优于无记忆和非共享记忆机制。在训练20轮和40轮后,共享记忆的成功率分别达到50%和70%,远超其他两种方法。共享记忆通过智能体之间的经验共享,显著提升了系统的学习效率、协作能力和泛化能力,为解决复杂动态场景提供了更高效的支持。

4 经过40轮训练后,在测试成功的场景中的平均效率得分和安全得分

图4展示了在训练40轮后,是否采用多步骤规划(Multi-step Planning)对效率得分(Efficiency Score)和安全得分(Safety Score)的影响。结果显示,采用多步骤规划的情况下,效率得分从9.13提升至9.45,安全得分从9.27提升至9.92。这表明多步骤规划能够有效优化智能体的行动决策,显著提升任务执行的效率和安全性。

5 在有记忆和无记忆的情况下,对不同泛化场景的实验结果进行了评估(该记忆已在一条两车道的主巷道上进行了训练。)

图5比较了在单车道和三车道主干道场景下,是否采用记忆机制对成功率的影响。结果显示,在单车道场景中,采用记忆机制的成功率从40%显著提升至90%;在三车道场景中,成功率从50%提升至70%。这表明记忆机制能够有效帮助智能体积累和利用经验,在不同复杂场景中显著提高决策成功率,尤其是在更简单的单车道场景中提升效果更为显著。

6 在初始场景中经过40轮训练的记忆,其泛化能力在环岛场景中进行了专门测试

图6展示了在初始场景和扩展至环岛场景中,使用初始场景记忆与无记忆机制的成功率对比。结果表明,在初始场景中,使用记忆的成功率从30%显著提升至 70%;在环岛场景中,成功率从60%提升至80%。这表明基于初始场景训练的记忆不仅能有效提升当前任务的成功率,还能增强智能体在新场景中的泛化能力,从而提升复杂环境下的适应性。

1 不同LLMsKoMA框架下训练02040轮后的实验的成功率

表1展示了在KoMA框架中,使用不同的大语言模型经过0、20和40轮训练后的成功率。结果显示,GPT4在所有阶段的表现最优,成功率从初始的30%提升至70%。相比之下,GPT3.5、Llama3、Llama2和Qwen2的最终成功率分别为35%、40%、35%和40%。这些数据表明,模型的推理能力显著影响KoMA框架的性能,其中GPT4展现了最佳的学习能力和泛化性能。

2 KoMA框架下对不同LLMs的推理时间进行统计分析

表2对不同的大语言模型在KoMA框架中的推理时间进行了统计分析,结果显示,GPT4的推理时间最长,平均时间为17.49秒,最大时间为19.86秒,相比之下,Llama系列模型的推理时间较短,其中Llama2平均时间最少,仅为7.49秒。这表明不同模型的推理能力存在显著差异,其中Llama2在推理效率方面表现优越,而GPT4尽管推理时间较长,但可能更适合对高精度要求的任务。

 4.总结

KoMA框架通过结合大语言模型与多智能体协作,为自动驾驶任务带来了显著的性能提升。实验结果表明,共享记忆机制、多步骤规划、以及基于排名的反思优化模块在提高模型的效率和泛化能力方面发挥了关键作用。尤其是结合GPT4等强大模型时,KoMA在复杂场景中的决策成功率和安全性均达到领先水平。同时,不同LLMs的推理效率差异也表明了技术选择的重要性,Llama2等模型在效率上表现优越,而GPT4则在性能上具备更强的优势。

未来,KoMA的方法可扩展至更多动态场景和多智能体任务,例如智能交通管理、无人配送等,为自动驾驶技术和多智能体协作领域的发展提供了新的方向和启示。

相关文章:

突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合

0.简介 本推文主要介绍了由来自北京航空航天大学的姜克谋、蔡轩和崔智勇教授等共同提出的一种名为KoMA的知识驱动的多智能体框架。论文《KoMA: Knowledge-driven Multi-agent Framework for Autonomous Driving with Large Language Models》提出了KoMA框架,通过结…...

YOLO入门教程(三)——训练自己YOLO11实例分割模型并预测【含教程源码+一键分类数据集 + 故障排查】

目录 引言前期准备Step0 环境部署1.安装OpenCV2.安装Pytorch3.安装Ultralytics Step1 打标训练Step2 格式转换Step3 整理训练集Step4 训练数据集4.1创建yaml文件4.2训练4.3预测4.4故障排查4.4.1OpenCV版本故障,把OpenCV版本升级到4.0以上4.4.2NumPy版本故障&#xf…...

【加入默语老师的私域】C#面试题

什么是依赖注入,如何实现? 依赖注入是一种设计模式。我们不是直接在另一个类(依赖类)中创建一个类的对象,而是将对象作为参数传递给依赖类的构造函数。它有助于编写松散耦合的代码,并有助于使代码更加模块…...

称重传感器指示器行业全面且深入的分析

称重传感器指示器是一种用于显示和解释称重传感器输出信号的设备,用于测量力、重量或压力。称重传感器是将物理力(如重量)转换为电信号的传感器,称重传感器指示器将该电信号转换为可读格式,通常以磅、公斤或牛顿等单位…...

NAT网络地址转换——Easy IP

NAT网络地址转换 Tip: EasylP没有地址池的概念,使用接口地址作为NAT转换的公有地址。EasylP适用于不具备固定公网IP地址的场景:如通过DHCP, PPPOE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。 本次实验模拟nat协议配置 AR1配置如下&…...

【Visual Studio系列教程】如何在 VS 上编程?

上一篇博客中,我们介绍了《什么是 Visual Studio?》。本文,我们来看第2篇《如何在 VS 上编程?》。阅读本文大约10 分钟。我们会向文件中添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。 本文假定&…...

Mybatis-Plus 多租户插件属性自动赋值

文章目录 1、Mybatis-Plus 多租户插件1.1、属性介绍1.2、使用多租户插件mavenymlThreadLocalUtil实现 定义,注入租户处理器插件测试domianservice & ServiceImplmapper 测试mapper.xml 方式 1.3、不使用多租户插件 2、实体对象的属性自动赋值使用1. 定义实体类2. 实现 Meta…...

AWTK-WIDGET-WEB-VIEW 实现笔记 (4) - Ubuntu

Ubuntu 上实现 AWTK-WIDGET-WEB-VIEW 开始以为很简单,后来发现是最麻烦的。因为 Ubuntu 上的 webview 库是 基于 GTK 的,而 AWTK 是基于 X11 的,两者的窗口系统不同,所以期间踩了几个大坑。 1. 编译 AWTK 在使用 Linux 的输入法时…...

Python入门(7)--高级函数特性详解

Python高级函数特性详解 🚀 目录 匿名函数(Lambda)装饰器的使用生成器与迭代器递归函数应用实战案例:文件批处理工具 1. 匿名函数(Lambda)深入解析 🎯 1.1 Lambda函数基础与进阶 1.1.1 基本…...

【数据库原理】理解数据库,基础知识

第一代:网状数据库;第二代:关系数据库;第三代:新一代数据库系统BigData 一、理解数据库 什么是数据:信息,对事物的存在方方式、运动状态及特征的描述。数据,记录信息的识别方式有数…...

VConsole——(H5调试工具)前端开发使用于手机端查看控制台和请求发送

因为开发钉钉H5微应用在手机上一直查看不到日志等,出现安卓和苹果上传图片一边是成功的,一边是失败的,所以找了这个,之前在开发微信小程序进行调试的时候能看到,之前没想到过,这次被人提点发现可以单独使用…...

论文分享 | FuzzLLM:一种用于发现大语言模型中越狱漏洞的通用模糊测试框架

大语言模型是当前人工智能领域的前沿研究方向,在安全性方面大语言模型存在一些挑战和问题。分享一篇发表于2024年ICASSP会议的论文FuzzLLM,它设计了一种模糊测试框架,利用模型的能力去测试模型对越狱攻击的防护水平。 论文摘要 大语言模型中…...

vmWare虚拟环境centos7安装Hadoop 伪分布式实践

背景:近期在研发大数据中台,需要研究Hadoop hive 的各种特性,需要搭建一个Hadoop的虚拟环境,本来想着使用dock ,但突然发现docker 公共仓库的镜像 被XX 了,无奈重新使用vm 搭建虚拟机。 大概经历了6个小时完…...

【C++入门(一)】半小时入门C++开发(深入理解new+List+范围for+可变参数)

目录 一.深入理解new 使用格式 二.List列表 定义一个列表 迭代器 添加元素 删除元素 排序 反转序列 三.范围for 四.可变参数 std::initializer_list 可变参数模板(variadic template) 一.深入理解new 类似于C语言中的malloc、calloc和reallo…...

Vue 3与TypeScript集成指南:构建类型安全的前端应用

在Vue 3中使用TypeScript,可以让你的组件更加健壮和易于维护。以下是使用TypeScript与Vue 3结合的详细步骤和知识点: 1. 环境搭建 首先,确保你安装了Node.js(推荐使用最新的LTS版本)和npm或Yarn。然后,安…...

MATLAB和Python发射光谱

在MATLAB和Python中,可以使用不同的库来生成发射光谱。以下是两种语言的简单示例: MATLAB: % 定义波长(nm)和强度(a.u.) wavelengths linspace(300, 1000, 1000); intensity sin(wavelengths / 500);…...

IEEE(常用)参考文献引用格式详解 | LaTeX参考文献规范(IEEE Trans、Conf、Arxiv)| 期刊会议名缩写查询

期刊 ** 期刊:已正式出版(有期卷号) ** 期刊:录用后在线访问即Early access(无期卷号)会议Arxiv论文 期刊 期刊:已正式出版(有期卷号) article{gu2024ai, title{{AI}-Enhanced Cloud-Edge-Terminal Collaborative Ne…...

第二十周:机器学习

目录 摘要 ABSTRACT 一、吴恩达机器学习exp2——逻辑回归 1、logistic函数 2、数据预处理 3、损失函数 4、梯度下降 5、设定评价指标 6、决策边界 7、正则化 二、动手深度学习pytorch——数据预处理 1、数据集读取 2、缺失值处理 3、转换为张量格式 总结 摘要…...

Elasticsearch面试内容整理-Elasticsearch 基础概念

Elasticsearch 是一个基于 Apache Lucene 的开源分布式搜索和分析引擎,提供强大的全文本搜索、实时数据分析、分布式存储等功能。以下是 Elasticsearch 的一些基础概念: 什么是 Elasticsearch? ● Elasticsearch 是一个用于全文搜索和实时分析的分布式搜索引擎。 ● 开源和可…...

机器学习算法模型系列——Adam算法

Adam是一种自适应学习率的优化算法,结合了动量和自适应学习率的特性。 主要思想是根据参数的梯度来动态调整每个参数的学习率。 核心原理包括: 动量(Momentum):Adam算法引入了动量项,以平滑梯度更新的方向…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

Oracle11g安装包

Oracle 11g安装包 适用于windows系统&#xff0c;64位 下载路径 oracle 11g 安装包...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...