1 摘要
大型语言模型(LLMs)展现了显著的能力,但面临诸如幻觉、过时知识以及不透明、无法追踪的推理过程等挑战。检索增强生成(RAG)通过整合外部数据库的知识,已成为一个有前途的解决方案。
LLM RAG(Retrieval-Augmented Generation)结合了检索和 AI 生成两种方法,旨在提高生成式任务的性能。RAG 模型成为了基于 LLM 的系统中最流行的体系结构之一,并在多个应用领域中得到了广泛应用。这提高了模型的准确性,增强了模型的信誉,特别是对于知识密集型任务,并允许持续的知识更新和特定领域的集成信息。RAG 协同地融合了 LLM 的内在知识与外部数据库的广阔、动态的存储库。本文全面回顾了 RAG 范式的进展,包括朴素 RAG、进阶 RAG 和模块 RAG。仔细审查了 RAG 框架的三部分基础,包括检索、生成和增强技术。本文重点介绍了每个关键组件中的先进技术,为 RAG 系统的进步提供了深刻的理解。此外,本文还介绍了评估 RAG 模型的度量和基准,以及最新的评估框架。总之,本文指出了未来的研究方向,包括识别挑战、扩展多模态、以及 RAG 基础设施及其生态系统的进步。

2 定义
RAG 是一种通过融入外部知识库来优化 LLM 性能的模式,采用协同方式,综合信息检索机制和上下文学习技术,增强 LLM 的性能。其工作流程包含三大核心步骤:对语料库进行离散化处理并生成向量索引,根据查询与索引块的向量相似性识别并检索相关块,以及基于检索到的块中的上下文信息生成响应。RAG 无需针对特定任务重新训练 LLM,开发者可通过增添外部知识库丰富输入内容,提升模型输出精度。其关键优势在于信息检索和上下文感知生成能力。

3 RAG 框架
RAG 研究范式经历了不断演变的过程,主要分为朴素 RAG、进阶 RAG 和模块 RAG 三种类型。
3.1 朴素 RAG
朴素 RAG 遵循传统流程,包括索引、检索和生成。索引为检索提供了便利,检索和生成是关键挑战领域。检索质量低,生成质量引发幻觉挑战,增强过程难以有效地结合上下文与当前生成任务。重复和冗余也是问题,需要确定重要性和相关性,协调不同的写作风格和语气。生成模型过度依赖增强信息存在风险。
3.2 进阶 RAG
进阶 RAG 通过预检索和后检索策略,以及滑动窗口、细粒度分割和元数据等技术改进索引方法,以弥补 Naive RAG 的缺点。预检索过程包括增强数据粒度、优化索引结构、添加元数据、对齐优化和混合检索。检索阶段通过计算查询和块之间的相似性来确定适当的上下文,嵌入模型是核心。后检索过程需要对检索到的内容进行重新排名和提示压缩,以应对上下文窗口限制带来的挑战。
3.3 模块 RAG

RAG 系统是一种新型的框架,具有更大的灵活性和适应性,可以整合各种方法来增强功能模块,并解决特定问题。模块 RAG 具有高度的适应性,允许在 RAG 过程中替换或重新排列模块以适应特定问题情境。优化 RAG 管道可以提高信息效率和信息质量,通过整合各种搜索技术、改进检索步骤、融入认知回溯、实施多功能的查询策略和利用嵌入相似性等方法实现。这种方法有助于生成对后退提示的响应和最终的答案生成过程。然而,这种方法可能不会始终产生令人满意的结果,特别是当语言模型对主题不熟悉时,可能会导致更多的错误实例。
4 检索
在 RAG 中,高效检索文档需解决三大问题:精确的语义表示、协调查询与文档语义空间,以及检索器输出与大型语言模型偏好的协调。
4.1 加强语义表示
为了构建精确的语义空间,可以采用块优化和微调嵌入模型两种方法。在实施块优化时,需要考虑索引内容的特性、所选嵌入模型的适用性、用户查询的预期长度和复杂性,以及应用程序的实际使用情况。在微调嵌入模型时,可以利用特定领域的数据集和下游任务的微调来提升模型的性能。目前,在 RAG 领域中,研究者们正在探索各种多元化的方法,以提高信息检索的效率和准确性。








