近期,RAG(Retrieval-Augmented Generation)在 AI 畛域惹起了宽泛关注,成为了泛滥钻研者和开发者热议的焦点。
作为一种将检索与生成相结合的技术,RAG 展现了在各种义务中,如问答、对话生成和文本摘要等,取得出色成绩的后劲。它的发生为处置复杂疑问提供了新的视角,使得人工自动无了解和回运行户需求方面愈加精准和高效。RAG 的关键性不容漠视,它为 AI 畛域带来了翻新的思绪和打破性的停顿。
越来越多的钻研者和开发者开局关注并投入到 RAG 的钻研与运行中,以期在未来的自动对话系统中成功更高水平的性能。例如,OpenAI 为 GPT-4 集成了 web browsing 选项,腾讯将 RAG 技术结合到混元模型的实践运行场景当中,百川也踊跃经常使用 RAG 技术构建垂直畛域大模型,百度 AI 对话也是在百度常识加弱小言语模型文心一言的基础上集成了搜查引擎前往的结果。因此,RAG 的火爆水平和关键位置曾经不得人心,预示着它将在 AI 畛域继续施展关键作用。
针对如此火爆的 RAG,来自北京大学崔斌传授率领的数据与自动试验室(PKU-DAIR)系统调研现有 RAG 技术,笼罩了近 300 篇关系论文,颁布综述(Retrieval-Augmented Generation for AI-Generated Content: A Survey)。
文章详细引见了 AIGC 场景下检索增强技术(RAG)的组成部件,不同组件之间的结合方法,以及对 RAG 系统的优化优化技术。此外,文章还梳理总结了 RAG 在包括文本,图像,代码,音频,视频,3D 等多个不同畛域,不同模态上的详细运行以及现有的 RAG 系统评价规范或许工具。最后,本文还剖析讨论了 RAG 中存在的局限性以及未来的开展趋向和方向。
文章链接:
GitHub链接:
近年来,AIGC 的关注度继续攀升,大型生成模型在泛滥畛域和模态中展现出令人注目的成绩,例如文本和代码畛域的 GPT 系列和 LLAMA 系列模型、图像畛域的 DALL-E 和 Stable Diffusion 模型、以及文成长视频面前的 Sora 模型。
虽然这些弱小的生成器能够带来令人冷艳的效果,但仍存在一系列不容漠视的疑问和应战,如难以降级保养常识、不易把握长尾常识、以及暴露公家训练数据的危险。
为了应答这些疑问,检索增强生成技术(RAG)应运而生。它运用消息检索(Information Retrieval, IR),在庞杂的外部数据中精准地找到关系的现有消息。这些外部存储的数据便于修正,能够涵盖更宽泛的长尾常识,同时还可以支持敏感数据编码。此外,在特定场景下,RAG 还能为长文本提供支持,降落模型老本并提高照应速度。
▲ RAG 的通用架构。用户的查问可以是不同的模态,用作检索器和生成器的输入。检索器搜查存储中的关系数据源,而生成器与检索结果交互,并最终生成各种模态的结果。
如上图所示,一个典型的 RAG 流程包括以下步骤:首先,面对一个输入查问,检索器会定位并提取关系的数据源。接着,这些检索到的结果将与生成器相互作用,从而优化生成内容的品质和关系性。检索到的消息可以经过多种方式与生成环节互动,这些详细的互动机制将在后续局部详细论述。
基于现有的 RAG 系统,许多上班还提出了优化方法提高模型的全体品质,包括针对特定组件的方法以及针对整个管道的优化。虽然 RAG 的概念最后出如今文本生成中,其余模态和义务对检索增强生成的探求也很早就发生了。
RAG 如今已在各个畛域的生成义务中运行,包括代码、音频、图像、视频、3D、结构化常识和人工自动迷信等等。逾越不同的模态和义务,RAG 的基本思想和流程在基本坚持分歧,而详细经常使用到的检索器和生成器依据特定义务须要而变动。
本文深化讨论了 RAG 的基础方法、针对 RAG 特定组件以及整个系统的优化战略、RAG 的实践运行场景、评价 RAG 性能的方法,以及对 RAG 的局限性和未来的开展方向。
咱们依据检索器如何与生成器交互,将 RAG 基础范式分为 4 类,如图所示:
▲ RAG 基础方法的分类
1. 基于查问的 RAG 方法: 该方法也称为揭示扩大。它将用户的查问与检索环节中提取的内容间接集成到生成模型输入的初始阶段。这种范式是 RAG 运行程序中最宽泛驳回的方法。
一旦检索到关系消息,它们的内容就会与原始用户查问兼并,以创立一个复合输入序列。该增强序列随后被送到生成模型中以生成照应。关于经常出现的基于大型言语模型(LLM)的文本生成义务而言,该方法实践上依据检索到的内容构建了输入的揭示词(prompt),可以间接与揭示词工程、少样本学习相结合。
2. 基于隐空间表白的 RAG 方法: 在该方法中,检索器失掉的内容将与生成模型在外部以隐空间表白(latent representation)的方式启动交互,这种边生成边交互的方式可以有效的优化生成模型的了解才干以及最终生成内容的品质。这里经常出现的交互方法包括便捷的拼接以及设计留意力机制等等。
3. 基于概率示意的 RAG 方法: 在驳回概率示意(logit)的 RAG 系统中,生成模型在解码阶段会应用概率方法来融合检索到的消息。通常状况下,模型会对检索结果的概率散布启动求和或融合,以此计算出逐渐生成文本的概率。这种方法准许模型在生成照应时,权衡不同检索消息的关系性和可信度。
4. 投机 RAG 方法: 投机 RAG 方法是应用检索环节代替局部或所有的生成环节。当检索器的老本低于生成器的生成老本时,这种方法具备很大的运行后劲。例如,在投机推理中,可以经常使用检索方式代替小型模型的生成,而后将用户查问和检索到的内容一同送入大型模型启动验证。此外,在经常使用相似 ChatGPT 接口作为生成器的场景下,调用次数越多象征着老本越高,因此可以搜查过往的相反或极度相似的疑问来间接失掉回答。
▲ RAG优化方法的分类
很多上班经常使用了一系列优化方法来提高基本 RAG 系统的效果。咱们依据优化方法的目的将现有方法分为 5 类:对输入的优化、对检索环节的优化、对生成环节的优化、对结果的优化、以及对整个 RAG 流程的优化。
1. 输入优化: 输入指的是用户的查问,该查问最后被输入到检索器中。输入的品质清楚影响检索阶段的最终结果,因此对输入优化变得至关关键。在这里,咱们将引见两种方法:查问改写和数据增强。
查问改写(Query Transformation) 可以经过修正输入查问来提高检索结果。 数据增强(Data Augmentation) 是指在检索之前提早对数据启动改良,如去除有关消息、消弭歧义、降级过期文档、分解新数据等,可以有效提高最终 RAG 系统的性能。
2. 检索器优化: 在 RAG 系统中,检索环节对结果影响很大。普通来说,内容品质越好,就越容易激起 LLM 的上下文学习才干(in-context learning)以及其余生成模型的才干;内容品质越差,就越有或许造成模型幻觉。
递归检索(Recursive Retrieve) 是在检索之前拆分查问,并口头屡次搜查以检索更多、更高品质的内容的环节。
块优化(Chunk Optimization) 技术是指调整块的大小以取得更好的检索结果。
检索器微调(Finetune Retriever) 是对检索器的优化,普通是对嵌入模型才干的优化。检索器的才干越强,就可以为后续生成器提供更多有用的消息,从而提高 RAG 系统的有效性。一个好的嵌入模型可以使语义相似的内容在向量空间中更严密地结合在一同;此外,关于曾经具备良好表白才干的嵌入模型,咱们依然可以经常使用高品质的畛域数据或义务关系数据对其启动微调,以提高其在特定畛域或义务中的性能。
混合检索(Hybrid Retrieve) 是指同时经常使用多种类型的检索器,似乎时经常使用统计词频的方式和计算向量相似性的方式来失掉检索结果。
重排序(Re-ranking) 技术是指对检索到的内容启动从新排序,以成功更大的多样性和更好的结果。
元数据过滤(Meta-data Filtering) 则是处置检索到的文档的另一种方法,它经常使用元数据(如期间、目的等)来对检索回的文件启动过滤挑选以取得更适合的内容。
3. 生成器优化: 在 RAG 系统中,生成器的品质通常选择最终输入结果的品质。在这里,咱们将引见如下一些优化生成器才干的技术。
揭示词工程(Prompt Engineering) 是一种专一于提高 LLM 输入品质的技术,其中包括揭示词紧缩、回退揭示、被动揭示、思想链揭示等等,以上这些同时也都实用于经常使用 LLM 生成器的 RAG 系统中。
解码环节控制、调整(Decoding Tuning) 是指在生成器处置环节中参与额外的控制,可以经过调整超参数来成功更大的多样性或许以某种方式限度输入词汇表等等。
生成器微调(Finetune Generator) 可以使生成模型具备更准确的畛域常识或更好地与检索器婚配的才干。
4. 结果优化: 在许多状况下,RAG 的最终结果或许无法到达预期效果,一些结果优化方法可以协助缓解这一疑问。
结果改写(Rewrite Output) 是在生成结果的基础上,经常使用另一个生成模型作为编辑器、改写器,以使生成结果更好的合乎生成目的或许结果的规定。
5. RAG 流程优化: 咱们将对整个 RAG 流程上的优化分为如下两大类:自顺应检索和迭代 RAG。
自顺应检索(Adaptive Retrieval) 是基于一个观察:很多 RAG 的钻研和通常标明,检索并不总是无利于最终生成的结果。当模型自身的参数化常识足以回答关系疑问时,适度检索会形成资源糜费,并或许参与模型的凌乱。因此,一些上班提出了基于规定和基于模型的自顺应检索方法。
基于规定等方法指的是经过判别某些与模型生成高度关系的目的来确定能否启动搜查,详细而言,这个变量可以是模型生成环节中 token 的生成概率,也可以是模型的困惑度(PPL)等等。基于模型的办规律指的是借助模型才干来判别能否启动搜查,这里的模型可以是生成模型自身也可以是借助外部模型。
迭代 RAG(Iterative RAG) 则指的是迭代的启动检索和生成。生成器的轮次输入可以在必定水平上反映其依然缺乏的常识,并且检索器可以检索缺失的消息作为下一轮的上下文消息,这有助于提上下一轮生成内容的品质。如此循环迭代,直到生成内容到达规范。
▲ RAG在多模态,多义务中的运行分类
如上图所示,咱们在文中区分引见了 RAG 在文本、代码、音频、图像、视频、3D,结构化常识、以及 AI4S 等多个不同模态中不同详细义务上的详细运行,并对每类运行中的方法启动了剖析和解读。更多详细内容,请参考原论文。
RAG 的关键评判规范包括虔诚性、答案关系性和上下文关系性。虔诚性权衡从检索内容中推断正确答案的才干;答案关系性评价生成结果能否处置了疑问;上下文关系性判别检索内容能否蕴含足够常识回答查问,同时缩小有关消息。
此外,还有其余评判目的,如噪声持重性、拒绝回答才干、消息整合才干和反理想持重性。噪声持重性评价从噪声文档中提敞开息的才干;拒绝回答才干测量在内容无余时能否拒绝照应查问;消息整合才干评价经过整合多个检索内容失掉常识并照应的才干;反理想持重性权衡识别检索内容中反理想失误的才干。
1.局限性
虽然 RAG 在各种运行中被宽泛驳回,但在有效性和效率方面仍存在一些局限性。
检索结果中的噪声: 消息检索系统在将消息编码为向量时无法防止地会遭受消息失落。同时,近似最近邻搜查(ANN)只能提供近似婚配而非准确婚配,造成检索结果中含有必定水平的噪声,如不关系或误导性消息,这或许对 RAG 系统的输入品质发生负面影响。
虽然直觉上提高检索准确性似乎无利于优化 RAG 的效果,但最新钻研出乎预料地发现,带有噪声的检索结果有时反而能增强生成内容的品质。这或许是由于检索结果的多样性在某些状况下关于生成环节是有益的。因此,噪声对检索结果的详细影响依然是一个开明的疑问,这也引发了关于如何选用适合的检索度量和如何优化检索器与生成器之间交互的讨论。未来的钻研有望为这些疑问提供更明晰的答案。
额外开支: 虽然检索在某些状况下能够降落文本生成的老本,但将检索与生成结合经常使用有时会引入清楚的额外开支。鉴于 RAG 的关键目的是增强现有生成模型的才干,引入额外的检索和交互步骤或许会造成处置提早。特意是当结合经常使用更为复杂的方法,如递归检索或迭代 RAG 时,这些开支会愈加突出。
此外,随着检索规模的扩展,数据存储和访问的复杂性也会参与。在目前的技术成功中,RAG 系统须要在老本和性能之间做出权衡。未来,咱们等候进一步的系统优化来降落这些额外开支。
检索与生成之间的复杂交互: 为了成功检索和生成组件之间的无缝集成,钻研员和工程师须要精心设计和优化。鉴于检索器和生成器或许有不同的目的,并且它们或许不在同一潜在空间中操作,协调这两个组件的交互是一项应战。
正如之前提到的,钻研人员曾经开发了多种 RAG 的基础方法,这些方法或是将检索和生成环节分别,或是在两边阶段启动集成。虽然分别方法更具模块化特性,但集成方法或许从联结训练中获益。目前,不同互动方式在不同运行场景下的比拟钻研还不够充沛。
此外,RAG 系统的优化也面临应战,包括度量选用和超参数调整等方面的相互作用尚未被充沛钻研。因此,为了最大化 RAG 系统的后劲,有必要在算法设计和系统部署方面进后退一步的完善。
长上下文生成的应战: 早期 RAG 系统面临的一个关键应战是生成器的上下文长度限度,这限度了它们能够处置的揭示词的数量和长度。虽然随着钻研停顿,如揭示词紧缩技术和系统优化对长上下文的支持,这个疑问曾经在必定水平上失掉缓解,但这些处置打算往往须要在准确性和老本之间做出一些折衷。
近来,有一种观念提出,长上下文模型如 Gemini 1.5 或许会取代 RAG。但是,这种认识漠视了 RAG 在处置灵活消息,尤其是最新和长尾常识方面的灵敏性长处。咱们以为,未来的 RAG 系统将应用长上下文生成的才干,以优化最终性能,而不是被新模型所取代。
2.未来潜在的钻研方向
尝试探求更多关于 RAG 基础方法、优化方法、和运行的钻研: 未来的钻研方向将关注开发更先进的方法来优化和运行 RAG。由于检索器和生成器的优化目的不同,实践的增强环节对生成结果有很大影响。经过钻研更先进的基础方法和优化方法,RAG 的后劲有望被充沛开掘和应用。
愈加高效的运转、部署 RAG 系统: 目前已有几种基于查问的针对 LLM 的 RAG 部署处置打算,如 LangChain 和 LLAMA-Index。但其余类型的 RAG 和生成义务,目前尚缺乏现成的处置打算。思考到检索带来的额外开支,以及检索器和生成器复杂性的始终参与,成功高效运转、部署 RAG 仍是一个应战,须要专门的系统优化。
更好的施展 RAG 系统结合长尾和实时常识的才干: RAG 的一个关键目的是应用实时和长尾常识,但如何降级和扩展常识库尚未失掉充沛钻研。许多现有钻研仅将生成器的训练数据作为检索源,漠视了检索消息源可以愈加灵优惠态的长处。
因此,一个有前景的钻研方向使设计一个能够始终降级常识或经常使用灵敏常识源的 RAG 系统,并启动相应的系统优化。鉴于 RAG 能够应用长尾常识,咱们等候它能够整合共性化消息和配置,以更好地顺应当今的网络服务。
将 RAG 技术与其余先进 AIGC 技术结合经常使用: RAG 技术与旨在提高 AIGC 有效性的其余技术(如微调、强化学习、思想链、基于 Agent 的生成和其余优化方法)是互补的。目前将 RAG 与这些技术结合的尝试还处于初期阶段,咱们等候未来有更多钻研来探求算法设计并最大化这些技术的后劲。
感谢阅读,更多详细内容,请参考原论文。
原文链接: