RAG前沿技术/解决方案梳理
- Benchmark
- Retrieval
- Adaptive-RAG
- DR-RAG
- RichRAG
- GenRT
- Critique/Reasoning
- Self-RAG
- Corrective RAG
- Speculative RAG
- PlanRAG
- Self-Reasoning
- ReSP
- Memory
- Selfmem
- HippoRAG
- Query Rewrite
- RaFe
- Summary
- Refiner
- 个人理解
对当前RAG的学术研究(或者好的业界的总结)进行梳理汇总,欢迎讨论交流,持续更新中……
Benchmark
论文: Benchmarking Large Language Models in Retrieval-Augmented Generation
来源: AAAI 2024
作者单位: 中科院软件所
核心结论: 从噪音鲁棒性、否定拒答、信息整合能力、反事实鲁棒性四个层面对目前sota大模型+RAG进行评估,认为目前大模型表现出一定程度的噪音鲁棒性,但在否定拒答、信息整合和处理虚假信息方面存在很大困难
Retrieval
Adaptive-RAG
论文: Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity
来源: NAACL 2024
作者单位: 韩国科学技术院
核心结论: 对于query的难度进行分级:训练一个复杂度判别模型(T5-Large),将query区分为不需要检索、一次检索和多次检索(动态路由检索)三类情况
DR-RAG
论文: DR-RAG: Applying Dynamic Document Relevance to RetrievalAugmented Generation for Question-Answering
来源: arxiv
作者单位: 东北大学、四川大学
核心结论: 将query与第一次检索得到的文档相结合来检索其余文档(应对多跳场景有一定意义)
RichRAG
论文: RichRAG: Crafting Rich Responses for Multi-faceted Queries in Retrieval-Augmented Generation
来源: arxiv
作者单位: 人大、百川
核心结论: 多方面检索器,对于一个query涉及到的多个方面进行拆解,进行多路召回已获取全面、丰富的召回文档
GenRT
论文: List-aware Reranking-Truncation Joint Model for Search and Retrieval-augmented Generation
来源: WWW 2024
作者单位: 中科院计算所、人大
核心结论: 采用多任务学习的方法,将rerank和truncation(取排名列表的截止点,Top N)任务联合学习
Critique/Reasoning
Self-RAG
论文: Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection
来源: arxiv
作者单位: University of Washington,Allen Institute for AI,IBM Research AI
核心结论: 自我反思RAG,通过LM生成检索段落的label,Self-RAG 在包含 reflection tokens 的离线任务示例上训练 LM(Llama2-7B)
主要流程:
- 首先生成一个critique token判断是否需要retrieval(Retrieval)
- 不需要:直接用LLMs生成输出
- 需要:生成一个critique token评估检索得到的内容的相关性(IsREL)、输出内容、一个critique token用来判断输出是否得到检索内容的支撑(IsSup)
- 针对输出内容生成一个critique token判断输出质量(IsUSE)
Corrective RAG
论文: Corrective Retrieval Augmented Generation
来源: arxiv
作者单位: 中科大,University of California
核心结论: 基于对召回的文档分成三类:correct,ambiguous,incorrect(基于T5-Large)。对于第一类直接采用,第二类结合Google搜索引擎的结果,第三类直接采用搜索引擎的结果
Speculative RAG
论文: Speculative RAG: Enhancing Retrieval Augmented Generation through Drafting
来源: arxiv
作者单位: University of California、谷歌
核心结论: 多打草稿少出错(将不同的检索结果进行组合喂给LLMs生成答案,提供多视角的参考信息,选择最好的答案)
PlanRAG
论文: PlanRAG: A Plan-then-Retrieval Augmented Generation for Generative Large Language Models as Decision Makers
来源: NAACL 2024
作者单位: 韩国科学技术院
核心结论: 制定计划、检索与回答、重新规划
Self-Reasoning
论文: Improving Retrieval Augmented Language Model with Self-Reasoning
来源: arxiv
作者单位: 百度
核心结论: 相关性感知过程、证据感知选择过程和轨迹分析过程
ReSP
论文: Retrieve, Summarize, Plan: Advancing Multi-hop Question Answering with an Iterative Approach
来源: arxiv
作者单位: 蚂蚁
核心结论: 一套完整的适用于业界场景的RAG流程。基于reasoner对query进行拆分(plan),通过retriever和summarizer将query和sub-query的参考信息分别存储在global memory和local memory,当global memory中的信息可以回复query时将两个memory进行拼接输入至generator,不能回复则重新plan
Memory
Selfmem
论文: Lift Yourself Up: Retrieval-augmented Text Generation with Self-Memory
来源: NIPS 2024
作者单位: 北大、人大、沙特阿拉伯大学、腾讯
核心思想: better generation also prompts better memory。LLM生成的好的回复也可以作为memory(检索到的文档),从而将有界的memory推广到了无界中
模型架构:
- Retrieval-augmented Generator: 对于输入X以及对应的输出Y,通过检索组件获取memory,然后将X和memory一起输入到LLM中获取候选的生成内容candidates
- Memory Selector: 计算candidates和X之间的metric(例如BLEU等),从candidates中选取最好的candidate,将其与X一起输入到LLM获得最终的输出
HippoRAG
论文: HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models
来源: arxiv
作者单位: The Ohio State University、Stanford University
核心思想: 让RAG模仿人类长期记忆的三个组件(大脑皮层、海马体、海马旁回)
模型架构:
- 知识图谱(KG)-大脑皮层(Neocortex): 在人类大脑中,大脑皮层负责处理和存储具体的记忆表示,比如我们学到的知识、经历的事件等。在HippoRAG中,让大模型从文本语料库中提取信息,并将其转换成一个知识图谱(KG),这个图谱就像是一个巨大的、没有固定结构的网络,存储着各种实体(比如人名、地点、概念)和它们之间的关系(GraphRAG)
- 个性化PageRank(PPR)算法-海马体(Hippocampus): 海马体在人类记忆中扮演着索引的角色,帮助我们通过关联来检索记忆。在HippoRAG中,海马体的功能通过KG和个性化PageRank(PPR)算法来实现。这个算法可以帮助HippoRAG在知识图谱中找到与查询最相关的部分,就像海马体通过关联线索来检索记忆一样
- 检索编码器(retrieval encoders)-海马旁回(Parahippocampal regions): 在人类大脑中,这些区域帮助我们识别记忆的不同部分,并在检索过程中提供上下文信息。在HippoRAG中,检索编码器(retrieval encoders)将查询中的关键概念与知识图谱中的节点联系起来,确保检索过程能够准确进行
Query Rewrite
RaFe
论文: RaFe: Ranking Feedback Improves Query Rewriting for RAG
来源: arxiv
作者单位: 浙大,阿里巴巴,南大
核心结论: 基于强化学习,将reranker的评分作为reward,对query改写进行学习
Summary
Refiner
论文: Refiner: Restructure Retrieval Content Efficiently to Advance Question-Answering Capabilities
来源: arxiv
作者单位: 香港科技、清华、香港理工
核心结论: 对检索的内容进行重写,提取查询相关内容以及必要的上下文,并进行分段处理
核心步骤:
-
知识蒸馏: 多个大模型提取输入内容中与query相关内容的完整上下文,构建训练集
-
微调: 对Llama-2-7B进行SFT得到refiner(随着prompt长度的增加,参数量更大的模型微调的计算成本更高,所以选择参数量小的模型)
个人理解
后续RAG逐渐向Modular RAG的方向发展,核心的module为:
- query理解/解析模块(Intention):
- Rewrite:query的纠错、改写
- Intention:意图识别
- Plan:query的细拆,制定规划(参考PlanRAG/ReSP)
- 检索模块(Retrieval):
- 多路召回:不同的召回来源
- 扩写召回:不同场景下进行不同扩写(参考RichRAG)
- 动态路由检索(参考Adaptive-RAG)
- 重排模块(Rerank):
- Rerank模型(因子建模/端到端)
- 推理/反思模块(Reasoning/Critique):
- Benchmark:评价rag给出的参考信息/生成回复的好坏的基准(参考RAG Benchmark)
- Critique机制:结合benchmark和plan反思召回结果是否合理(参考Self-RAG/ReSP)
- 参考信息生成模块(Summary Generator):
- Summary改写:完整性检查、流畅度检查、要点提取(信息整合)
- Memory机制:结合plan,设置高优/低优,对结果进行独立存储(参考ReSP)