RAG-Driver: 多模态大语言模型中具有检索增强上下文学习的通用驱动解释

RAG-Driver: 多模态大语言模型中具有检索增强上下文学习的通用驱动解释

  • 摘要
  • Introduction

RAG-Driver: Generalisable Driving Explanations with Retrieval-Augmented In-Context Learning in Multi-Modal Large Language Model.

摘要

由“黑箱”模型驱动的机器人需要提供人类可理解的解释,这些解释是作者能够信任的。因此,可解释性在促进自主决策的可信度、透明度和最终用户接受度方面发挥着关键作用,尤其是在复杂的自动驾驶领域。多模态大型语言模型(MLLMs)的最新进展已经显示出在提高作为驾驶主体的可解释性方面的巨大潜力,它可以生成控制预测以及自然语言解释。然而,由于昂贵的标注成本导致的数据稀缺以及不同数据集之间的显著领域差距,开发一个健壮且可泛化的系统变得极其具有挑战性。此外,MLLM的高昂训练要求以及未解决的灾难性遗忘问题进一步限制了它们部署后的泛化能力。为了应对这些挑战,作者提出了RAG-Driver,这是一个新颖的检索增强型多模态大型语言模型,它利用上下文学习来实现高性能、可解释且可泛化的自动驾驶。通过在检索到的专家示范中进行定位,作者经验性地验证了RAG-Driver在生成驾驶动作解释、辩护和控制信号预测方面达到了最先进的表现。更重要的是,它展现出卓越的零样本泛化能力,无需进一步训练即可适应未见过的环境。

Introduction

受到深度学习新兴发展的驱动,自动驾驶技术已经经历了从基于规则的决策系统向数据驱动的学习方法的范式转变。然而,这在决策透明度上是要付出代价的,特别是对于被认为是黑箱性质的全栈自动驾驶系统。因此,除了在行动控制上的精确性之外,提供解释对于确保可信赖的决策制定至关重要,这样可以调和系统的决策与终端用户期望之间的关系,以促进在动态驾驶环境中的信心和接受度。

传统方法主要依赖于注意力可视化作为代理来解释黑盒系统的决策,或者通过辅助的中间任务,如语义分割,目标检测和可供性预测,为决策提供有意义的中间表示。然而,这些方法并没有让最终用户参与到对话中,因为它们是单向的,而且对于一般用户来说不容易理解,这不利于培养信任和信心。一种有前景的替代方法是整合自然语言解释,特别是通过多模态大型语言模型(MLLMs)。这些模型在广泛的网页规模数据集上进行了预训练,显示出卓越的推理能力,能够将复杂的车辆决策过程转化为更易理解的叙述格式,从而为传统系统提供新的解释层次。

尽管早期的一些尝试已经展示了多语言大模型(MLLMs)作为一般可解释驾驶代理的潜力,但这些方法在达到人类 Level 的理解方面仍有不足。其中一个局限性是它们未能泛化到未见过的环境。一个主要的障碍是缺乏高质量标注数据,以及不同数据集之间显著的领域偏移,这阻碍了模型将泛化能力扩展到训练数据分布之外的新环境。

另一个关键挑战是训练成本过高以及灾难性遗忘问题未解决,这使得由于巨大的计算需求和严重的性能退化的原因,重新训练或微调成为不切实际的解决方案。因此,这进一步限制了模型在部署后泛化能力,因为它们在持续变化的环境和驾驶场景中有效利用新数据方面存在困难。

为了应对这些挑战,作者推出了RAG-Driver,这是一个新颖的检索增强型多模态大型语言模型,专为具有泛化能力和可解释性的端到端驾驶而定制。如图1所示,它基于驾驶视频输出自然语言文本,对应于**(1)驾驶动作和(2)该驾驶动作的依据,以及(3)**数值控制信号。

在上下文学习过程中,自然语言文本与控制信号对齐,以实现真实内省解释的提供。RAG-Driver的创新之处在于集成了检索增强的上下文学习(RA-ICL)机制,这些机制显著提高了在未见过的驾驶环境中的泛化性能。它允许通过隐式元优化(第III-C节)高效回忆类似的驾驶场景作为增强MLLM预测的上下文信息。
在这里插入图片描述
通过大量实验,作者展示了RAG-Driver在域内部署以及未见环境(无需任何微调)的部署上均优于现有方法。通过基于类比演示实现,作者的框架显著减少了持续重新训练的需求,同时提高了生成的解释文本的泛化能力和质量。

