检索增强生成的多模态信息:综述

英文原文地址:Retrieving Multimodal Information for Augmented Generation: A Survey

随着大型语言模型(LLMs)的流行,出现了一个重要趋势,即使用多模态来增强 LLMs 的生成能力,从而使 LLMs 能够更好地与世界互动。然而,对于在哪个阶段以及如何结合不同的模式,目前还缺乏统一的认识。在本调查报告中,我们回顾了通过检索多模态知识来辅助和增强生成模型的方法,这些知识的格式包括图像、代码、表格、图表和音频。这些方法为解决诸如事实性、推理、可解释性和鲁棒性等重要问题提供了有前景的解决方案。通过深入评述,本调查报告有望让学者们对这些方法的应用有更深入的了解,并鼓励他们调整现有技术,以适应快速发展的 LLM 领域。

1 导言

生成式人工智能(GAI)在文本生成等任务中表现出令人印象深刻的性能和文本到图像的生成。多模态大语言模型(MLLMs)的最新进展进一步提高了模型处理多格式信息的能力,为开发通用学习器提供了可能。

然而,生成模型也不能避免其固有的局限性,包括产生幻觉的倾向,在算术任务上挣扎,而且缺乏可解释性。因此,提高他们能力的一个可行办法是让他们能够与外部世界互动,以不同的形式和方式获取知识,从而提高所生成内容的事实性和合理性。最近,出现了一些以检索增强方法为重点的研究。这些研究旨在提供更有依据、更依赖事实的信息。其中,大多数检索文本信息,这与预训练时使用的数据格式相匹配,并提供了一种自然的交互媒介。然而,世界上还有更多的知识存储在不同的结构和模式中,如图像和视频,这些知识往往是传统文本语料库无法访问、无法获得或无法描述的。

因此,出现了一个重要的研究交叉点,即检索多模态知识以增强生成模型。它为解决当前面临的事实性、推理、可解释性和鲁棒性等挑战提供了一个前景广阔的解决方案。由于这一领域刚刚起步,在将这些方法作为一个特定组别进行识别、将它们之间的内在联系可视化、将它们的方法论联系起来以及概述它们的应用等方面还缺乏统一的认识。

因此,我们对多模态检索增强生成(RAG)的最新进展进行了调查。具体来说,我们将当前的研究分为不同的模式进行讨论,包括图像、代码、结构化知识、音频和视频。对于每种模式,我们都会使用相关关键词系统地搜索 ACL 文选和谷歌学术,并进行人工筛选,以确定其与调查的相关性。因此,我们收集了 146 篇论文进行详细分析。附录中,我们包含了搜索详情、统计数据和趋势分析图,其中显示了自大规模通用模型出现以来,多模态 RAG 论文确实发展得非常快。在每种模式中,我们将相关论文按照不同的应用进行分组讨论。通过深入调查,我们希望帮助研究人员认识到以不同的形式纳入知识,并鼓励对现有技术进行调整和改进,以适应快速发展的LLM领域。

总之,我们的贡献如下:

  • 我们将多模态检索增强生成确立为一组重要的方法,这组方法是随着 LLM 的最新进展而出现的。

  • 对于常见的模式,我们对研究论文进行了深入评述,分析了它们之间的内在联系和共同面临的挑战。

  • 我们对未来的发展方向进行了翔实的分析,其中可能包含应对当前许多挑战的有前途的解决方案。

2 定义和背景

为了更好地理解多模态检索增强的现状和发展,我们首先定义并讨论了两个关键概念的背景:多模态学习和检索增强生成(RAG)。

2.1 多模态学习

多模态学习是指学习不同模态数据的统一表征。其目的是提取互补信息,以促进合成任务的完成。多模态生成模型应用广泛,如文本-图像生成、创意写作生成和多语言翻译。例如,图像识别任务可以从结合文本描述分析图像和视频中获益。相反,结合视觉信息也有助于语言的理解和生成。此外,它们还能使模型从多种信息源中学习并整合多种信息源,从而有可能显著改善各个领域的机器学习系统。此外,人们对开发可输出多种模式数据的生成模型越来越感兴趣。然而,多模态生成模型仍面临挑战,如获取大量多模态数据和设计能产生有语义输出的网络。

图片

2.2 检索增强生成(RAG)

RAG 通常包括两个阶段:检索上下文相关信息和使用检索到的知识指导生成过程。最近,由于通用大型语言模型(LLMs)的兴起,RAG在自然语言处理(NLP)领域越来越受欢迎,从而提高了各种 NLP 任务的性能。然而,目前存在两个主要挑战:首先,由于生成模型依赖于内在知识(权重),因此会产生大量的幻觉。其次,由于参数量大,更新成本高,传统的预训练和微调方法已变得不可行。作为一种解决方案,RAG 方法为 LLMs 与外部世界有效互动提供了一个很有前景的解决方案。

图片

