博客 RAG 与 RAU:综述 | 检索增强语言模型进展

RAG 与 RAU:综述 | 检索增强语言模型进展

   数栈君   发表于 2024-05-14 16:26  393  0

RAG 与 RAU:综述 | 检索增强语言模型进展

发布时间:2024 年 04 月 30 日

RAG

RAG and RAU: A Survey on Retrieval-Augmented Language Model in Natural Language Processing

大型语言模型(LLMs)极大地推动了自然语言处理(NLP)的发展,但同时也面临着幻觉现象和对特定领域知识的依赖等挑战。为了应对这些挑战,最新的研究方法开始将外部资源检索到的信息与 LLMs 相结合,显著提升了模型在各类 NLP 任务中的表现。本篇综述文章填补了对检索增强语言模型(RALMs)——包括检索增强生成(RAG)和检索增强理解(RAU)——全面概述的空白,深入探讨了它们的模式、发展、分类法和应用场景。文中详细阐述了 RALMs 的核心组件,包括检索器、语言模型和增强手段,以及这些组件如何相互作用,形成多样化的模型架构和应用。RALMs 在多种任务中都显示出其实用性,包括翻译、对话系统和知识密集型应用。文章还包含了对 RALMs 的多种评估方法,特别强调了评估过程中对鲁棒性、准确性和相关性的关注。同时,也指出了 RALMs 的局限性,尤其是在检索质量和计算效率方面,并对未来的研究方向提出了建议。总结而言,本综述旨在提供对 RALMs 的结构化理解,探讨其潜力及其在 NLP 领域未来发展的可能路径。此外,文章还提供了一个包含相关研究和资源的 Github 仓库,供进一步研究使用:https://github.com/2471023025/RALM_Survey。

https://arxiv.org/abs/2404.19543

背景

自然语言处理(NLP)在计算机科学与人工智能的领域中占据着核心地位,实现人与计算机间的自然语言高效交流。自然语言处理(NLP)融合了语言学、计算机科学和数学,目标是实现人类语言与计算机数据的无缝转换。NLP的终极目标是赋予计算机处理和理解自然语言的能力,以支持自动翻译、文本分类和情感分析等任务。NLP的复杂性在于它包含的多个步骤,如词法分析、词性标注、句法解析、词干提取、命名实体识别等,这些都是模拟人类语言理解的关键挑战。

传统NLP任务多采用基于统计的算法和深度学习算法,如卷积神经网络(CNN)、递归神经网络(RNN)、长短期记忆网络(LSTM)等。变革性的transformers架构作为NLP的新宠。

最近,大型语言模型(LLM)如GPT和Bert家族在多种NLP任务中展现出色的表现。自编码器(AutoEncoder)语言模型擅长自然语言理解任务,而自回归语言(AutoRegressive)模型更适合于自然语言生成任务。尽管增加模型参数和调整可以提升性能,但“幻觉”现象和知识更新不及时的问题仍然存在。为了解决这些问题,研究人员采用检索技术来获取外部知识,以提高语言模型在多任务中的表现。

尽管如此,关于如何通过检索增强提升LLM性能的研究仍然不足。当前的研究或是缺乏全面性,或是在介绍检索器和生成器时缺乏整合性,影响了对后续工作升级和交互的理解。

作者这篇文章旨在填补这一空白,不仅全面概述了与RAG相关的工作,还特别强调了检索增强语言模型(Retrieval-Augmented Language Models, RALM)的概念,并详细描述了其组成部分——检索器和语言模型,以及它们之间的不同交互模式。文章还提供了RALM工作计划的全面概述,总结了当前RALM的常见和新颖应用,并分析了其局限性,同时提出了解决这些局限性的潜在方案和未来研究方向的建议。

从定义RALM开始,逐步深入到检索器和语言模型的具体工作,再到RALM的特定增强、数据来源、应用、评估和基准,最后讨论了现有RALM的局限性和未来工作的方向。下图提供了RALM方法框架概览。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/840de8a9033b3e77926f7be980fe1c6c..jpg

三种检索器与LM交互方式

检索增强语言模型(RALM)通过整合检索得到的信息来提升语言模型(LM)的输出质量,从而满足用户的需求。按照检索器与大语言模型的交互方式,可以分为三种框架(如下图)。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/7624d599686223a47a79e8464b865999..jpg

顺序单次交互(Sequential Single Interaction)

检索器根据输入的Query检索出Top K个最相关文档,然后大语言模型根据Query和Top K个问答生成回答。RALM概念提出后,顺序单次交互的方式最符合原始的RALM概念,所以也是使用的比较多的一种交互方式。

顺序多次交互(Sequential Multiple Interactions)

随着检索增强语言模型(RALM)技术的不断进步,大家意识到单一的交互过程难以满足长篇幅对话生成和解决多步骤问题的需求。因此,提出了一种允许检索器与语言模型进行多轮交互的新方法。在此方法中,研究者首先让语言模型生成输出,随后根据需要进行检索操作。

并行交互模式 (Parallel Interaction)

前面两种模式,信息传递都是有清晰的顺序,要么是从检索器到大语言模型,或者从大语言模型到检索器。但是这种顺序化的流程,并非在所有场景下都是最优解,可能在扩展上存在局限。因此,大家提出了一种新的并行处理结构(如上图)。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/e29e70bd4aef2e49256f10a8521bc554..jpg

上图展示了三种模式的发展历程,其中,紫色部分涵盖了顺序交互(包含顺序单次和顺序多次) RALM 模型的研究工作,红色框框定了顺序多次交互 RALM 模型的研究范畴,而黄色区域则标志着并行交互 RALM 模型的研究领域。

检索器

在检索增强语言模型(RALM)架构中,检索器扮演着至关重要的角色。通过检索器获得的信息可以显著提高语言模型(LM)的准确性。根据检索方法方法和来源被分类为四个类别:稀疏检索、密集检索、互联网检索和混合检索。下表列出了各种检索器的汇总信息。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/78e8ca6b8f35f02187d7dc1ed88d0e9f..jpg

稀疏检索

最开始提出检索技术的时候,稀疏检索是一种简单有效的工具,特别是在解决基于知识的问题方面。稀疏检索的优点主要是简单,涉及的维度较少,因此很容易被应用到检索系统中去。在 RALM 中使用的稀疏检索可以分为两类:词频和稀疏向量表示。两者之间的选择取决于是否使用机器学习。

词频检索法

大家最开始采用的方式是匹配相关文本的方法,比如:TF-IDF、BM25等,这些算法非常经典,也非常高效。

  • • TF-IDF 算法通过词频(TF)和逆文档频率(IDF)来衡量信息的相关性,在语料库保持不变的情况下,每个词的 TF-IDF 值也能预先计算得出。Lazaridou 等人利用 TF-IDF 算法来匹配用户查询和 Google 搜索 API 调用所获取的信息。

  • • BM25 算法是 TFIDF 的一种升级版,它考虑用户查询并计算每个查询词对文档的相关性得分作为加权和。它使用 IDF 算法来确定每个词的权重,并引入两个调节因素以避免某一因素影响过大。因其出色的泛化性能,许多检索增强语言模型(RALM)架构,尤其是那些针对开放领域的,都采用 BM25 作为检索方法。

稀疏向量表达

随着需求的提升,单纯的词汇匹配已不足以应对挑战。虽然手动标注能够解决同义替换等问题,但这种方法耗费资源。机器学习的发展带来了新的解决方案,即利用稀疏向量来表示单词,并通过计算这些向量间的距离来进行检索。与传统的词汇匹配不同,稀疏向量表达技术为查询和文档构建了稀疏向量,旨在捕捉文本输入的深层语义,将它们嵌入到一个潜在的空间中。

密集检索

随着深度学习技术的兴起,检索领域经历了翻天覆地的变化。目前,研究者们越来越倾向于采用深度学习技术来提升检索的精确度,即便这可能会降低一定的可解释性。双编码器架构已成为构建密集检索模型的主流设计。在这种系统中,两个独立的网络分别处理查询和文档这两种不同的输入,并为它们各自生成密集的嵌入向量。因其准确性高,加之双编码器结构与 RALM(检索增强的语言模型)更为契合,大多数研究选择了使用密集索引方法来构建检索器。本文将密集检索细分为三种类型:词嵌入、多模态检索和数据蒸馏,以便更好地根据每种检索方法的特性进行分类。

词嵌入

词嵌入在自然语言处理领域是一种普遍采用的方法。它利用深度学习技术,将单词映射到更高维度的向量空间中。在 RALM 架构中,已有多篇文章采纳了这一技术,本文选取了几篇代表性的研究进行介绍。

Karpukhin 等人(2020)提出了一种名为 DPR 的检索模型,该模型能够在一个低维且连续的空间内对所有段落进行索引,从而在运行时高效地检索出与输入问题相关的前 k 个段落。DPR 使用密集编码器将文本段落映射为 d 维实数向量,为所有用于检索的 M 个段落创建索引。由于其在 RALM 架构中的卓越表现,DPR 已被众多研究者广泛采纳,包括 Lewis 等人(2020)、Izacard 和 Grave(2020b)以及 Karpukhin 等人(2020)。

Izacard 和 Grave(2020a)采取了一种与 DPR 类似的策略,但不同之处在于,他们通过共享参数,使用相同的编码函数来处理问题和段落。为了减少人工干预并降低手动标注的成本,Izacard 等人(2021)提出了另一种名为 Contriever 的检索器,该检索器通过无监督数据进行训练。它基于连续的密集嵌入,采用双编码器架构。通过对前一层的输出应用平均池化,为每个查询或文档生成一个向量表示。通过计算查询和文档对应嵌入的点积,得到它们之间的相似度分数。由于其能够利用无监督数据,Contriever 已被 Siriwardhana 等人(2023)、Sachan 等人(2021)和 Guu 等人(2020)作为 RALM 架构中的检索器采用。

多模态检索

与仅处理文本的任务相比,多模态任务的检索技术更为复杂。这是因为它们需要处理不同形态信息之间的转换。

例如,在图像-文本领域,多模态密集文本检索技术因需要处理兼顾多种模态的数据。已经开发出将文本和视觉信息编码到共享潜在空间中的方法,以便用于检索任务。

Li 等人(2022a)设计了四种匹配算法来处理多模态任务,包括句子到句子、句子到图像、词到词以及词到图像的匹配。他们采用重新加权技术以进行更精确的相关性计算,并使用余弦相似度分数作为评估每种算法效果的标准。

与此不同,Yasunaga 等人(2022)采用了 CLIP(Ramesh 等人,2022)的直接扩展,将多模态文档分割为文本和图像两部分,并使用固定的编码器进行编码。通过平均池化技术将 L2 范数缩放至 1,得到文档的向量表示。与 Li 等人(2022a)相似,他们也采用了最大内积搜索(MIPS)作为相关性评分,并最终选出 K 个文档。

知识蒸馏

知识蒸馏是一种精炼大型数据库的技术,目的是让数据库更加贴合用户的查询需求。整个过程涉及将数据从较大的预训练模型迁移到较小的模型中,通常采用嵌入式匹配等方法。随着语言模型技术的进步,研究者们也开始探索使用这些模型进行数据蒸馏的方法。

Shi 等人(2023b)采用知识蒸馏技术,将检索过程细化为四个独立步骤:

  • • 首先检索文档并计算检索概率

  • • 然后利用语言模型对这些文档进行评分

  • • 接着通过最小化检索概率与语言模型得分分布之间的 KL 散度来更新检索模型的参数

  • • 最后是异步更新数据索引

在这一技术的基础上,Lin 等人(2023a)进一步提升了知识蒸馏的精确度。他们提出了一种数据蒸馏方案,该方案融合了句子截断、查询增强以及利用多个增强器进行的增量式相关性标签增强,以提高检索的准确性。

互联网检索

随着互联网搜索技术的不断进步,互联网检索这一即插即用也逐渐进入大家视野。这种方法不仅让非专业用户也能享受到检索增强语言模型(RALM)带来的便利,同时也更加适合开放领域和泛化需求。与传统的数据库不同,这种检索模型不要求实时更新,而是依赖于商业搜索引擎的周期性更新。然而,互联网上的海量信息中充斥着不相关甚至有害的内容,这可能对 RALM 的性能构成影响。若缺乏有效的筛选机制,RALM 的效能将大打折扣。

与大多数直接利用商业搜索引擎 API 的研究不同,有人提出了一种创新的方法,即通过多个商业搜索引擎 API 进行检索。他们使用 Bing 搜索 API 为每个查询生成 URL 列表,然后利用这些 URL 作为索引,在由公共网络爬取快照构建的查找表中检索页面内容,从而为每个查询构建页面集合。在评估过程中,他会特别考虑 URL 是否指向英语维基百科,若是,则从 URL 中提取页面标题,并在维基百科数据库中进行搜索。

混合检索