作者的主要贡献如下:

提出一种新颖的检索增强型情境学习方法,用于基于多模态大型语言模型(MLLM)的可泛化和可解释驾驶。

在标准基准BDD-X 上实现最先进的自省驾驶解释性能。

展示了通过一个定制数据集Spoken-SAX,该数据集包含由专业驾驶教练解说的视频序列,实现了在未见过的场景中无需训练努力即可达到异常出色的零样本泛化能力。
Related Work
Explainable End-to-End Autonomous Driving
端到端学习驾驶直接从原始传感器输入映射到车辆控制信号。这种数据驱动的、感知、预测和规划的联合优化可以简单而高效。在这个领域,各种基于学习的方法都有前景,包括行为克隆,逆最优控制和强化学习。这个领域的一个关键关注点是可解释性,这对于提高透明度,建立对自主系统更广泛公众接受的信任至关重要。一项工作利用了注意力可视化——要么直接识别输入图像中对驾驶决策重要的显著区域,要么辅助下游运动规划任务的特征聚合。另一项工作使用中间辅助任务,如语义分割,目标检测和可供性预测,这些任务帮助将隐含表示解码为人类可理解的表现形式。尽管这些方法通过将决策过程与语义或视觉表示相关联提供了可解释的机制,但它们并不容易被普通用户理解,以达到培养信任和信心的目的。

另一方面,近期的研究显示出利用自然语言解释的潜力。一些工作开发了专门的解释器,通过在视觉输入和文本生成中对齐注意力来解释具体化的驾驶动作。ADAPT使用了一个视觉-语言 Transformer ,并配有单独的解码器用于生成标题以及控制信号预测。

近来,一些研究探索了多模态大型语言模型(MLLMs)的潜力。例如,DriveGPT4,Lingo,和DrivingMLM在驾驶和动作规划的通用问题回答方面显示出有希望的可能性。然而,无论是专业模型还是基于MLLM的通用模型,都面临着一个共同的障碍,即数据稀缺,这是由于昂贵的标注成本以及不同数据集之间的巨大领域差距造成的,这使得开发一个健壮且具有泛化能力的模型变得极其具有挑战性。在作者的工作中,作者通过采用一种更健壮的推理范式——检索增强的上下文学习,来克服这些障碍,并弥合领域差距,避免在新领域中进行标注的需求。

Multi-Modal Large Language Model
近期大型语言模型(LLM)的进展为多模态大型语言模型(MLLM)的出现铺平了道路。得益于可扩展的基于 Transformer 的架构和网页规模的训练数据,这些模型在通用视觉理解任务中展现了显著的能力。一项工作聚焦于潜在空间中的模态融合,为MLLM提供了一种可扩展的端到端解决方案。例如,Flamingo 和 BLIP2 分别通过门控注意力和 Query Transformer 将视觉标记融合到冻结的LLM中。

LLaVA 和 MiniGPT4 使用带有视觉指令调整的简单多层感知机(MLP)来对齐预训练的图像编码器与LLM。与作者最相关的是关注于视频语言模型的工作,例如 Video-LLaVA 和 Video-LLaMA,它们使用与基于图像模型类似的策略将预训练的视频编码器整合到LLM中。

凭借卓越的感知和推理能力,多模态大型语言模型(MLLMs)在各种机器人任务中显示出巨大的潜力,如推理和规划。与作者最相似的是一种将通用基础模型用于端到端具身代理的想法。PaLM-e将图像、状态估计和其他传感器模态注入到LLM中,并自回归地生成自然语言命令。RT-2和RT-X在图像和低级机器人控制信号对上进行微调,以执行端到端的机器人控制。

特别是在驾驶方面,众多方法利用仅语言的LLM进行决策,然后通过外部感知模块反馈,设计思维链推理模板或下游规划器形成系统级的驾驶代理。另一项更相关的工作是端到端的驾驶代理。DriveGPT4利用在驾驶特定视觉指令调整方面基于BDD-X进行微调的视频语言模型Valley。Dolphins进一步使用设计的接地思维链来增强推理能力。DrivingMLM和Reason2Drive分别通过模拟器生成数据和现有大规模数据集的标注来扩展驾驶视觉指令调整数据集。

