RAG综述笔记 -- 知识铺
公众号文章目录综述
引入在本文中,我们将深入探讨一系列先进的技术主题,包括自然语言处理、机器学习模型的评估与优化,以及多模态学习的最新进展。这些主题不仅涵盖了理论研究,也包括了实际应用和未来发展趋势的讨论。
一、摘要(Abstract)简要概述了文章的主旨和核心观点,为读者提供了一个宏观的认识框架。
二、引言(Introduction)对文章的背景、研究动机和目的进行了阐述,为深入理解全文内容打下基础。
三、RAG 概述### 3.1 Naive RAG介绍了RAG(Retrieval-Augmented Generation)的基本概念和工作原理。
3.2 Advanced RAG探讨了RAG模型的高级特性和优势,以及它在不同应用场景下的表现。
3.3 Modular RAG分析了RAG模型的模块化设计,以及如何根据不同需求进行定制和优化。
3.4 RAG vs Fine-tune比较了RAG与传统的微调(Fine-tune)方法在效率和效果上的差异。
四、检索(Retrieval)### 4.1 检索源#### 4.1.1 数据结构讨论了构建检索系统所需的数据结构和组织方式。
4.1.2 检索粒度分析了检索操作的精细程度对检索效果的影响。
4.2 索引优化#### 4.2.1 分块策略探索了如何通过分块策略提高索引的效率。
4.2.2 元数据附件讨论了元数据在索引优化中的作用和应用。
4.2.3 结构化索引分析了结构化索引对提升检索性能的贡献。
4.3 查询优化#### 4.3.1 查询扩展介绍了如何通过扩展查询来提高检索的相关性。
4.3.2 查询转换探讨了查询转换技术在优化检索过程中的应用。
4.3.3 查询路由分析了查询路由策略对检索系统性能的影响。
4.4 Embedding#### 4.4.1 混合检索讨论了Embedding技术在混合检索中的应用。
4.4.2 微调 Embedding 模型分析了如何通过微调Embedding模型来提升检索准确性。
4.5 Adapter探讨了Adapter技术在检索系统中的作用和重要性。
五、生成(Generation)### 5.1 调整检索内容#### 5.1.1 Reranking介绍了如何通过重新排序检索结果来优化内容。
5.1.2 Context Selection/Compression分析了上下文选择和压缩技术在生成过程中的应用。
5.2 调整 LLM探讨了如何调整大型语言模型(LLM)以适应特定的生成任务。
六、增强(Enhancement)### 6.1 迭代检索介绍了迭代检索的概念及其在提升检索效果中的作用。
6.2 递归检索分析了递归检索技术如何帮助系统更深入地理解查询。
6.3 自适应检索讨论了自适应检索技术如何使系统根据反馈动态调整检索策略。
七、讨论与未来展望### 7.1 RAG vs Long Context比较了RAG在处理长文本上下文方面的能力。
7.2 RAG 的鲁棒性探讨了RAG模型在面对不同挑战时的鲁棒性。
7.3 Hybrid Approaches分析了RAG与其他技术的混合应用前景。
7.4 Scaling laws of RAG讨论了RAG模型规模对性能的影响。
7.5 Production-Ready RAG分析了RAG模型在实际生产环境中的准备情况。
7.6 多模态 RAG展望了多模态RAG在未来的发展潜力和应用场景。
八、结论总结了全文的核心观点,并对RAG模型及其在自然语言处理领域的应用前景进行了展望。
检索增强生成(RAG)综述学习笔记
摘要
大型语言模型(LLMs)虽然展现出了令人印象深刻的能力,但它们在处理特定领域或知识密集型任务时仍面临诸多挑战,例如产生幻觉、知识过时以及推理过程不透明和不可追溯。检索增强生成(RAG)作为一种解决方案,通过整合外部数据库中的知识,增强了LLMs的准确性和可信度,特别是在知识密集型任务中,并允许持续更新知识以及整合特定领域的信息。本文综述了RAG范式的进展,包括朴素RAG、高级RAG和模块化RAG,并详细检查了RAG框架的三个基础组成部分:检索、生成和增强技术。
LLMs面临的挑战
- 幻觉:在处理超出训练数据范围的查询时产生不准确内容。
- 过时的知识:知识未能及时更新。
- 不透明的推理过程:推理过程难以追踪和理解。
RAG的优势
- 提升生成内容的准确性和可信度。
- 特别适合知识密集型任务。
- 支持知识持续更新和领域信息的整合。
RAG范式的进展
- 朴素RAG:基础方法,涉及索引、检索和生成。
- 高级RAG:在朴素RAG的基础上,通过优化策略提高检索质量。
- 模块化RAG:提供更高的适应性和灵活性,通过模块化方法解决特定挑战。
RAG框架的三个基础
- 检索:从外部知识库中检索与查询语义相似的内容。
- 生成:根据检索结果生成回答。
- 增强技术:通过特定技术提升生成回答的质量。
引言LLMs虽取得显著成功,但在特定领域或知识密集型任务中仍面临挑战。这些任务通常需要专业知识,涉及复杂的信息处理和理解,可能超出常规常识和基础知识范围。例如,当处理超出知识范围的查询时,LLMs可能会产生幻觉。RAG通过从外部知识库检索相关知识,并通过语义相似度计算来增强LLMs的回答,有效减少事实错误内容的生成。
学习资源
- 原文链接:arXiv链接
- 官方资源:Tongji-KGLLM/RAG-Survey
本文仅为个人学习笔记,内容根据个人理解整理,详细内容请参考原文。
RAG技术发展概述
近年来,随着大型语言模型(LLMs)的出现,RAG(Retrieval-Augmented Generation)技术在自然语言处理领域取得了显著进展。以下是RAG技术发展的几个关键阶段:
1. 预训练阶段
- 初始探索:RAG技术起源于Transformer架构的兴起,通过预训练模型(PTM)整合外部知识,增强语言模型的能力。
2. 微调阶段
- ChatGPT的影响:ChatGPT的诞生标志着LLMs展现出强大的上下文学习能力(ICL),为RAG技术的发展提供了新的动力。
3. 推理阶段
- 研究深化:当前RAG研究不仅局限于推理,而是更多地与LLMs的微调技术结合,以应对更复杂的任务。
技术范式与研究方法
- 研究范式:从100多项研究中总结得出三大主要研究范式,包括Naive RAG、Advanced RAG、Modular RAG。
- 关键技术:深入讨论了检索、生成、增强等RAG核心技术。
- 评估方法:总结了26项任务和近50个数据集的评估方法。
RAG应用示例
- 场景描述:用户向ChatGPT提问关于近期新闻的问题,由于知识更新的局限性,LLM可能无法提供有效回答。
- RAG解决方案:RAG通过检索外部知识库,收集与用户query相关的新闻文章,结合query形成新的prompt,利用LLM的整合能力生成有效答案。
综述贡献
- 全面回顾:对RAG进行了全面系统的回顾,包括不同阶段的RAG技术。
- 核心技术讨论:深入分析了检索、生成、增强等关键技术。
- 评估方法总结:提供了对RAG技术评估方法的全面总结。
以上内容是对RAG技术发展历程的概述,展示了其在大模型时代下的研究轨迹和应用潜力。
RAG问答流程解析
RAG(Retrieval-Augmented Generation)是一种先进的问答系统研究范式,它通过结合检索和生成两个阶段来提升问答的准确性和效率。以下是RAG流程的三个核心步骤:
索引阶段在索引阶段,文档首先被分解成多个块,然后每个块都会被编码成向量形式。这些向量随后被存储在向量数据库中,以便于后续的快速检索。
检索阶段检索阶段的目标是根据问题的语义相似性,从向量数据库中检索出与问题最相关的前k个块。这一步骤是问答系统能否准确回答问题的关键。
生成阶段最后,在生成阶段,原始问题和检索到的相关块将一起被输入到大型语言模型(LLM)中。模型将结合这些信息,生成最终的答案。
RAG的研究范式经历了不断的演变和发展,作者团队将其发展分为三个阶段,具体如下:
- 初始阶段:基础的索引和检索机制的建立。2. 发展阶段:检索机制的优化和生成模型的初步集成。3. 成熟阶段:检索与生成的深度融合,以及模型性能的全面提升。
这种分阶段的发展模式有助于更好地理解RAG模型的演进过程,以及每个阶段的关键技术和创新点。
RAG三种范式的比较与分析
朴素 RAG(Naive RAG)
Naive RAG 遵循索引、检索和生成的传统流程,但在处理上存在一些局限性。
索引
将源数据转换为文本,并使用 Embedding 模型获得向量表示,存储于向量库中。
检索
用户 query 向量化后,检索最相似的文本块作为上下文。
生成
组合检索上下文和 query,利用 LLM 生成回答,但可能存在上下文召回精度和幻觉问题。
高级 RAG(Advanced RAG)
Advanced RAG 通过引入预检索和后检索策略,优化检索质量。
预检索
优化索引结构和原始查询,如增强数据粒度和查询重写。
后检索
重新排序检索到的上下文,进行上下文压缩,以提高信息的相关性和减少信息过载。
模块化 RAG(Modular RAG)
模块化 RAG 通过模块替换或重新配置,提供更强的适应性和灵活性。
新模块
引入如搜索模块、RAG-Fusion、记忆模块等,增强检索和处理能力。
新模式
通过模块替换或重新配置,适应不同挑战,如 Rewrite-Retrieve-Read 模型和 Generate-Read 方法。
技术集成与应用
RAG 系统可以通过技术集成,如微调和强化学习,提高性能和应用范围。
RAG vs Fine-tune
RAG 与微调(FT)和 prompt 工程相比,具有不同的优化方法和特点,可以根据外部知识要求和模型适应要求进行选择。
在探讨大型语言模型(LLMs)的优化方法时,我们可以从三个主要角度进行分析:prompt工程、RAG(Retrieval-Augmented Generation)以及微调(Fine-Tuning)。以下是对这些方法的详细总结:
1. Prompt工程
- 利用模型固有功能:通过精心设计的提示(prompt),可以激发模型的内在能力,而无需对模型本身进行修改。
- 最小化外部知识需求:这种方法对外部知识的依赖较低,主要依赖模型自身的知识库。
- 快速应用:适合需要迅速投入使用的场景,可以快速实现模型功能。
2. RAG
- 实时知识更新:RAG模型能够实时地从外部知识源获取最新信息,以增强模型的回答能力。
- 利用外部知识源:通过检索机制,RAG可以访问和整合外部知识,以提供更准确的回答。
- 信息检索任务:特别适用于需要精确信息检索的任务,如问答系统。
- 延迟与道德考量:虽然RAG提供了强大的功能,但也带来了更高的延迟和数据检索时的道德问题。
3. 微调
- 静态更新:微调后的模型是静态的,需要定期重新训练以适应新数据。
- 深度定制:允许对模型的行为和风格进行深度定制,以适应特定的应用需求。
- 计算资源需求:微调过程需要大量的计算资源,适合资源丰富的环境。
- 减少幻觉:微调有助于减少模型生成的幻觉(即错误信息),但在面对陌生数据时可能表现不佳。
实验结果作者团队的实验表明,RAG在处理现有知识和全新知识方面,性能优于无监督微调。选择RAG还是微调,取决于应用场景的数据动态性、定制需求和计算能力。在某些情况下,两者的结合使用可能会带来最佳性能。优化过程可能需要多次迭代。
RAG方法总结作者团队还总结了一些RAG的方法,这些方法可以帮助我们在不同的应用环境中更有效地利用RAG模型。
作者团队的总结确实是很到位,我觉得原理在这一节要是以表格的形式来展现会更清晰一下,我来补充一下吧:
RAG背景下的高效文档检索
在检索增强型生成(Retrieval-Augmented Generation, RAG)的背景下,高效地从数据源中检索相关文档是至关重要的。这涉及到几个关键问题,包括检索源的选择、检索粒度的确定、检索前处理、Embedding模型的选择等。以下是对这些关键点的概述:
检索源与数据结构
RAG依赖外部知识来增强大型语言模型(LLMs)。检索源的类型和检索粒度都会影响最终的生成结果。
数据结构
- 非结构化数据:最常用,如文本。主要来源包括Wikipedia Dump,用于开放域问答(ODQA)。
- 半结构化数据:如PDF,包含文本和表格信息。
- 结构化数据:如知识图谱(KG),提供精确信息。
- LLMs生成的内容:利用LLMs内部知识进行检索。
检索粒度
检索数据的粒度对生成结果有显著影响,包括粗粒度和细粒度的选择。
索引优化
索引构建的质量决定了检索阶段能否获得正确的上下文。
分块策略文档分割方法对检索效果有显著影响,包括固定块大小和优化方法。
元数据附件利用元数据可以丰富检索块并优化检索过程。
结构化索引构建文档层次结构是增强信息检索的有效方法。
查询优化
Naive RAG的主要挑战之一是直接依赖用户的原始查询作为检索的基础。
查询扩展将单个查询扩展到多个查询可以丰富查询的内容。
查询转换通过转换后的查询进行检索,以提高检索效果。
查询路由基于不同的查询,路由到不同的RAG管道。
Embedding模型
检索是通过计算query和文档块的向量之间的相似度来实现的,Embedding模型的语义表示能力起着关键作用。
混合检索稀疏和密集Embedding方法互补,相互增强。
微调Embedding模型在领域数据集上微调Embedding模型对于减轻与预训练语料库的差异至关重要。
Adapter
微调模型可能会带来挑战,因此一些方法选择结合外部适配器来帮助对齐。
生成
检索后,将检索到的信息直接输入到LLM来回答问题并不是一个好的做法。需要对检索到的内容进行进一步处理。
调整检索内容冗余信息会干扰LLM的最终生成,而过长的上下文也会导致问题。
RerankingRerank的目的是从根本上对文档快进行重新排序,突出最相关的结果。
Context Selection/Compression过多的上下文可能会引入更多噪音,削弱LLM对关键信息的感知。
调整LLM
针对性微调、调整输入和输出、强化学习对齐、模型提取和微调协调是调整LLM的关键点。
增强
在RAG领域,多步骤推理的复杂问题需要优化检索过程。
RAG技术及其发展
1. RAG技术概述RAG(Retrieval-Augmented Generation)技术通过结合检索和生成过程,增强了大型语言模型(LLMs)的性能。它包括三种主要的检索增强过程:迭代检索、递归检索和自适应检索。
迭代检索迭代检索通过在生成和检索之间交替进行,逐步丰富上下文信息,提高答案的准确性和鲁棒性。然而,它也面临着语义不连续和不相关信息积累的挑战。
递归检索递归检索通过细化用户查询,将问题分解为子问题,并通过检索和生成逐步解决复杂问题。这种方法适用于用户需求不明确或信息高度专业化的场景。
自适应检索自适应检索使RAG系统能够自主决定是否需要外部知识检索,以及何时停止检索和生成,通常利用特殊令牌进行控制。
2. 检索增强过程详解
迭代检索迭代检索利用初始查询和生成的文本不断搜索知识库,以提供更全面的上下文参考。
优势
- 提供更全面的上下文参考
- 增强答案生成的鲁棒性
挑战
- 语义不连续
- 不相关信息积累
递归检索递归检索基于先前的搜索结果不断细化搜索查询,提高搜索结果的深度和相关性。
方法
- 使用思想链指导检索过程
- 创建澄清树优化查询
自适应检索自适应检索方法如Flare和Self-RAG,通过使LLMs主动确定检索的最佳时刻和内容,提高检索的效率和相关性。
代表方法
- Flare
- Self-RAG
3. 讨论与未来展望RAG技术虽然取得了显著进展,但仍面临一些挑战和未来的研究方向,包括与长上下文的对比、鲁棒性、混合方法、缩放定律、生成就绪的RAG以及多模态RAG。
RAG vs Long Context尽管LLM支持的上下文不断扩大,RAG在提高运行效率和可观察性方面仍具有不可替代的作用。
RAG的鲁棒性提高RAG对错误信息的对抗性是未来的研究趋势。
Hybrid Approaches结合RAG与微调,利用参数化和非参数化的优势,是值得探索的领域。
Scaling laws of RAG端到端的RAG模型和基于RAG的预训练模型是当前研究的焦点。
Production-Ready RAG提高检索效率、召回率和数据安全是RAG实用性的关键。
多模态RAGRAG技术正在扩展到图像、音频、视频和代码等多种模态数据。
4. 结论RAG技术的发展不断推动着人工智能领域的进步,未来将继续在多个方向上进行创新和优化。
RAG生态系统概述
本文综述了RAG技术的最新进展、演变、应用及其未来发展方向,具体内容如下:
RAG技术进展RAG技术通过整合来自语言模型的参数化知识与外部知识库的非参数化数据,显著提升了大型语言模型(LLMs)的功能。
RAG技术演变
- 技术演变:RAG技术在不同任务中的应用展示了其演变过程。
- 开发范式:分析了RAG框架内的三种开发范式——Naive、Advanced和Modular RAG,每种都是对前一种的改进。
技术集成RAG技术与微调、强化学习等其他AI方法的集成,进一步扩展了其应用范围。
研究机会尽管RAG技术取得了显著进步,但仍存在提升其稳健性和处理扩展上下文能力的研究机会。
多模态扩展RAG技术的应用正向多模态领域扩展,调整其原理以适应图像、视频和代码等多种数据形式,这对其在AI领域的实际应用产生了重大影响。
RAG生态系统发展以RAG为中心的AI应用和支持工具的持续开发,证明了RAG生态系统的不断发展。
评估方法完善随着RAG应用领域的扩大,评估方法的完善变得尤为重要,以确保准确且具有代表性的绩效评估。
结论RAG技术的发展不仅推动了人工智能的进步,也为学术界和工业界带来了新的研究和应用机会。
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek001/post/20240801/RAG%E7%BB%BC%E8%BF%B0%E7%AC%94%E8%AE%B0--%E7%9F%A5%E8%AF%86%E9%93%BA/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com