在深入理解了各种检索技术的优劣后,开始倾向于将它们结合起来,以期进一步提升 RALM 架构的效能和稳定性。为了提高互联网检索的准确性,采用 TF-IDF 算法对检索结果进行评分。将每个问题作为查询,通过 Google 搜索 API 获取前 20 个 URL,然后解析 HTML 内容以提取纯净文本,为每个问题建立文档集合。将传统的基于术语的检索替换为 k-最近邻(kNN)搜索,并结合翻译模型和 BM25 算法来优化检索性能。这种方法使模型能够同时考虑术语之间的语义联系及传统的统计权重,打造出更为高效的检索系统。

语言模型的选择

以往,人类仅能通过搜索来获取信息,但随着语言模型的兴起,自然语言处理领域迎来了翻天覆地的变化,变得更加生动和富有创造力。与完全依赖训练参数来完成任务的传统语言模型(LM)不同,检索增强的语言模型(RALM)融合了检索器提供的非参数记忆和语言模型自身的参数记忆,形成了一种半参数记忆结构,从而显著提升了语言模型的性能。在 RALM 架构的研究中,将其分为三大类别:自编码器语言模型、自回归语言模型以及编码器-解码器模型(如下图)。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/623a376366c58463f8231f66f1617581..jpg

自编码器语言模型(AutoEncoder Language Model)

自编码器的核心逻辑在于将原始输入(记为 x)通过加权映射成 y,再反向映射回 z。通过迭代训练,当损失函数 L(H) 最小化,即 z 尽可能地接近 x,实现 x 的完美重构,这表明前向加权成功地学习了输入的关键特征。

大多数自编码器语言模型具有很好的泛化能力,并且是无监督学习,不需要对数据进行标注,能够自然地整合上下文语义信息。自编码语言模型广泛应用于 RALM 架构中的自然语言理解(NLU)任务。

自编码器语言模型在 NLU 任务上的表现卓越,因此许多 RALM 架构将其用于特定任务,如判断。BERT 及其改进版本是使用最广泛的模型之一。

自回归语言模型(AutoRegressive Language Model)

自回归语言模型的核心目标是基于前面的词汇来预测接下来的词。这种模型采用从左至右的语言建模方式,即在给定时间点 t,基于前 t-1 个标记来预测当前的标记。

自回归模型的优势在于其单向性,这为生成类自然语言处理任务,如对话生成和机器翻译,提供了显著优势。因此,自回归语言模型成为 RALM 领域中 NLG 任务的热门选择。然而,该模型只能利用文本的前文或后文信息,而不能同时结合两者。OpenAI 在自回归语言模型的研究领域产生了显著影响,Google 也在模型研究方面取得了进展。

GPT 系列是自回归语言模型的典型代表。它最初由 Radford 等人于2018年提出,包括无监督预训练和后续微调的基本架构。Radford 等人2019年进一步提出了基于 GPT 的零样本学习。Brown 等人在2020年提出了 GPT-3,采用了类似的方法,通过扩大模型规模并放弃微调来提升性能。他们还在变换层中引入了稀疏变换器的稀疏注意力模式。GPT-NEO和 ChatGPT 等模型采用来自人类反馈的强化学习(RLHF),显著提高了 GPT 模型的准确性。尽管 ChatGPT 并非开源,但许多研究人员仍使用其 API 进行 RALM 生成任务。

Llama 家族是自回归语言模型的另一著名类别。2023年,Llama于2023年提出,训练数据仅使用公开数据。为了提高训练稳定性,模型采用了输入归一化而非输出归一化,并引入了 RMSNorm 归一化函数和 SwiGLU 激活函数。随后有推出了Llama2,在实验中采用了有监督微调、迭代奖励建模和 RLHF,同时发明了控制多轮对话流程的新技术——Ghost Attention(GAtt)。

Qwen在 Llama 的基础上进行了多项改进,包括采用宽松嵌入以节省内存、提高逆频率矩阵的准确性、在 QKV 层增加偏差以增强模型的外推能力,并采用了 SwiGLU 激活函数和减少前馈网络(FFN)的维度。

Mistral 7b通过分组查询注意力(Grouped Query Attention, GQA)和滑动窗口注意力(Sliding Window Attention, SWA)结合使用,提高了推理速度并有效处理了任意长度的序列,表现出比 Llama2 更优越的性能。Llama 模型的开源特性和对公开数据的使用使得 Llama 家族的语言模型在 RALM 架构中得到了广泛应用。

编码器-解码器语言模型

Transformer 架构采用编码器-解码器结构,建立在多头自注意力机制之上。输入序列在此被划分为源序列和目标序列,源序列进入编码器,目标序列则进入解码器,两者均需经过嵌入表示并加入位置信息。这种架构支持并行计算,能够同时处理整个文本序列,极大提升了模型的训练和推理速度。典型代表有T5和BART模型。