尽管这些方法展示了MLLM的潜力,但高昂的训练成本以及未解决的灾难性遗忘问题(这使得部署后重新训练或微调具有挑战性)进一步限制了它们在未知驾驶环境中的泛化能力。为了解决这个问题,作者采用了无需训练的检索增强上下文学习机制。

In-Context Learning and Retrieval-Augmented Generation
尽管大型语言模型(LLMs)展现出强大的生成和推理能力,但它们的输出仍然存在一些问题,比如产生幻觉[29]和知识更新缓慢。上下文学习(In-context Learning,ICL)已成为LLM推理中一个有前景的方法,可能解决其中一些问题。这个范式包括提供一个测试 Query 和几个演示示例作为上下文信息。然后,LLM基于从上下文中绘制的类比生成测试实例的输出,而无需更新其参数。

尽管观察到ICL在各种自然语言处理(NLP)任务中增强了泛化能力,但在多模态上下文中的应用仍然探索较少,这可能是因为与策划结构化高质量的多模态ICL数据集相关的挑战。检索增强生成(Retrieval-Augmented Generation,RAG)是LLM的另一个重要的推理范式。它提供一个外部知识数据库,通过动态检索相关信息片段作为上下文信息,增强推理中LLM内压缩的模型知识。其一个有前景的应用是采用系统化的方法来策划In-Context Learning(ICL)示例。

在这项工作中,作者基于这些推理范式,并将它们的应用扩展到多模态大型语言模型(Multimodal Large Language Models,MLLMs)。作者引入了一个检索增强的上下文学习机制,通过策划的多模态驾驶上下文指令调优数据集和一个特定为驾驶应用量身定制的基于向量相似度的检索引擎。

III Method
RAG-Driver是一个检索增强的、多模态大型语言模型(MLLM),用于可泛化的可解释端到端驾驶。其多任务能力包括三个关键领域:

  1. 行为解释,提供人类可理解的驾驶行为描述;
  2. 行为辩护,阐明特定驾驶行为背后的推理;
  3. 下一控制信号预测,预测在应对驾驶条件下的即将出现的控制信号。
    在这里插入图片描述
    如图3所示,它主要由两个组成部分构成:

一个基于MLLM Backbone 网络的统一感知规划单元
一个基于混合向量和文本数据库的记忆单元
这些组件通过检索引擎进行交互,使得在决策过程中能够进行稳健的多模态上下文学习(ICL)。

Multi-modal Large Language Model Architecture
遵循Video-LLaVA成功的多模态大语言模型(MLLM)范式,作者通过视觉指令调整来对齐视觉和语言嵌入。作者利用预训练的视频编码器和大型语言模型(LLM),并通过多层感知机(MLP)投影器将视频嵌入注入LLM中,以构建一个完全可微分的MLLM。

视频编码器 作者采用了预训练的LanguageBind视频编码器作为作者固定的视觉基础网络,该编码器基于ViT-B/32视觉 Transformer。
在这里插入图片描述