RAG 被广泛应用于下游 NLP 任务,包括机器翻译、对话生成、抽象概括和知识密集型生成。其中,大多数方法侧重于检索文本信息。例如 Guu et al. (2020b) 和 Izacard et al. (2022) 将检索系统与编码器或序列到序列 LM 联合训练,取得了与使用更多参数的大型 LM 相当的性能。最近的研究还提出将检索系统与思维链(CoT)推理提示相结合,以增强语言模型。

图片

3 多模态检索增强生成

每种模式都有不同的检索和合成程序、目标任务和挑战。因此,我们将相关方法按模式分组进行讨论,包括图像、代码、结构化知识、音频和视频。

3.1 图片

预训练模型的最新进展为一般图像-文本多模态模型提供了启示。然而,这些模型需要大量的计算资源进行预训练,并需要大量的模型参数,因为它们需要记忆大量的世界知识。更关键的是,它们无法有效处理新知识或领域外知识。为此,人们提出了多种检索增强方法,以更好地整合来自图像和文本文档的外部知识。

图片

视觉问题解答(Visual question answering, VQA) 

为了解决开域 VQA 问题,RA-VQA通过对检索到的文档进行近似边缘化预测,联合训练文档检索器和答案生成模块。它首先利用现有的对象检测、图像标题和光学字符识别(OCR)工具将目标图像转换为文本数据。然后,它执行密集段落检索(DPR) 在数据库中提取与目标图像相关的文本文档。最后,将每个检索到的文档与初始问题连接起来,生成最终预测结果。除了外部文档,PICa (Yang  et  al. 2022b) 和 KAT (Gui  et  al. 2022) 也将 LLM 视为隐式知识库,并从 GPT-3 中提取相关隐式信息。即插即用利用 GradCAM (Selvaraju  et  al. 2017) 根据初始问题定位相关部分。然后,它对检索到的图像补丁执行图像标题处理,以获取增强上下文。除了纯文本增强上下文,MuRAG (Chen et al。, 2022b) 同时检索文本和图像数据,并将图像作为视觉标记。RAMM(Yuan  et  al. 2023) 检索类似的生物医学图像和标题,并通过不同的网络对其进行编码。

图片

图片说明 (Image captioning)

为了生成多种风格的标题,Zhou and Long (2023)使用风格感知视觉编码器在生成字幕前检索图像内容。除了简单的视觉信息编码外,Cho et al. (2022)进一步使用图像-文本对之间的多模态相似性作为奖励函数来训练一个更精细的字幕模型。除了检索图像元素外,Sarto et al. (2022)同时检索输入的相关标题。Zhou et al. (2022) 通过检索新闻文章中具有视觉基础的实体来处理新闻图像标题。

图片

有视觉基础的对话 (Visually grounded dialogue)

这项任务需要检索视觉信息以做出相关的对话反应。Fan et al. (2021)利用基于 KNN 的信息获取(KIF)模块检索图像和维基知识,从而增强了生成模型。Liang et al. (2021) 从图像索引中检索与对话相关的图像,为响应生成器奠定基础。

图片

文本生成(Text generation)

对于一般的文本生成任务,图像检索也有助于扩展上下文。Yang et al. (2022a) 通过检索现有图像和合成新生成的图像来增强文本模型的 "想象力"。因此,为语言模型注入想象力可以提高许多下游自然语言任务的性能。Fang and Feng (2022)的研究表明,通过检索短语级别的视觉信息,机器翻译可以得到显著改善,尤其是在文本上下文有限的情况下。图像 RAG 还能帮助医疗报告生成等低资源任务和建筑描述生成。

除了在生成文本之前检索图像之外,Re-Imagen (Chen et al. 2022) 利用多模态知识库检索图像-文本对,以促进图像生成。RA-CM3可以生成图像和文本的混合物。它表明,在知识密集型生成任务中,检索增强图像生成的效果要好得多,并开辟了多模态语境学习等新功能。

图片

3.2 代码

软件开发人员试图从大量可用资源中搜索相关信息,以提高他们的工作效率,这些资源包括未知术语的解释、可重复使用的代码补丁以及常见编程错误的解决方案。受 NLP 深度学习进展的启发,一种通用的检索增强生成范式已经使包括代码补全在内的各种代码智能任务受益匪浅 (Lu et al。, 2022b)、代码生成 (Zhou et al。, 2022b) 和自动程序修复 (APR) (Nashid et al。, 2023)。然而,这些方法通常将编程语言和自然语言视为等价的标记序列,忽略了源代码固有的丰富语义。为了解决这些局限性,最近的研究工作主要集中在通过多模态学习提高代码泛化性能上,这种学习将代码注释、标识符标签和抽象语法树(AST)等附加模态纳入代码预训练模型。为此,多模态检索增强生成方法已在各种特定代码任务中证明了其可行性。

图片

文本到代码生成(Text-to-Code Generation)