RALM 性能提升

接下来讨论如何通过优化RALM各个组件来提升RALM的性能,提升策略主要分为三个部分:检索器优化、语言模型优化以及整体性能提升(如下图)。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/c20e0c0b348e78b9ed69116459573ec6..jpg

检索器优化

检索精准性控制

检索的准确性对RALM的质量及其重要,检索到的错误问答,既不提供有效信息,还会降低语言模型的输出质量。所以,很多人集中精力来提升检索内容和用户输入之间的相关度,优化最终输出的效果。

Lin 等提出了一种指令微调方法,通过使用通用的语言模型监督检索(LSR)的训练目标来更新查询编码器,该目标通过结合监督任务和非监督文本完成计算。这一改进使得检索器能够生成更符合大型语言模型(LLM)偏好的、更具上下文相关性的检索结果。

受到这种指令微调方法的启发,Asai 等人提出了一个更先进的模型——SELF-RAG。通过指令微调,SELF-RAG 能够通过细致的自我反思,按需检索并选取最优的模型输出,这使得它在应用上更为广泛、鲁棒且可控。与那些通过使用外部模型来提高检索文档质量的方法不同,SELF-RAG 提出了创新的思路。该模型将检索到的文档分割为平行段落,对比它们的相关性,并整合文档中最相似的部分。

Yan 等人通过制定一套修正策略来改进 SELF-RAG,以应对检索器结果的不准确性。他们将信息分为三类:正确、错误和模糊。对于正确的信息,文档会被优化和筛选;错误的则会被丢弃,并重新进行网络检索;而模糊类别则表示对判断的准确性缺乏信心,此时会结合上述两种方法。

此外,Wang 等人提出了 FILCO 方法,它通过三个过滤器——STRINC、词汇重叠和条件交叉互信息(CXMI)——来实现以句子精度检索文档内容。

检索时机的优化

两种典型情境下会特别考虑检索的时机:

  • • 一是执行长对话生成和处理多跳问题。

  • • 二是在难以找到恰当相关文档的情况下,不相关的文档可能会降低输出的精确度。

确定检索时机的一个简单方法是调整检索步骤。

Ram 等人采用了一种涉及前缀编码来调整运行成本的方法。生成内容的前缀编码不断重新计算。选择检索步长是运行时和性能之间的权衡。根据 Toolformer的说法,当模型在生成内容的过程中需要检索文档帮助时,可以直接使用搜索命令来检索有用信息。

受到这个想法的启发,Jiang 等人提出了两种确定检索时机的方法。第一种方法涉及在语言模型遇到需要执行检索的地方时中断其生成,然后执行检索操作。第二种方法涉及完整生成一个临时句子。如果句子中有一个低置信度标记,则将该标记掩蔽,并使用句子的其余部分进行检索。

Yu 等人也采用了语言模型来确定检索时机。然而,他们不是使用语言模型生成低置信度标记,而是让语言模型在检索前后对输出进行评分。

Mallen 等人的方法与传统的让语言模型生成低置信度标记的方法不同。相反,他们使用 Wikipedia 页面浏览量作为普遍性的衡量标准,并将不同普遍性水平的维基数据知识三元组转换为以原始实体和关系类型为锚点的自然语言问题。这种方法更客观,避免了主观评价。对于需要推理的任务,也有使用链式思维(CoT)来确定何时执行检索。

语言模型优化

语言模型的优化,涵盖了生成前的检索处理、模型结构优化,以及生成后的输出增强策略。

生成前的检索预处理

起初,RALM 架构仅采用单一文档进行检索增强,但随后发现,增加检索到的段落数量能显著提升 RALM 的性能。基于此发现,大家提出了一种称为 Fusion-in-Decoder(FiD)的新方法。该方法通过保持检索器不变,利用语言模型中的编码器对相关文档进行逐一编码,然后将这些文档串联起来供解码器输出。Hofstätter 等人对 FiD 进行了进一步改进,通过限制编码器到解码器的信息流动,并通过文本源指针对 FiD-Light 进行重新排序,以此提升最顶部源的准确性。Izacard 和 Grave 将知识蒸馏技术应用于 FiD 模型,即 FiD-KD,利用序列到序列阅读器的交叉注意力分数来获取检索器的合成目标。Singh 等人提出了一种与知识蒸馏不同的增强策略,该方法采用端到端训练,相较于 FiD-KD,它需要更少的文档、更短的训练周期,并且不需要监督初始化。