如图4所示,对于给定的输入视频帧序列 V = { v ′ , v , . . . } ∈ R 3 × k × 224 × 224 V=\{v', v,...\} \in \mathbb{R}^{3 \times k \times 224 \times 224} V={v,v,...}R3×k×224×224,作者首先将视频分割成多个时间序列,每个序列包含在不同帧中具有相同空间位置的块。然后这些块通过一个线性投影进行转换,以便视觉Transformer输出视频嵌入 z n ∈ R 2048 × 1024 z_n \in \mathbb{R}^{2048 \times 1024} znR2048×1024。视频编码器通过视频-语言对比学习进行预训练(即CLIP4clip),而没有进一步的微调。

跨模态投影器然后,作者利用一个双层多层感知机(MLP)来投影并校准编码的视频嵌入 z n z_n zn与语言标记嵌入 z ∈ R 2048 × 4096 z \in \mathbb{R}^{2048 \times 4096} zR2048×4096
f 1 ( z v o ) = GELU ( W ⋅ GELU ( W ⋅ z v o ) ) f_1(z_{vo}) = \text{GELU}(W \cdot \text{GELU}(W \cdot z_{vo})) f1(zvo)=GELU(WGELU(Wzvo))
特别是,投影器 f 1 f_1 f1的形式如公式(1)所示,其中作者使用GELU作为激活函数。作者采用两阶段训练策略来训练投影器,具体细节在第三节B中描述。

大型语言模型Backbone网络最后,LLM(大型语言模型)接收对齐的视频嵌入 z z z和文本上下文信息以及任务说明的语言嵌入 z z z来预测文本动作解释和数值控制信号。作者采用Vicuna 1.5 7B,这是基于LLaMA2进行了指令调优的模型作为作者的LLM Backbone网络。

对于仅解码器的LLM,在长度为 N N N的多模态上下文前缀 z 1 : n = [ z v , z ] z_{1:n} = [z_v,z] z1:n=[zv,z]条件下,输出的联合概率 x n + 1 : L x_{n+1:L} xn+1:L如公式(2)所示,其中 P P P是基于Transformer的LLM Backbone网络,由参数 Θ \Theta Θ表征。
P ( n + 1 : L ∣ z 1 : n ) = 1 n + 1 ∏ i = 1 n + 1 P ( x i ∣ x 1 : i − 1 , z 1 : n ) P(n+1:L|z_{1:n}) = \frac{1}{n+1} \prod_{i=1}^{n+1} P(x_i | x_{1:i-1},z_{1:n}) P(n+1:Lz1:n)=n+11i=1n+1P(xix1:i1,z1:n)
每个输出标记 x x x然后基于之前的输出和上下文自动回归地采样,并最终通过文本去标记化器解码到语言空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/316082.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA实现easyExcel模版导出

easyExcel文档 模板注意&#xff1a; 用 {} 来表示你要用的变量 &#xff0c;如果本来就有"{“,”}" &#xff0c;特殊字符用"{“,”}"代替{} 代表普通变量{.}代表是list的变量 添加pom依赖 <dependency><groupId>com.alibaba</groupId&g…

Docker有哪些常见命令?什么是Docker数据卷?

喜欢就点击上方关注我们吧&#xff01; 哈喽&#xff0c;大家好呀&#xff01;这里是码农后端。上一篇我们介绍了Docker的安装以及腾讯云镜像加速源的配置。本篇将带你学习Docker的常见命令、数据卷及自定义镜像等相关知识。 1、什么是镜像与容器&#xff1f; 利用Docker安装应…

电容的理论基础

目录 1.电容的本质&#xff1a; 2.电容量的大小 2.1电容的单位 2.2电容的决定式 ​编辑3.电容的特点 5.电容器的类型 6.电容实际的电路模型 7.安装方法 ​编辑8.电容值 9.电容的耐压、封装 10.阻抗-频率特性 11.频率特性 12.等效串联电组ESR 13.电容器的温度特性…

MATLAB 数据类型

MATLAB 数据类型 MATLAB 不需要任何类型声明或维度语句。每当 MATLAB 遇到一个新的变量名&#xff0c;它就创建变量并分配适当的内存空间。 如果变量已经存在&#xff0c;那么MATLAB将用新内容替换原始内容&#xff0c;并在必要时分配新的存储空间。 例如&#xff0c; Tota…

命令执行。

命令执行 在该项目的readme中&#xff0c;描述了怎么去调用的flink 通过java原生的runtime来调用flink&#xff0c;下一步就是去看看具体的调用过程了&#xff0c;是否存在可控的参数 找到具体提交命令的类方法CommandRpcClinetAdapterImpl#submitJob() 这里要确定command&am…

TiDB 6.x 新特性解读 | Collation 规则

对数据库而言&#xff0c;合适的字符集和 collation 规则能够大大提升使用者运维和分析的效率。TiDB 从 v4.0 开始支持新 collation 规则&#xff0c;并于 TiDB 6.0 版本进行了更新。本文将深入解读 Collation 规则在 TiDB 6.0 中的变更和应用。 引 这里的“引”&#xff0c;…

用Redis实现获取验证码,外加安全策略

安全策略 一小时内只能获取三次&#xff0c;一天内只能获取五次 Redis存储结构 代码展示 import cn.hutool.core.util.RandomUtil; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.jupiter.api.Test; import org.spri…

SD8942 600KHz、16V、2A同步降压转换器芯片IC

一般说明 该SD8942是一个完全集成&#xff0c;高效率2A同步整流降压转换器。SD8942在宽输出电 流负载范围内以高效率运行。该器件提供两种工作模式&#xff0c;PWM控制和PFM模式开关控制&#xff0c;它允许在更宽的负载范围内的高效率。 该SD8942需要一个现成的标…

Flink面试(1)

1.Flink 的并行度的怎么设置的&#xff1f; Flink设置并行度的几种方式 1.代码中设置setParallelism() 全局设置&#xff1a; 1 env.setParallelism(3);  算子设置&#xff08;部分设置&#xff09;&#xff1a; 1 sum(1).setParallelism(3) 2.客户端CLI设置&#xff0…

电脑开机后卡在开机LOGO画面如何排查处理

当电脑开机后长时间停滞在开机LOGO画面,无法继续进入操作系统,这一现象常令用户困扰不已。本文将深入探讨导致此类问题的多种可能原因,并提供相应的解决方法,帮助你有效地诊断和排除故障。 硬件故障或接触不良 1. 硬盘问题:硬盘是系统启动的关键组件,其故障或数据线接触…

大数据分析与应用实验(黑龙江大学)

实验一 Hadoop伪分布式实验环境搭建与WordCount程序 一、实验目的 1、学习搭建Hadoop伪分布式实验环境 2、在伪分布式实验环境下运行WordCount程序 二、实验内容 1、搭建Hadoop伪分布式实验环境&#xff0c;并安装Eclipse。 2、在Eclipse环境下&#xff0c;编写并执行Wor…

MongoDB的安装(Linux环境)

登录到Linux服务器执行 lsb_release -a &#xff0c;即可得知服务器的版本信息为&#xff1a;CentOS 7。 # CentOS安装lsb_release包 [rootlinux100 ~]# sudo yum install redhat-lsb# 查看Linux版本 [rootlinux100 ~]# lsb_release -a LSB Version: :core-4.1-amd64:core-…

网络服务SSH-远程访问及控制

一.SSH远程管理 1.SSH介绍 SSH&#xff08;Secure Shell&#xff09;是一种安全通道协议&#xff0c;最早是由芬兰的一家公司开发出来&#xff0c;并且在IETF &#xff08;Internet Engineering Task Force&#xff09;的网络草案基础上制定而成的标准协议。主要用来实现字符…

IP地址的定位精度及其影响因素

IP地址作为互联网通信的基础&#xff0c;其定位精度对于许多应用至关重要&#xff0c;如网络安全、市场营销和用户定位等。然而&#xff0c;IP地址的定位精度受到多种因素的影响&#xff0c;本文将探讨这些因素以及它们对IP地址定位精度的影响。 IP地址查询&#xff1a;IP66_i…

windows ubuntu sed,awk,grep篇,8,Awk 语法和基础命令

目录 51.Awk 命令语法 52.Awk 程序结构(BEGIN,body,END)区域 53.打印命令 54.模式匹配 Awk 是一个维护和处理文本数据文件的强大语言。在文本数据有一定的格式&#xff0c;即每行数据包 含多个以分界符分隔的字段时&#xff0c;显得尤其有用。即便是输入文件没有一定的格式&a…

sCrypt全新上线RUNES功能

sCrypt智能合约平台全新上线一键etch/mint RUNES功能&#xff01; 请访问 https://runes.scrypt.io/ 或点击阅读原文体验&#xff01; 关于sCrypt sCrypt是BSV区块链上的一种智能合约高级语言。比特币使用基于堆栈的Script语言来支持智能合约&#xff0c;但是用原生Script编…

微信小程序实时日志使用,setFilterMsg用法

实时日志 背景 为帮助小程序开发者快捷地排查小程序漏洞、定位问题&#xff0c;我们推出了实时日志功能。开发者可通过提供的接口打印日志&#xff0c;日志汇聚并实时上报到小程序后台。开发者可从We分析“性能质量->实时日志->小程序日志”进入小程序端日志查询页面&am…

《异常检测——从经典算法到深度学习》27 可执行且可解释的在线服务系统中重复故障定位方法

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …

AI 工具合集

以下工具来源于互联网&#xff0c;可能会失效&#xff0c;请参考使用 网红工具 名称链接说明GPT-4https://chat.openai.com/ 需要梯子&#xff0c;需要付费。功能最强大的聊天机 器人。 文心一言https://yiyan.baidu.com/welcome 国内版 GPT&#xff0c;需要申请账号。回答问…

ChromaDB教程

使用 Chroma DB&#xff0c;管理文本文档、将文本嵌入以及进行相似度搜索。 随着大型语言模型 &#xff08;LLM&#xff09; 及其应用的兴起&#xff0c;我们看到向量数据库越来越受欢迎。这是因为使用 LLM 需要一种与传统机器学习模型不同的方法。 LLM 的核心支持技术之一是…