许多研究都探讨了如何利用相关代码和相关文件来改进代码生成模型。一个突出的例子是 RED-CODER (Parvez et al. 2021) 该方法从现有代码库中检索排名靠前的代码片段或摘要,并将它们与源代码序列聚合在一起,以增强代码生成或摘要功能。作为另一种此类方法,DocPrompting (Zhou et al. 2022) 使用一组相关文档作为上下文提示,通过检索生成相应的代码。除了这些词法模态外, Hayati et al. (2018)还开发了一种新的词法模态,提出了一种基于语法的代码生成方法,将 AST 中的现有子树作为模板,明确地指导代码生成。

图片

代码到文本的生成(Code-to-Text Generation)

基于检索的代码总结方法已被广泛研究。例如,RACE (Shi  et  al。, 2022) 利用相关代码差异及其关联的提交信息来增强提交信息的生成。此外,RACE 还计算源代码差异和检索到的差异之间的语义相似性,以权衡不同输入模式的重要性。Rencos (Zhang  et  al. 2020) 根据给定查询代码的语法级相似性和语义级相似性检索两个相似的代码片段。然后在解码阶段将这些相似上下文纳入摘要模型。这一想法在 Liu et al. 2021 对这一想法进行了进一步的探索,其中检索到的代码摘要对被用来增强原始代码属性图。为了捕捉全局语义以便更好地学习代码结构,一种全局结构感知的自我关注机制也被提出来 (Zhu et al。, 2019)。

图片

代码补全(Code Completion)

基于检索的代码完成任务的最新进展越来越受到关注。值得注意的是,Hashimoto et al. (2018)调整了检索和编辑框架,以提高模型在代码自动完成任务中的性能。为了解决实际的代码自动完成问题,ReACC (Lu et al. 2022) 同时考虑了未完成代码片段的词汇和语义信息,利用混合技术将基于词汇的稀疏检索器和基于语义的密集检索器结合起来。首先,混合检索器根据给定的未完成代码从代码库中搜索相关代码。然后,将未完成代码与检索结果连接起来,并由自动回归代码完成生成器根据它们生成完成代码。为了处理项目关系,CoCoMIC (Ding et al. 2022) 将代码文件分解为四个部分:文件、全局变量、类和函数。它根据所有相关代码组件之间的层次关系构建文件内上下文图,通过考虑文件内和跨文件的依赖关系形成项目级上下文图。给定一个不完整的程序,CoCoMIC会从项目级上下文图中检索最相关的跨文件实体,并联合学习不完整程序和检索到的跨文件上下文,以完成代码。

图片

自动程序修复 (Automatic Program Repair,APR)  

受到提交中很大一部分是现有代码提交的启发 (Mar-tinez et al. 2014),APR 通常被视为一个搜索问题。Qi et al. 2014提出通过遍历修复成分的搜索空间来确定正确的修复方法,White et al. 2019指出基于冗余假设在搜索空间中往往可以重构目标修复。最近的研究表明,从现有搜索空间中挖掘相关的错误修正模式 (Jiang et al. 2018) 和 StackOverflow 的外部修复模板 (Liu and Zhong. 2018) 可大大有利于 APR 模型。Joshi et al. 2022根据错误信息的相似性对错误-修复对集合进行直观排序,从而开发出少量提示信息。他们将编译器错误信息纳入大型编程语言模型 Codex,用于多语言 APR。CEDAR (Nashid et al. 2023) 将这一想法进一步扩展到基于检索的提示设计,使用相关代码演示,包括更多模式,如单元测试、错误类型和错误信息。此外,Jin et al. (2023) 利用静态分析器 Infer 提取错误类型、错误位置和语法层次结构 (Clement et al. 2021)对焦点上下文进行优先排序。然后,他们从现有的错误修复代码库中检索语义相似的修复,并将检索到的修复和焦点上下文串联起来,形成程序修复的指令提示。

图片

作为中间步骤的代码推理(Reasoning over Codes)

虽然大型语言模型(LLMs)近来在执行推理任务方面表现出了令人印象深刻的能力,但它们仍然容易出现逻辑和运算错误。为缓解这一问题,新出现的研究论文侧重于使用代码的 LLMs,例如Codex 来生成解决逻辑和算术任务的代码命令,并调用外部解释器来执行命令以获得结果。值得注意的是 Gao et al. (2022) 建议生成 Python 程序作为中间推理步骤,并将求解步骤卸载(offload)给 Python 解释器。此外,Chen et al. (2022)探索生成思维链(CoT)不仅针对文本,还针对编程语言语句,将其作为解决问题的推理步骤。在推理阶段,通过外部解释器获得答案。类似的例子还有 Lyu et al. (2023) 提出的 Faithful CoT 首先将自然语言查询转化为符号推理链,然后通过调用外部执行器来求解推理链,从而得出答案。另一个例子是 Ye et al. (2023) 利用 LLMs 将基于表格的推理任务分解为子任务,通过 Codex 的 SQL 查询在每个步骤中解耦逻辑和数值计算,并调用 SQL 解释器来解决它们(这一过程称为 "解析-执行-填充", "parsing-execution-filling"))。

图片

代码的 LLM 也被称为结构良好的常识推理器,甚至比 LLM 结构更好的推理器 (Madaan et al. 2022)。因此,之前的研究也探讨了将结构化常识生成任务转化为代码生成问题,并采用代码的 LLMs 作为求解器的想法。CoCoGen (Madaan et al. 2022)将每个训练样本(由文本输入和输出结构组成)转换为 Python 中的树类。然后,代码的 LLMs 对文本输入进行少量推理,生成 Python 代码,再将 Python 代码转换回原始结构进行评估。此外,代码的 LLMs(如 Codex)在合成计算机代码方面的成功也使其适用于生成形式化代码。受此启发 Wu et al。(2022b)提出采用 Codex 从自然语言数学中生成形式化定理,为交互式定理证明器 Isabelle (Wenzel et al. 2008)。

3.3 结构化知识

生成模型的一个公开挑战是幻觉,即模型很可能输出错误信息。因此,一个潜在的解决方案是利用检索到的结构化知识(如知识图谱、表格和数据库)进行基础生成。

问题解答(Question Answering,QA)

使用知识的一个自然环境就是QA。为了通过提取最相关的知识来增强知识库,Hu et al. (2022b)使用密集检索,而Liu et al. (2022b)使用交叉编码器排序器。Shu et al.(2022) 采用多粒度检索来提取相关知识库上下文,并使用约束解码来控制输出空间。在表 QA 中,Nan et al. (2022)提出了一种需要检索相关表格来生成答案的数据集。Pan et al. (2021)则提出了一种方法,利用基于Transformer的系统来检索最相关的表格并定位正确的单元格。此外,为了提高视频问答QA效果, Hu et al. (2023) 从存储在内存中的知识图谱(KG)编码中进行检索。

图片

最突出的 RAG 应用仍然是在开放领域的问答QA中,为了这个任务有学者已经提出了多个数据集。Ma et al. (2022) 将KG用语言表达(verbalize KG),然后使用密集段落检索。Fan et al. (2019); Gupta et al. (2018) 将 KG 信息编码成密集表征。Pramanik et al. (2021); Jin et al. (2022)建立图嵌入来检索与问题相关的证据。Xu et al. (2021); Baek et al. (2023) 使用语义相似性和文本匹配方法。在合成方面,(Ma et al., 2022; Fan et al., 2019)调整生成器,使其接受上下文表征作为输入。Xu et al. (2021); Baek et al. (2023) 将检索到的上下文作为附加输入或提示输入PLM。一项有趣的工作是Hu et al. (2022c),在 PLM 中插入了一个交互层,以指导外部 KG 推理模块。

一般文本生成(General text generation)

外部知识检索可以改进一般文本的生成,使其更有事实根据。Liu et al. (2022)提出了一种在知识图谱(KG)上调节自回归语言模型的记忆增强方法。Tan et al. (2022) 通过密集检索选择知识条目,然后将其注入预训练语言模型 (PLM) 的输入编码和输出解码阶段。对于特定领域的文本生成,, Frisoni et al. (2022); Yang et al. (2021); Li et al. (2019)检索医疗报告块或报告模板,并使用自编的解码器或图形转换器生成接地报告。为提高可解释性,可使用 RAG 选择事实作为可解释的推理路径。此外,RAG 特别适用于低资源生成任务,如问题生成 (Yu and Jiang, 2021;Xin et al., 2021; Gu et al., 2019)、文件到幻灯片(Sun et al., 2021), 表格到文本 (Su et al., 2021), 反驳生成 (Jo et al., 2021),实体描述生成 (Cheng et al., 2020) 和基于文本的游戏 (Murugesan et al., 2021)。

最近的研究试图利用外部结构化知识来减少 LLM 的幻觉。例如,在微调过程中,LaMDA (Thoppilan et al., 2022) 学会在响应用户之前咨询外部知识源,包括一个可以检索知识三元组和网络URL的信息检索系统。一些论文将生成模型(通常是大型语言模型)视为黑箱,检索结构化信息时不进行微调。例如,BINDER (Cheng et al., 2023) 利用上下文学习输出设计好的 API 调用,从表格中检索与问题相关的列。

图片

用知识推理(Reasoning with knowledge)

通过选择知识,推理任务就能以更接地气、更可解释的方式得到解决。为给定假设生成蕴涵树解释,Neves Ribeiro et al. (2022)从文本前提中反复检索,并将其与生成相结合。Yang et al. (2022c)提出了一种数学推理器,它首先检索高度相关的代数知识,然后将其作为提示,以改进生成任务的语义表征。随着 LLMs 的不断进步,He et al. (2022a); Li et al. (2023b) 根据从思维链(CoT)提示中获得的推理步骤,从 KG 和 KB(如 Wikidata)中进行检索。