模型结构的优化

随着语言模型的快速发展,出现了越来越多参数众多、性能卓越的大型模型。对这些模型的参数和内部结构进行调整变得越来越复杂和低效,因此,指令调整变得尤为重要。

FLAN(Chung 等人,2022)是指令调整研究中最为系统和全面的方法之一。该方法在指令优化的数据集上对语言模型进行微调,扩大了任务数量和模型规模,并在微调过程中融入了思维链数据。尽管研究者没有专门针对 RALM 架构中的指令调整提出具体方法,但他们的工作为未来的研究方向提供了重要参考。在 RALM 的指令微调实践中,Lin 等人(2023b)整合了上下文检索增强,有效降低了语言模型被不相关检索内容误导的风险。SAIL(Luo 等人,2023a)则在内部和外部搜索引擎生成的复杂搜索结果基础上,构建了语言生成和指令追踪功能。他们利用指令调整的语料库,为每个训练案例收集不同搜索 API 和领域的搜索结果,构建了一个包含(指令、基础信息、响应)三元组的基于搜索的训练集。与在指令调整数据集上的训练不同,Madaan 等人(2022)和 Lazaridou 等人(2022)建议直接从检索到的知识中引导大型模型。Madaan 等人(2022)利用 GPT3 阐明了模型误解用户意图或用户反馈的案例中的记忆配对,确保系统能够根据用户反馈为每个新查询生成增强的提示。而 Lazaridou 等人(2022)则采用少量引导和答案重新排序的方法来提升推理计算的效率。

全面提升 RALM 架构

对RALM整体架构的优化和改进,包括端到端的训练和中间模块构建的尝试。

端到端训练

REALM(Guu 等人,2020 年)在预训练阶段采用掩蔽语言模型训练,并整合了一个可以进行端到端训练的检索器。在微调阶段,专注于 QA 任务,同时保持检索器固定不变。而 RAG(Lewis 等人,2020 年)则利用了预先训练好的检索器 DPR,并仅对 BART 进行了部分端到端训练。与 REALM 类似,Sachan 等人(2021 年)提出了一种无监督预训练方法,包括逆完形填空任务和掩蔽显著跨度,随后通过问题-上下文对进行监督微调。他们发现,端到端训练的检索器显著提升了各项任务的性能。

Singh 等人(2021 年)将端到端训练应用于多文档处理,他们的方法中,通过迭代估计来确定潜变量的值,该变量代表给定问题的相关文档集合。这一估计值随后用于更新检索器和阅读器的参数。Siriwardhana 等人(2023 年)总结了 RAG 的端到端优化,并引入了一个辅助训练信号,以整合更多特定领域的知识。该信号促使 RAG-end2end 通过访问外部知识库中的相关信息来重构给定的句子,这一方法显著增强了模型对不同领域的适应能力。

中间模块的构建

近期,由于空间限制或大型语言模型(LLM)的黑箱特性,一些研究者设计了中间模块来协调检索器与语言模型的交互活动,而非单独提升它们。

Selfmem 模型旨在解决低质量语料库的问题。Selfmem 使用检索增强的生成器创建一个无限的存储库,随后由存储选择器挑选一个输出用于接下来的生成过程。这种方法允许模型利用自身的输出来提升生成质量。

Peng 等人提出了一个人工智能代理,该代理将人机系统对话建模为一个由五元组描述的马尔可夫决策过程(MDP)。这个五元组涵盖了无限多的对话状态集合、一系列历史行为、状态转移的概率、获得的外部奖励以及一个变量参数。

数据来源


RALM使用的数据源包括结构化数据和非结构化数据两大类。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/183d6c76fcf23bcb83ad508fd5a767bc..jpg

结构化数据

结构化数据包含了如表格和知识图谱等多种结构形式。这类数据的优势在于其结构明确,通常以表格形式呈现,每个字段都有精确的定义,非常适合存储数字、日期、文本等数据类型。利用 SQL 等结构化查询语言,可以轻松地对结构化数据进行查询、分析和处理。

非结构化数据

与结构数据不同,它没有固定的数据结构,并且存在于文本、图像和音频等多种形态中。由于其体量大且类型繁多,使用传统的表格形式进行存储和管理面临挑战。尽管非结构化数据内含丰富的信息,但其解析与理解需要借助自然语言处理、图像识别等技术手段。

