RAG的基本架构。,生成器和检索器。
参考paper:https://arxiv.org/html/2402.19473v4
文中将rag的内容从文本扩展至多模态,打开了思路。
生成器:transformer,LSTM,扩散模型,gan
检索器:稀疏检索(tf-idf,bm25),密集检索(余弦相似度,内积,l2距离),混合检索
一、RAG的类别
基于查询的 RAG、基于潜在表征的RAG、基于Logit的RAG,推测型RAG
1.基于查询的 RAG
基于查询的RAG无缝整合了用户的查询与检索到的信息见解,直接在语言模型输入的初始阶段使用。这种方法在RAG应用中很普遍。检索完成后,获取的内容与用户的原始查询合并形成一个复合输入序列,然后由生成器处理以创建响应。基于查询的RAG广泛应用于各种模式。
2.基于潜在表征的RAG
基于潜在表示的RAG框架的原理是通过将检索到的信息作为潜在表示(latent representations)直接纳入生成模型中,以增强模型的理解能力和生成内容的质量。其核心思想是将检索到的相关信息编码为潜在表示,然后在生成过程中将这些表示与原始输入信息相结合,提供更丰富的上下文和背景知识,从而生成更准确和相关的输出。
3.基于Logit的RAG
基于Logit的RAG(Retrieval-Augmented Generation)在生成模型的解码过程中通过Logit整合检索到的信息。具体来说,这种方法在生成每一步时,将语言模型生成的概率与检索到的相似前缀的概率进行组合,通常通过简单的求和或其他模型计算出每一步的生成概率。这样,模型能够在每一步生成过程中利用检索到的上下文信息,从而提高生成结果的质量和相关性。
4.推测型RAG
基于推测的RAG(Speculative
RAG)旨在寻找使用检索替代纯生成的机会,以节省资源并加快响应速度。这种方法通过在生成过程中更多地依赖检索信息,而不是完全依赖生成模型,从而提高效率。基本原理
- 推测解码:传统推测解码中,使用较小的模型来生成草稿,然后由更大的模型进行精炼。REST [32] 提出了用检索替代小模型来生成草稿。
- 语义缓存:GPTCache [39] 通过建立一个语义缓存来存储LLM的响应,解决了使用LLM API时高延迟的问题。这意味着,当遇到类似的查询时,可以直接从缓存中检索结果,而不需要重新生成。
- 文本生成过程的分解:COG [122] 将文本生成过程分解为一系列的复制粘贴操作,从文档中检索单词或短语,而不是生成它们。这种方法通过减少生成步骤,提高了生成效率。
- 短语级内容检索:Cao等人[123] 提出了一个新范式,通过直接检索短语级内容来消除最终结果对第一阶段检索内容质量的依赖,从而替代生成。
优势
- 资源节约:通过减少生成过程中的计算量,基于推测的RAG方法可以显著节省计算资源。
- 加快响应速度:由于减少了依赖生成模型的次数,响应速度得以加快。
- 利用预训练模型:这种方法可以直接利用预训练的生成模型和检索模型,使其更加灵活和高效。
挑战
- 检索内容的质量:检索内容的质量直接影响最终生成结果的质量。因此,如何优化检索过程和结果是一个关键问题。
- 融合策略:如何有效地将检索内容与生成内容融合也是一个需要解决的问题。
二、RAG的增强方向
1.输入增强
指的是用户的query。
方法:查询转换、数据增强。
查询转换:通过修改输入查询来增强检索结果。
数据增强:在检索前改善数据,包括去除无关信息、消除歧义、更新过时文档、合成新数据等技术。
2.检索器增强
检索内容的质量决定了生成器输入的信息质量。较低的内容质量会增加模型产生幻觉或其他性能下降的风险。
方法:
递归检索:进行多次搜索以获取更丰富和高质量内容的方法。如COT,蒙特卡洛树搜索。
块优化:是指调整块大小以改进检索结果。
检索器微调:检索器在RAG系统中起着核心作用,依赖于高效的嵌入模型来聚类相关内容并传递给生成器,从而提升系统性能。
混合检索:同时使用多种检索方法或从多个不同来源提取信息。
重排序技术:是指对检索内容进行重新排序,以实现更大的多样性和更好的结果。
检索转换:检索转换涉及重新措辞检索内容,以更好地激发生成器的潜力,从而改进输出。(内容过滤、向量压缩、模板重构)
3.生成器增强
在RAG系统中,生成器的质量通常决定了最终输出结果的质量。因此,生成器的能力决定了整个RAG系统的效果上限。
提示工程技术:旨在提高LLM输出的质量,这些技术包括提示压缩、Stepback Prompt、Active Prompt、链式思维提示等。
解码调整:通过调整超参数来增强生成器控制,以增加多样性和限制输出词汇表等方式进行。
微调生成器:可以增强模型对更精确领域知识的掌握或更好地与检索器配合。
4.结果增强
在许多情况下,RAG的结果可能未达到预期效果,一些结果增强技术可以帮助缓解这个问题。
输出重写:指在某些情况下重写生成器生成的内容,以满足下游任务的需求。
SARGAM、Ring、CBR-KBQA
5.RAG管道增强
RAG管道增强是指在系统层面优化RAG的处理流程,以实现更好的性能结果。
1.自适应检索
检索并不总是能增强最终结果。过度检索可能会导致资源浪费,并在模型固有的参数化知识足以回答相关问题时引起潜在的混乱。
确定检索必要性的方法:基于规则的方法和基于模型的方法。
基于规则的方法:(对于高频问题直接回答,低频问题应用RAG ;通过生成过程中的概率主动决定是否以及何时进行搜索)
基于模型的方法:使用“判断提示”确定LLM是否能回答相关问题以及其答案是否正确,从而辅助确定检索的必要性。
2.迭代RAG
通过多次循环检索和生成阶段逐步优化结果,而不是单轮操作。
如:使用零次链式思维提示由LLM初步生成内容,然后通过从外部知识库检索知识来修正每个思维步骤 。