图片

以知识为基础的对话(Knowledge-grounded dialogue)

基于相关表格和知识库的对话生成一直是一项实用的研究应用。为了应对这一挑战, Li et al. (2022c) and Galetzka et al.(2021) 检索相关知识,将其处理为密集表征,并将其纳入对话生成。在密集表征的基础上,Gu et al. (2020) and Jung et al. (2020) 利用注意力机制灵活调整生成过程中依赖的知识。一些方法首先生成子目标或响应,然后利用它们检索相关知识。检索到的知识有助于修正之前的回应。除了知识之外,Cai et al.(2019) and Wu et al. (2020)通过检索模板或原型对话来改进对话应答的生成。最近,Kang et al. (2023)从 KG 中检索相关子图,然后利用对比学习确保生成的文本与子图高度相似。

图片

通过从相关来源检索,RAG 不仅提高了事实性,还在生成时提供了基础上下文,从而解决了可解释性和鲁棒性问题。随着 LLMs 的最新进展,RAG 有可能处理更多的信息类型,使用结构化知识的 RAG 可以得到进一步增强。仍有一些挑战有待解决。例如,可以对更好的检索系统进行新的设计,促进适合不同知识库的高效互动。正确合成这些信息也是一个公开的挑战,因为很难决定在文本输出中哪些部分需要增强。

3.4 音频

音频 RAG 应用包括音频数据增强、音乐字幕、音乐和文本生成以及语音识别。这可能是一个很有前景的未来发展方向。

文本音频数据增强(Text-audio data augmentation)

对于文本-音频任务来说,最重要的挑战之一是缺乏音频-文本对的训练数据。因此,检索音频和文本线索可以缓解数据匮乏问题并提高性能。在音频字幕制作中,其目的是将输入音频翻译成字幕描述,Koizumi et al. (2020)从训练集中检索与输入音频相似的引导字幕。然后,将检索到的指导字幕输入 PLM,帮助生成新字幕,从而提高字幕生成性能。为了增强稀缺的语音翻译(ST)数据,Zhao et al. (2023a)提出了一种将机器翻译(MT)数据转换为合成 ST 数据的技术--SpokenVocab。为了形成合成语音,SpokenVocab 会检索并拼接与 MT 句子中单词相对应的音频片段。实验表明,拼接音频片段可以提高翻译质量。Kim et al.(2023)利用 PLM 解决了数据稀缺问题,它从输入音频中检索特征,使用映射网络将其映射为连续向量,并使用向量作为前缀对 PLM 进行前缀调整。利用从检索到的音频中获取的额外信息,该方法的性能优于之前的方法。在文本到音频生成方面,Huang et al.(2023) 利用音频文本检索获取伪文本提示,从而在数据稀缺的情况下增强音频生成。在政治辩论中增强论证挖掘(AM)任务,Mestre et al. (2023) 将音频特征集成到 PLM 中,从而在数据稀缺时提高性能。

图片

音乐字幕(Music captioning) 

音乐字幕是根据音乐音频生成文字说明或歌词的任务。而 RAG 则被用来学习更好的音频-词条对齐。Manco et al. (2021) 提出了第一个音乐音频字幕模型 MusCaps。首先,一个经过预训练的多模态编码器获取音频表示,检索输入中的音乐特征。由于预训练弥补了音频模态和文本理解之间的差距,该方法提高了任务性能。He et al. (2022)通过对比学习来学习音频-词性对齐,从而生成更高质量的音乐字幕。

图片

音乐生成(Music generation)

Royal et al. (2020)使用深度神经散列检索音乐构建块,然后通过使用当前音乐片段检索下一个音乐片段来执行生成。在自动语音识别(ASR)中, Chan et al. (2023)使用 k 近邻(KNN)方法检索与音频和文本嵌入相关的外部知识。检索到的知识大大减少了 ASR 的域适应时间。

图片

音频模式与视频等其他模式密切相关。因此,最近在利用音频特征进行文本-视频检索方面取得的进展可以使涉及其他模式的 RAG 任务受益。此外,尽管音频文本检索是一项历史悠久的任务,探索最近发现的技术可能会带来进一步的改进。

3.5 视频

检索视频片段进行生成主要用于两项任务:视频基础对话和视频字幕。最近,利用视频检索增强 LLM 也显示出良好的性能,尤其是在少镜头的情况下。

视频对话(Video-grounded dialogue)

给定视频上下文后,该模型就能学会参与相关对话。Pasunuru and Bansal (2018)引入了一个视频语境多说话者对话数据集,挑战研究人员开发基于视觉的对话模型,从实时视频中生成相关回应。类似的还有Lei et al.(2020)提出了 TVQA+,这是一个需要检索相关视频片段以回答有关视频的文本问题的数据集。然后,他们提出了一个统一的框架,将视频片段编码为表征,使用注意力机制定位相关信息,并生成文本答案。为了更好地完成以视觉为基础的对话任务,Le et al. (2020)从先前的用户查询中检索视觉线索。然后将这些线索作为上下文信息来构建相关回复。在视频对话方面,它大大优于先前的方法。最近Le et al. (2022) 从视频中提取视觉线索来增强基于视频的对话。视频检索是通过神经模块网络进行的,而神经模块网络是根据以前对话中的实体和动作实例化的。

图片

视频字幕(Video captioning) 

Long et al. (2018)首次提出使用注意力层来自动选择最显著的视觉或语义特征,并利用它们来增强标题的生成。结果,它的性能稳定地超过了以前的方法。Whitehead et al. (2018) 随后开发了一种基于检索的视频描述生成方法。对于新闻视频,它检索与主题相关的新闻文档,然后利用知识感知视频描述网络生成描述。

图片

LLM增强(LLM augmentation)

Wang et al. (2022)试图通过几个例子来增强 LLM,使其能够通用于各种视频到文本的任务。由于 LLM 无法接受视频输入,因此它首先使用图像语言模型将视频内容翻译成属性,然后提示检索到的内容以指导 LLM。它在各种视频-语言任务中都取得了良好的效果。

目前,视频-文本研究的瓶颈主要在于不同模态之间的表征差距。研究人员一直在尝试通过联合学习来学习视频与文本之间更好的映射。近期关于密集视频表示学习的研究也有助于未来的视频 RAG 研究。此外,一些论文(Yang et al., 2023a; Wang et al., 2021a) 试图在不同模态之间引入细粒度的交互。Zeng et al. (2022)鼓励不同模态的多个预训练模型以zeroshot方式相互交换信息。最近Zhang et al. (2023)对 Video-Llama 进行了训练,以使预训练的视频和音频编码器更好地与 LLM 的嵌入空间保持一致。

图片

4 未来发展方向

4.1 检索增强型多模态推理

检索增强型多模态推理(Retrieval Augmented Multimodal Reasoning)

多模态 RAG 的一个潜在应用是多模态推理。Lu et al. (2022a)首先介绍了ScienceQA,这是一个大规模的多模态科学问题数据集,注有讲义和解释。随后,Zhang et al. (2023b) 提出了多模态思维链(Multimodal-CoT),它将语言和视觉模态纳入两阶段(理由生成和答案推理)框架,以更小的微调模型大大超过了GPT-3.5。kosmos-1 (Huang et al. 2023b) 将多模态推理分解为两个步骤。它首先根据视觉信息生成中间内容作为推理依据,然后使用生成的推理依据得出结果。然而,这两种方法都可能难以理解某些类型的图像(如地图),这可以通过检索信息丰富的图像-文本对来缓解。

图片

4.2 构建多模态知识索引

构建多模态知识索引(Building a Multimodal Knowledge Index)

为了促进多模态 RAG,最基本的一个方面是建立多模态知识索引。其目标有两个方面:首先,密集表征应支持低存储量、知识库的动态更新和精确搜索。其次,在局部敏感哈希算法(Local sensitive hashing)的帮助下,可以提高搜索速度的帮助下提高搜索速度,从而在知识库极度扩大时解决扩展性和鲁棒性问题。

目前,针对文档的文本片段密集表示法已得到广泛研究(Karpukhin et al., 2020b; Gao and Callan 2021; Gao et al. 2021),实体  (Sciavolino et al. 2021; Lee et al.2021a) 和图像 (Radford et al., 2021a)。此外,还有一些研究以端到端方式优化密集表示(Lewis et al., 2020)。然而,很少有论文 (Chen et al., 2022a)探讨了为下游生成任务同时建立多模态索引的问题。如何将多模态知识索引映射到一个统一的空间仍然是一个长期的挑战。

图片

4.3 多模态检索预训练

多模态检索预训练(Pretraining with Multimodal Retrieval)

为了更好地调整预训练模型处理不同模态的能力,未来的工作可以在预训练过程中采用基于检索的方法。目前,有些方法会对预训练生成模型进行微调,以学习从不同模态进行检索。例如,LaMDA (Thoppilan et al., 2022) 调用外部工具集进行微调,包括信息检索系统。同样,在微调过程中,Toolformer(Schick et al., 2023)通过 API 调用工具(包括质量保证系统和维基百科搜索引擎)来增强模型。

如果在预训练期间利用类似的检索能力,生成模型就能更好地与检索工具互动。这样,它们就可以有效地利用外部基础来输出更多有根据的信息,为用户提供相关的上下文,并相应地更新其信息,而不是仅仅依赖于内部权重。这种预训练技术还能大大提高域外任务的鲁棒性。举个例子Guu et al. (2020a)利用外部知识检索器增强了预训练,其效果优于之前的方法。

要将检索与预训练结合起来,仍面临着开发标有检索 API 调用的适当数据集的挑战。为了应对这一挑战,LaMDA (Thoppilan et al., 2022)使用由人工标注者开发的标签,而收集这些标签的成本可能很高。Toolformer(Schick et al., 2023)使用采样和过滤方法进行自动标注,这种方法成本低廉,但可能会产生偏差。一种潜在的解决方案是使用神经符号方法 (Davoudi and Komeili, 2021),该方法在训练过程中使用原型学习和 deepKNN 寻找近邻。

图片

5 结论

本综述回顾了通过检索多模态信息来增强生成模型的研究。具体来说,我们将当前的研究领域分为不同的增强模式,包括图像、代码、结构化知识、语音和视频。随着大型多模态模型的出现,我们认为本调查报告可以作为对这一新兴且前景广阔的领域的全面概述。此外,我们还希望它能鼓励该领域的未来研究,包括检索增强多模态推理、构建多模态知识索引以及将检索与预训练相结合。

6 局限性

RAG 也有一些局限性。例如,在归因和流畅性之间存在权衡 (Aksitov et al. 2023),由于检索知识的额外限制,输出质量会受到影响。

A附录

A.1 搜索标准和结果

在检索 ACL 文集文章时,我们使用关键词检索标题和摘要。我们严格执行关键词 "retriev"。然后,我们强制 "generat "或 "ground "出现。然后,我们为每种模式添加特定模式的关键词:图像模式的关键词为 "图像",代码模式的关键词为 "代码",结构化知识模式的关键词为 "结构化知识/表格/数据库/知识图谱 "中的任意一个,音频模式的关键词为 "音频/语音 "中的任意一个,视频模式的关键词为 "视频"。

在 Google Scholar 上搜索时,我们添加了关键词 "语言模型",以选择更多与 NLP 相关的文章。然后,我们对返回结果的前 3 页进行人工筛选。检索和分析的研究论文数量见表1。

图片

图1显示了论文数量在不同时期的变化趋势分析。我们可以发现,多模态检索-增强生成领域确实有了很大的发展,在 2022 年底左右达到高峰。这一观察结果与我们的假设是一致的,即多模式 RAG 在大型通用模型时代尤为重要和有用。

图片

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

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

相关文章

Github项目推荐-clone-voice

项目地址 GitHub - jianchang512/clone-voice 项目简述 一个声音ai工具。基于python编写。作用是音色复用。下面是官方说明:“这是一个声音克隆工具,可使用任何人类音色,将一段文字合成为使用该音色说话的声音,或者将一个声音使…

行为型设计模式——模板方法模式

学习难度:⭐ ,比较常用 模板方法模式 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知&#xff0…

SpringBoot项目的两种发布方式(jar包和war包)

SpringBoot项目的两种发布方式&#xff08;jar包和war包&#xff09; 在springboot入门和项目示例这个项目和application.yml配置端口号和访问url路径基础上进行修改 1、使用jar包方式发布 1.1、在pom.xml中添加一个SpringBoot的构建的插件 <build><plugins>&l…

腾讯云服务器多少钱?2024年腾讯云服务器报价明细表

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

测试人,你还在写用例吗?是什么在支撑着你写?

测试交付的过程&#xff0c;通常是伴随的是一个测试用例生命周期过程&#xff0c;通常有测试需求分析、测试用例设计、测试用例实现、测试用例执行&#xff0c;以及测试用例管理等几个阶段组成。 为什么要有测试用例&#xff1f; 首先测试用例这是测试岗位的基本交付物之一。开…

第10章-特殊函数-贝塞尔函数

贝兹函数又称贝塞尔曲线&#xff0c;是计算机图形学中相当重要的参数曲线&#xff0c;在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。 贝塞尔函数由线段和节点组成&#xff0c;节点是可拖动的支点&#xff0c;线段像可伸缩的皮筋&#xff0c;通过 控制曲线上的4个点&…

LeetCode 144. 94. 145. 二叉树的前序,中序,后续遍历(详解) ੭ ᐕ)੭*⁾⁾

经过前面的二叉树的学习&#xff0c;现在让我们实操来练练手~如果对二叉树还不熟悉的小伙伴可以看看我的这篇博客~数据结构——二叉树&#xff08;先序、中序、后序及层次四种遍历&#xff08;C语言版&#xff09;&#xff09;超详细~ (✧∇✧) Q_Q-CSDN博客 144.二叉树的前序遍…

你知道程序员如何利用citywork实现财富自由吗?

周末到了&#xff0c;我要去citywalk寻找心灵的呼吸&#xff01;”有谁没有设想过疲惫的工作日之后好好地去走一走&#xff0c;亲近大自然呢&#xff1f;谁又不想在闲暇之余唤起对生活的趣味呢&#xff1f;可是对于我们悲催的打工人而言&#xff0c;没有citywalk&#xff0c;只…