应用领域

相关应用方向根据模型生成或理解的需求进行分类。在自然语言生成(NLG)任务上的 RALM 表明,任务的完成主要依赖于模型的生成能力。而在自然语言理解(NLU)任务上的 RALM 则表明,任务的完成主要依赖于模型的理解能力。最后,同时涉及 NLU 和 NLG 的 RALM 任务通常有两种处理方式,一种主要依靠理解能力,另一种主要依靠生成能力。

NLG 自然语言生成任务

机器翻译领域

机器翻译,亦称自动翻译,是指利用计算机将一种自然语言(源语言)转换为另一种自然语言(目标语言)的技术。作为计算语言学的一个分支,它代表着人工智能发展的高峰,具有极其重要的科研意义。机器翻译系统主要分为基于规则的系统和基于语料库的系统。基于规则的系统由词典和规则库组成,形成知识源;而基于语料库的系统则依赖于经过划分和标注的语料,不依赖词典或规则,而是依据统计规律,大多数检索增强的语言模型(RALM)按照规则执行任务。在机器翻译任务中,采用了两种不同的语言模型。第一种是可训练的小型模型,通过联合和二分方法进行训练;第二种是经过少量示例提示的大型语言模型(LLM)。

数学教学领域的应用

随着检索增强语言模型(RALM)架构的不断进步,其潜在的应用范围日益扩大。Levonian 团队(Levonian 等人,2023)借鉴 RALM 架构,将其应用于数学教育领域。鉴于大型语言模型(LLM)中存储的知识可能与学校课程内容不一致,他们采用了三种提示性教学条件之一,利用检索增强的生成系统来回答数学学生的问题。调查参与者根据个人喜好对这些回答进行排序,并以基础数学教科书作为检索语料库进行评估。

对话生成技术

生成对话,尤其是长对话,是一项颇具挑战性的任务。这不仅要求语言模型具备强大的自然语言处理功能,还要求模型能够利用上下文信息来满足对话的需求。

NLU 自然语言理解任务

槽位填充技术

槽位填充是自然语言处理领域的一项关键技术,主要用于从用户文本或语音中识别并抽取特定信息。在此过程中,系统会提前设定一系列槽位,每个槽位对应一个特定的信息需求,如日期、时间、地点等。当系统接收到用户的文本或语音输入后,将对输入内容进行分析,以匹配预设的槽位或分类标签(Lu 等人,2023b,a)。匹配到的信息随后被填充到相应的槽位中,用于后续的信息处理和响应。

图像生成

文本到图像的生成过程充满挑战,它不仅要求模型具备深厚的自然语言理解能力,还要求其能够通过图像——而非传统的文本形式——来表达这种理解。

事实验证

事实验证是基于证据来核实陈述的真实性。这项任务不仅涉及检索问题,还包含了一个隐式推理的挑战。通常,任务需要将陈述作为输入,然后产生能够证明或反驳该陈述的相关文档段落。

许多 RALM(检索增强的语言模型)因其自带的检索功能而表现出色。这在自然语言理解中是一个重要的环节。

RAG(Lewis 等人,2020)利用 FEVER 数据集将声明与(支持、反驳、信息不足)的标签对应起来。它直接使用声明类别进行训练,而不是依赖于检索到的证据的监督。Atlas(Izacard 等人,2022)通过少量样本学习,在仅有 64 次尝试的条件下就达到了与先前研究相当的性能。在完整数据集上训练后,它超越了当时的最佳模型(Hoffmann 等人,2022)。

FILCO(Wang 等人,2023c)通过使用 KILT 基准聚合的 FEVER 数据集来提升检索文档的质量,该数据集仅包括支持和反驳的标签。准确度作为评估标准。

知识图谱补全

许多先前的任务都采用了结构化的知识图谱数据,知识图谱补全是一个广泛应用的领域。传统的补全方法(Chen 等人,2022a)(Saxena 等人,2022)是将任务定义为序列到序列的过程,将不完整的三元组和实体转换为文本序列。但这种方法受限于其对隐式推理的依赖,这大大限制了知识图谱的实用性。ReSKGC(Yu 和 Yang,2023)提出了将检索增强技术整合到知识图谱补全中。这种整合涉及从知识图谱中选择语义相关的三元组,并利用它们作为证据,通过显式推理来指导输出的生成。该模型使用 Wikidata5M 和 WikiKG90Mv2 数据集,展现了在多种条件下比其他现有工作更优越的性能。

