最新RAG综述北京大学发布AIGC的检索增强技术综述

TECHNICAL SERVICE
最新RAG综述北京大学发布AIGC的检索增强技术综述

首页 > 解决方案 > 隧道照明方案


最新RAG综述北京大学发布AIGC的检索增强技术综述


最新RAG综述北京大学发布AIGC的检索增强技术综述

时间:2024-04-12 03:40:26   作者: 隧道照明方案


  近期,RAG (Retrieval-Augmented Generation) 在AI领域引起了广泛关注,成为了众多研究者和开发者热议的焦点。作为一种将检索与生成相结合的技术,RAG展示了在各种任务中,如问答、对话生成和文本摘要等,取得卓越成果的潜力。它的出现为解决复杂问题提供了新的视角,使得AI在理解和回应客户的真实需求方面更精准和高效。RAG的重要性不容忽视,它为AI领域带来了创新的思路和突破性的进展。慢慢的变多的研究者和开发者开始关注并投入到RAG的研究与应用中,以期在未来的智能对话系统中实现更高水平的性能。

  例如,OpenAI为GPT-4集成了web browsing选项,腾讯将RAG技术结合到混元模型的实际应用场景当中,百川也积极使用RAG技术构建垂直领域大模型,百度AI对话也是在百度知识增强大语言模型文心一言的基础上集成了搜索引擎返回的结果。因此,RAG的火爆程度和主体地位已经深入人心,预示着它将在AI领域持续发挥关键作用。

  文章详细的介绍了AIGC场景下检索增强技术(RAG)的组成部件,不同组件之间的结合方法,以及对RAG系统的优化提升技术。此外,文章还梳理总结了RAG在包括文本,图像,代码,音频,视频,3D等多个不相同的领域,不同模态上的具体应用以及现有的RAG系统评估标准或者工具。最后,本文还分析探讨了当前RAG中存在的局限性以及未来的发展的新趋势和方向。

  近年来,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方法:该方法也称为提示扩充。它将用户的查询与检索过程中提取的内容直接集成到生成模型输入的初始阶段。这种范式是RAG应用程序中最广泛采用的方法。一旦检索到有关信息,它们的内容就会与原始用户查询合并,以创建一个复合输入序列。该增强序列随后被送到生成模型中以生成响应。对于常见的基于大型语言模型(LLM)的文本生成任务而言,该方法实际上根据检索到的内容构建了输入的提示词(prompt),可以直接与提示词工程、少样本学习相结合。

  基于隐空间表达的RAG方法:在该方法中,检索器得到的内容将与生成模型在内部以隐空间表达(latent representation)的方式来进行交互,这种边生成边交互的方式能有效的提升生成模型的理解能力以及最终生成内容的质量。这里常见的交互方法包括简单的拼接以及设计注意力机制等等。

  基于概率表示的RAG方法:在采用概率表示(logit)的RAG系统中,生成模型在解码阶段会利用概率方法来融合检索到的信息。通常情况下,模型会对检索结果的概率分布进行求和或融合,以此计算出逐步生成文本的概率。这种方法允许模型在生成响应时,权衡不同检索信息的相关性和可信度。

  投机RAG方法:投机RAG方法是利用检索过程替代部分或全部的生成过程。当检索器的成本低于生成器的生成成本时,这种方法具有很大的应用潜力。例如,在投机推理中,可以使用检索方式替代小型模型的生成,然后将用户查询和检索到的内容一起送入大型模型进行验证。此外,在使用类似ChatGPT接口作为生成器的场景下,调用次数越多意味着成本越高,因此可以搜索过往的相同或极度相似的问题来直接得到回答。

  很多工作使用了一系列提升方法来提高基本RAG系统的效果。我们根据提升方法的目标将现有方法分为5类:对输入的提升、对检索过程的提升、对生成过程的提升、对结果的提升、以及对整个RAG流程的优化。

  输入提升:输入指的是用户的查询,该查询最初被输入到检索器中。输入的质量显著影响检索阶段的最终结果,因此对输入优化变得至关重要。在这里,我们将介绍两种方法:查询改写和数据增强。

  查询改写(Query Transformation)可以通过修改输入查询来提高检索结果。数据增强(Data Augmentation)是指在检索之前提前对数据进行改进,如去除无关信息、消除歧义、更新过时文档、合成新数据等,可以轻松又有效提高最终RAG系统的性能。

  检索器提升:在RAG系统中,检索过程对结果影响很大。一般来说,内容质量越好,就越容易激发LLM的上下文学习能力(in-context learning)以及其他生成模型的能力;内容质量越差,就越有可能导致模型幻觉。

  递归检索(Recursive Retrieve)是在检索之前拆分查询,并执行多次搜索以检索更多、更高质量的内容的过程。

  块优化(Chunk Optimization)技术是指调整块的大小以获得更好的检索结果。

  检索器微调(Finetune Retriever)是对检索器的优化,一般是对嵌入模型能力的提升。检索器的能力越强,就可以为后续生成器提供更多有用的信息,从而提高RAG系统的有效性。一个好的嵌入模型可以使语义相似的内容在向量空间中更紧密地结合在一起;此外,对于已经具有良好表达能力的嵌入模型,我们仍然能够正常的使用高质量的领域数据或任务相关数据对其进行微调,以提高其在特定领域或任务中的性能。

  混合检索(Hybrid Retrieve)是指同时使用多种类型的检索器,如同时使用统计词频的方式和计算向量相似性的方式来得到检索结果。

  重排序(Re-ranking)技术是指对检索到的内容进行重新排序,以实现更大的多样性和更好的结果。

  元数据过滤(Meta-data Filtering)则是处理检索到的文档的另一种方法,它使用元数据(如时间、目的等)来对检索回的文件进行过滤筛选以获得更合适的内容。

  生成器提升:在RAG系统中,生成器的质量通常决定最终输出结果的质量。在这里,我们将介绍如下一些提升生成器能力的技术。

  提示词工程(Prompt Engineering)是一种专注于提高LLM输出质量的技术,其中包括提示词压缩、回退提示、主动提示、思维链提示等等,以上这些同时也都适用于使用LLM生成器的RAG系统中。

  解码过程控制、调整(Decoding Tuning)是指在生成器处理过程中添加额外的控制,能够最终靠调整超参数来实现更大的多样性或者以某种形式限制输出词汇表等等。

  生成器微调(Finetune Generator)可以使生成模型具有更精确的领域知识或更好地与检索器匹配的能力。

  如上图所示,我们在文中分别介绍了RAG在文本、代码、音频、图像、视频、3D,结构化知识、以及AI4S等多个不同模态中不同具体任务上的具体应用,并对每类应用中的办法来进行了分析和解读。更多详细内容,请参考原论文。

  RAG的主要评判标准包括忠实性、答案相关性和上下文相关性。忠实性衡量从检索内容中推断正确答案的能力;答案相关性评估生成结果是否解决了问题;上下文相关性判断检索内容是否包含足够知识回答查询,同时减少无关信息。

  尽管RAG在各种应用中被广泛采用,但在有效性与效率方面仍存在一些局限性。

  检索结果中的噪声:信息检索系统在将信息编码为向量时不可避免地会遭受信息丢失。同时,近似最近邻搜索(ANN)只能提供近似匹配而非精确匹配,导致检索结果中含有某些特定的程度的噪声,如不相关或误导性信息,这可能对RAG系统的输出质量产生负面影响。虽然直觉上提高检索准确性似乎有利于提升RAG的效果,但最新研究出人意料地发现,带有噪声的检索结果有时反而能增强生成内容的质量。这原因是检索结果的多样性在某些情况下对于生成过程是有益的。因此,噪声对检索结果的具体影响仍然是一个开放的问题,这也引发了关于如何明智的选择合适的检索度量和如何优化检索器与生成器之间交互的讨论。未来的研究有望为这样一些问题提供更清晰的答案。

  额外开销:尽管检索在某些情况下能够降低文本生成的成本,但将检索与生成结合使用有时会引入显著的额外开销。鉴于RAG的最大的目的是增强现有生成模型的能力,引入额外的检索和交互步骤有几率会使处理延迟。特别是当结合使用更复杂的方法,如递归检索或迭代RAG时,这些开销会更突出。此外,随着检索规模的扩大,数据存储和访问的复杂性也会增加。在目前的技术实现中,RAG系统要在成本和性能之间做出权衡。未来,我们期待进一步的系统优化来降低这些额外开销。

  检索与生成之间的复杂交互:为实现检索和生成组件之间的无缝集成,研究员和工程师需要精心设计和优化。鉴于检索器和生成器可能有不同的目标,并且它们可能不在同一潜在空间中操作,协调这两个组件的交互是一项挑战。正如之前提到的,研究人员已经开发了多种RAG的基础方法,这一些方法或是将检索和生成过程分离,或是在中间阶段进行集成。尽管分离方法更具模块化特性,但集成方法可能从联合训练中获益。目前,不同互动方式在不同应用场景下的比较研究还不够充分。此外,RAG系统的提升也面临挑战,包括度量选择和超参数调整等方面的相互作用尚未被充分研究。因此,为了最大化RAG系统的潜力,有必要在算法设计和系统部署方面做进一步的完善。

  长上下文生成的挑战:早期RAG系统面临的一个主要挑战是生成器的上下文长度限制,这限制了它们可处理的提示词的数量和长度。尽管随着研究进展,如提示词压缩技术和系统优化对长上下文的支持,这样的一个问题已经在某些特定的程度上得到缓解,但这些解决方案往往需要在准确性和成本之间做出一些折衷。近来,有一种观点提出,长上下文模型如Gemini 1.5可能会取代RAG。然而,这种看法忽视了RAG在处理动态信息,尤其是最新和长尾知识方面的灵活性优势。我们大家都认为,未来的RAG系统将利用长上下文生成的能力,以提升最终性能,而不是被新模型所取代。

  尝试探索更多关于RAG基础方法、提升方法、和应用的研究:未来的研究方向将关注开发更先进的方法来提升和应用RAG。由于检索器和生成器的优化目标不同,实际的增强过程对生成结果有很大影响。通过研究更先进的基础方法和提升方法,RAG的潜力有望被充分挖掘和利用。

  更加高效的运行、部署RAG系统:目前已有几种基于查询的针对LLM的RAG部署解决方案,如LangChain和LLAMA-Index。但别的类型的RAG和生成任务,目前尚缺乏现成的解决方案。考虑到检索带来的额外开销,以及检索器和生成器复杂性的持续不断的增加,实现高效运行、部署RAG仍是一个挑战,需要专门的系统优化。

  更好的发挥RAG系统结合长尾和实时知识的能力:RAG的一个关键目标是利用实时和长尾知识,但如何更新和扩展知识库尚未得到充分研究。许多现有研究仅将生成器的训练数据作为检索源,忽视了检索信息源能更加灵活动态的优势。因此,一个有前景的研究方向使设计一个能不断更新知识或使用灵活知识源的RAG系统,并进行一定的系统优化。鉴于RAG能利用长尾知识,我们期待它能够整合个性化信息和功能,以更好地适应当今的网络服务。

  将RAG技术与其他先进AIGC技术结合使用:RAG技术与旨在提高AIGC有效性的其他技术(如微调、强化学习、思想链、基于Agent的生成和其他优化方法)是互补的。目前将RAG与这些技术结合的尝试还处于初期阶段,我们期待未来有更多研究来探索算法设计并最大化这些技术的潜力。

  TechBeat是由将门创投建立的AI学习社区()。社区上线+篇技术干货文章,方向覆盖CV/NLP/ML/Robotis等;每月定期举办顶会及其他线上交流活动,不定期举办技术人线下聚会交流活动。我们正在努力成为AI人才喜爱的高质量、知识型交流平台,希望为AI人才打造更专业的服务和体验,加速并陪伴其成长。

  我们会选择部分在深度技术解析及科研心得方向,对用户启发更大的文章,做原创性内容奖励

  或添加工作人员微信(chemn493)投稿,沟通投稿详情;还能关注“将门创投”公众号,后台回复“投稿”二字,获得投稿说明。

  将门是一家以专注于数智核心科技领域的新型创投机构,也是北京市标杆型孵化器。 公司致力于通过连接技术与商业,发掘和培育具有全球影响力的科学技术创新企业,推动企业创新发展与产业升级。

  将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。

  如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:

x/kMsb9OP6BmHvOStyEXpLs16LussuMp8pHY8MCf8YsMnPRxbIdAadoqsZ3Parzwi6nuLiLpaJrtw5hxGJweCoPpqNhL6q3E2RCbd3wEkAMxq5vPKxyp8b3kpm5GmITeaKgs701lkxEvPRRpd6LWc6dLBGYyDVJ7hhwgWxR3yAtCrRFHEz5mLqBMBwqVzmhI4rgnnVrEqNP2SLLq1Gq4PQ==