class_5:在c++中一个类包含另一个类的对象叫做组合

#include <iostream> using namespace std;class Wheel{ public://成员数据string brand; //品牌int year; //年限//真正的成员函数void printWheelInfo(); //声明成员函数 };void Wheel::printWheelInfo() {cout<<"我的轮胎品牌是&#xff1a;"<…

任务10:安装配置Java开发环境

任务描述 知识点&#xff1a; Java开发工具Maven配置 重 点&#xff1a; 安装配置Java开发工具 IDEA为IDEA配置自定义Maven&#xff08;国内源&#xff09; 内 容&#xff1a; 下载并配置JDK 1.8下载安装IDEA为IDEA配置自定义MavenWindows环境安装配置Hadoop 任务指导…

C#/.NET学习值得推荐的在线论坛和技术社区

前言 本文来源于知乎的一个提问&#xff0c;C#/.NET程序员学习有哪些值得推荐的在线论坛和技术社区&#xff1f;其实很早之前DotNetGuide就已经新增了C#/.NET/.NET Core充电站栏目&#xff0c;当然大家有更好的.NET相关学习站点和资源欢迎PR投稿&#x1f91e;。 GitHub - YSGS…

GO——cobra

定义 Cobra 是 Go 的 CLI 框架 CLI&#xff0c;command-line interface&#xff0c;命令行界面 使用 注意 第一个cmd的USE即使命名了也没有意义&#xff0c;一般保持和项目名一致。 示例 package mainimport ("fmt""github.com/spf13/cobra" )func …

C语言中对变量的理解

变量(variable)是程序中不可或缺的组成单位&#xff0c;是最基本的存储单元。 1.什么是变量&#xff1f; Ⅰ.概念&#xff1a; 内存中的一个存储区域&#xff0c;该区域的数据可以在同一类型范围内不断变化。 通过变量名&#xff0c;可以访问这块内存区域&#xff0c;获取里…

信息安全导论期末复习

信息安全导论 第二章 古典密码 凯撒密码 维吉尼亚密码 仿射加密 这是一种扩展的移位变换 示例&#xff1a; 仿射加密难点在于求逆元 近代密码 希尔密码 现代密码 数学基础 辗转相除法 用于求最大公因子&#xff0c;最大公因子的值就是所列式子中最后一个不为零的余…

6.3、SDN在云计算中的应用

目录 一、SDN概念 1.1、传统网络机制 1.2、SDN网络机制 1.3、二者区别 1.4、SDN架构 二、云数据中心 2.1、公有云环境特点 2.2、两大挑战 2.3、云数据中心引入SDN技术解决两大挑战 三、SDN云计算解决方案 3.1、SDN云计算解决方案之控制平面openflow协议 3.1.…

Linux的基础命令学习

pwd - 显示当前工作目录的路径 cd - 切换工作目录&#xff0c;ls - 列出当前目录的文件和子目录 rm - 删除文件或目录 mkdir - 创建新目录 rm - 删除目录 nano/vi - 编辑文本文件&#xff0c;按Enter键进入 之后按i键就可以进入写入模式 之后输入文字以后按Esc键与:q就不保…

C# 图解教程 第5版 —— 第22章 命名空间和程序集

文章目录 22.1 引用其他程序集22.2 命名空间22.2.1 命名空间名称22.2.2 命名空间的补充22.2.3 命名空间跨文件伸展22.2.4 嵌套命名空间 22.3 using 指令22.3.1 using 命名空间指令22.3.2 using 别名指令22.3.3 using static 指令 22.4 程序集的结构22.5 程序集标识符22.6 强命名…

Camunda Asynchronous continuations

示例一 Service public class ExceptionService implements JavaDelegate {Overridepublic void execute(DelegateExecution execution) {System.out.println(1/0);} }ACT_RU_TASK &#xff1a;明明是UserTask2完成任务了&#xff0c;ServiceTask内部出错了&#xff0c;按说事务…

Spring Boot接口请求响应慢,超过10秒以上,如无法优化SQL或代码的情况下,建议写入数据库或缓存中,请求接口时从数据库或缓存中读取返回

举例 Override public Map<String, Object> getCockpitStaffAttendanceTask() {Map<String, Object> map new HashMap<>();int chuqin 0; //出勤int queqin 0; //缺勤int chidao 0; //迟到int zaotui 0; //早退//获取所有设备卡号 并且已经绑定了人Lis…

MS-DETR: Efficient DETR Training with Mixed Supervision论文学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2401.03989.pdf 代码地址&#xff08;中稿后开源&#xff09;&#xff1a;GitHub - Atten4Vis/MS-DETR: The official implementation for "MS-DETR: Efficient DETR Training with Mixed Supervision" 摘要 DETR 通过迭代…