常识推理

常识推理对于语言模型来说是一项挑战性任务。除了需要展现出类似人类的思考和推理模式外,这些模型还必须能够存储大量的常识知识。然而,随着检索增强语言模型(RALM)的出现,对于存储大量常识知识的要求变得不那么严格,因为检索技术为语言模型提供了访问非参数记忆的能力。

NLG和NLU兼具的任务

文本摘要

文本摘要是语言模型应用的关键领域,其核心在于生成简洁而流畅的摘要,同时保留关键信息的内容和主旨。目前,文本摘要任务主要分为两种形式:抽取式和生成式。

RA-DIT(Lin 等人,2023b)采用 CNN/DailyMail 数据集优化模型的语言模型部分,通过命令微调操作,在文本摘要任务上展现了显著效果。而 Self-Mem(Cheng 等人,2024)则利用 XSum 和 BigPatent 数据集进行训练,发现记忆增强对 BigPatent 数据集的影响更为显著,这可能归因于该数据集中包含的官方专利文件具有较高的相似性。LLM-R(Wang 等人,2023b)模型采用上下文学习方法,结合 RALM,并使用 AESLC、AG News 和 Gigaword 数据集进行训练,显著提升了文本摘要任务的性能。RAMKG(Gao 等人,2022)将 RALM 架构的迭代训练扩展到多语言领域,并在 EcommerceMKP 和 AcademicMKP 两个多语言数据集上进行训练,取得了当时的最佳成绩。

问答任务

问答任务在 NLP 中十分常见,它依赖于特定领域的知识,包括生成式和抽取式两种形式。RALM 通过利用外部存储的知识,能够比传统语言模型取得更好的效果。

常见的问答任务有特定领域问答、开放领域问答(ODQA)和多跳问答。在医疗领域,PKG(Luo 等人,2023b)模型利用 MedMC-QA 数据集,将训练集中的问题作为输入,医疗解释作为背景知识,以模型生成的背景知识准确性作为评估标准。HyKGE(Jiang 等人,2023b)同样针对医疗领域的问答任务,但采用了知识图谱增强的方法。RAG(Lewis 等人,2020)在处理 ODQA 任务时,将问题和答案视为输入输出文本对,并通过最小化答案的负对数似然来进行训练。ICRALM(Ram 等人,2023)则专门使用未经过预训练、微调或检索增强的冻结语言模型来执行 ODQA 任务。其他模型如(Wang 等人,2023c)、(Lin 等人,2023b)和(Shi 等人,2023b)也针对 ODQA 任务进行了训练。

在多跳问答任务方面,FILCO(Wang 等人,2023c)采用了他们提出的过滤检索方法来筛选多个文档,并使用 HotpotQA 数据集来验证其方法。RR(He 等人,2022)则采用了链式思考(CoT)方法来解决多跳问题。此外,还有许多其他模型(Jiang 等人,2023c)、(Khattab 等人,2022)也在处理多跳问题。

代码生成与摘要

代码生成(Romera-Paredes 等人,2024;Ye 等人,2024)和摘要(Nam 等人,2024)与常规文本生成和摘要不同,它们在目标受众和处理方式上有所区别。

代码生成和摘要涉及计算机程序代码,这可能需要特定领域的语法和语义理解能力,以及对语言模型的 NLU 和 NLG 能力的更高要求。REDCODER(Parvez 等人,2021)最初从现有代码或抽象数据库中识别潜在的候选代码。研究者通过多渠道保留了 110 万行独特的代码和摘要作为检索数据。在 CodeXGLUE 数据集上的最终评估显示,该模型在多种编程语言和评估指标上均表现出色。Zan 等人(2022)提出了另一种改进方法,利用私有库来提升代码生成的质量。他们首先通过 APIRetriever 组件根据 API 文档确定最合适的私有库,然后使用 APIcoder 进行生成,显著提高了生成内容的准确性。

Liu 等人(2020)提出了一种新颖的基于注意力的动态图,以补充源代码的静态图表示,并设计了一种混合消息传递 GNN 来捕获局部和全局的结构信息。这种方法提高了代码摘要的准确性,并最终在主流检索器和生成器上都取得了更优越的性能。RACE(Shi 等人,2022)模型采用传统的 RALM 框架,将 MCMD 数据集中的五种编程语言的代码整合起来,在所有基线模型上实现了 6% 到 38%。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user1/article/e7276a28955a4371297066f4d2aa8a38..jpg


0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群