1 RAG技术解析

1.1 RAG技术的重要性

仅依赖LLM的局限性

尽管LLM的参数规模与训练数据量显著增长,使其在自然语言处理任务中的能力快速提升,但模型的知识记忆能力仍受限于架构与训练范式。由于通常需要预训练数据对同一知识点进行多次曝光才能实现有效记忆,导致其记忆效率偏低,且难以全面覆盖各领域知识。

更核心的局限在于,LLM的性能高度依赖训练阶段接触的静态数据。这使其在处理实时更新信息(如最新科技、时事新闻)、长尾知识(即罕见或未纳入训练数据的内容)及动态变化内容时表现不佳,可能生成错误、不完整甚至虚构的信息,即出现 “幻觉” 问题。

此外,针对特定领域的复杂专业知识,LLM的处理效率与深度理解能力也显不足。仅依靠模型无法动态访问外部知识库,这在需依赖精确、最新信息的场景(如问答、医疗诊断、法律咨询、实时信息查询等)中尤为受限。因此,如何克服对静态数据的依赖、提升知识获取的效率与实时性、减少幻觉现象并增强领域深度理解能力,已成为当前LLM发展面临的关键挑战。

RAG技术的诞生

为弥补LLM单独使用时的局限性,检索增强生成技术应运而生。其核心原理是融合“检索”与“生成”:在接收用户查询时,系统先从外部大规模知识源(如文档、数据库)中动态检索相关信息片段,再将这些片段作为附加上下文输入生成模型,辅助其完成答案创作。借助这一机制,模型能够生成更精准、可靠且贴合上下文的答案,不仅大幅提升了生成内容的准确性、相关性与实时性,有效缓解了“幻觉”问题,还增强了答案的可追溯性与可信度;同时,通过动态引入最新信息源,RAG技术显著加快了知识更新效率。

此外,RAG技术赋予模型处理复杂任务的能力,例如串联整合多步骤推理、融合不同领域知识等。以“近期哪个品牌的新款手机拍照功能最优”这一问题为例,其可快速调取最新测评文章,并基于这些内容给出详尽解答,因此在需精准且及时信息的场景中优势显著。

简言之,RAG技术是一种通过融入外部知识库优化LLM性能的模式。关于RAG技术的起源可以参考RAG起源、演进与思考

https://dev.to/azubuike_alexmmaghiri_9e/revolutionizing-ai-with-retrieval-augmented-generation-rag-architectures-workflows-and-9c4

RAG技术的应用场景

RAG技术的核心优势在于整合信息检索与文本生成能力,有效突破了LLM在时效性与准确性不足等固有局限,凭借这一核心优势,其应用已延伸至智能问答、文本摘要、对话系统、教育培训、知识增强型问答与推理、个性化推荐及决策支持等多个领域。典型如:

  • 在企业知识库管理中,可快速定位内部文档中的关键信息并生成结构化解读,提升团队协作效率;
  • 在金融领域,能实时整合市场动态、政策变动等数据,为投资分析提供基于多源信息的趋势预判;
  • 在客服场景中,可结合用户历史交互记录与产品知识库,生成贴合需求的精准回复,优化服务体验;
  • 在科研领域,助力研究者整合跨学科文献、实验数据,生成具有针对性的研究思路与文献综述框架。

随着LLM的兴起,以RAG技术为核心驱动力的新一代智能搜索系统迅猛发展,深刻重塑着信息获取模式。与传统搜索引擎不同,微软Bing Chat、百度文心一言等基于RAG的系统,不仅能更智能地理解用户意图,更能提供高度个性化、上下文关联的交互体验,其角色也从单纯的信息检索工具,演进为可直接输出经信息整合与分析的精确答案的智能系统。

1.2 RAG系统简介

RAG系统工作流程概览

RAG系统的核心在于检索与生成流程的深度融合,其核心逻辑是通过动态引入外部知识,大幅提升输出内容的准确性与相关性。具体工作流程以用户查询为起点:首先,检索模块借助向量检索等技术,将用户查询转化为向量形式,从文档库、知识图谱或搜索引擎等外部知识源中快速定位、筛选并提取高度相关的信息片段;随后,以LLM为基础的生成模块会整合查询内容与检索到的上下文信息,经推理、整合与重组,最终生成连贯且精准的答案。

例如,当用户询问“2024年夏季奥运会的举办城市是哪里,有哪些特色比赛项目?”时,RAG系统会率先检索2024年奥运会的相关资料,获取举办城市为巴黎,以及新增的冲浪、滑板等特色项目,还有巴黎奥运会在塞纳河举办公开水域比赛等信息。接着,将这些信息整合,生成“2024年夏季奥运会的举办城市是法国巴黎。该届奥运会新增了冲浪、滑板等深受年轻人喜爱的项目”的回答。

https://arxiv.org/abs/2402.19473

基础的RAG系统

为清晰阐述RAG系统的基本原理与实现逻辑,本部分聚焦其核心流程(检索+生成)的简化模型展开说明。

RAG系统的核心机制是在生成答案前,先从知识库中检索相关信息,再以这些信息为依据引导生成过程。这一机制带来多重优势:既能显著提升结果的准确性与相关性,有效缓解模型幻觉问题;又能通过仅更新知识库即可纳入新知识(无需重新训练模型),实现快速迭代;同时增强结果可追溯性,大幅提升大模型应用的可靠性与实用性。基础RAG系统更加详细介绍可以参考:RAG到底咋工作的

一个基础的RAG系统通过以下核心模块协同实现上述流程:

  1. 文档处理模块:负责加载文章、书籍、对话、代码等各类原始文本,并将其切分为便于处理的片段。切分通常以句子为单位,且会特意保留片段间的部分重叠内容。此举可避免语义被生硬割裂,从而提高后续检索准确性。
  2. 向量编码器:借助Embedding模型将文本片段转化为向量。通俗而言,就是将文字“翻译”为计算机可理解的数字向量,使文本语义转化为可计算的数值特征。
  3. 向量数据库:作为专门存储文档片段及其对应向量的载体,在文本切分与向量编码完成后,会集中存储这些数据,为后续快速检索奠定基础。
  4. 检索器:作为连接用户查询与数据库的“桥梁”,接收用户查询(Query)后,通过计算查询向量与数据库中向量的相似度,快速定位最相关的文档片段。
  5. LLM:以检索到的相关文档片段为上下文,结合自身语言理解能力生成贴合用户需求的自然语言答案,最终实现“基于事实的智能回答”。

https://arxiv.org/abs/2312.10997v5

上述模块的协作可梳理为RAG的基础流程,即索引、检索、生成三个核心环节,各环节与模块的对应关系如下:

  1. 索引:借助文档处理模块、向量编码器、向量数据库,将文档库分割为较短片段,再通过编码器构建向量索引。
  2. 检索:依托上述三者,根据问题与片段的相似度检索相关文档片段。
  3. 生成:由LLM以检索到的上下文为条件,生成问题的回答。

https://blog.dailydoseofds.com/p/5-chunking-strategies-for-rag?ref=dailydoseofds.com

1.3 RAG系统工作流程详细介绍

本节主要在1.2节基础上详细介绍RAG系统的工作流程,相关内容更加详细的介绍可以见:16 Techniques to Supercharge and Build Real-world RAG Systems

1.文本分段

文档处理模块首先将外部文档拆分为文本片段,目的是避免因文档过长导致的检索效率低、语义理解受限、资源浪费、生成质量下降及歧义风险增加等问题。合理分段是保障后续检索上下文有效性的前提。​

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

  1. 文本片段向量化​

完成文本分段后,借助向量编码器将各文本片段转化为语义向量。目前主流的做法是采用Transformer模型,其强大的上下文理解能力,正是生成高质量语义向量的关键。关于文本向量的提取方法,可参考文章:Bi-encoders and Cross-encoders for Sentence Pair Similarity Scoring

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

  1. 向量存储与知识库构建​

将文本向量存入向量数据库,数据库通过关联存储原始内容与对应向量构建外部知识文本库。作为RAG的知识存储层,向量数据库聚合各类知识,为查询响应提供精准依据。

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

  1. 用户查询向量化​

用户输入查询文本(query)后,系统使用与构建知识库时一致的向量编码器将其转化为向量,确保语义空间一致性。​

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

  1. 相似片段检索

检索器通过比对查询向量与数据库中存储的文本向量,定位相似度最高的信息。

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

实际应用中,检索器通过近似最近邻搜索返回前k个(topk)最相似片段,这是因为复杂查询常关联多个相关内容,多结果能避免关键信息遗漏,为响应生成提供全面依据。

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

  1. 文本片段重排序

检索完成后,需进一步处理挑选出的文档片段,将相关性最高的文本段落置于最前,这一过程称为重排序。此步骤通常使用Reranker模型,这类模型多为交叉编码器,会评估查询与各候选段落的相关性并给出精确相关度分数,随后依分数重新排序,将最相关段落置于前列,便于生成模型优先选用。

这样做能提升后续生成内容的准确性和针对性,不过并非所有RAG应用都包含此步骤。

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

  1. 生成回答

将用户原始查询与检索到的文本片段整合为提示模板,输入至LLM。模型以文本片段为上下文,生成既融合文档信息、又具备连贯性和相关性的回答,直接回应用户查询。​

https://www.dailydoseofds.com/16-techniques-to-supercharge-and-build-real-world-rag-systems-part-1/

2 RAG技术演进趋势和常见问题

2.1 RAG技术优化与演进趋势

2.1.1 RAG技术增强路径

随着LLM的迅猛发展,RAG技术同步进入快速演进阶段。目前,已有大量研究与实践从多维度切入。下面将从增强阶段、增强来源和增强过程三个方面,介绍现有技术如何通过多样化手段提升RAG的检索精度并优化运行效率。

增强阶段

从技术增强的阶段特性来看,LLM在预训练、微调和推理环节的优化方式具体如下:

  • Pre-training(预训练阶段):引入检索增强机制,强化模型对外部知识的融合能力
  • Fine-tuning(微调阶段):依托检索优化手段,提升模型对特定任务的适配性能
  • Inference(推理阶段):通过动态检索知识辅助生成过程,这也是RAG技术最核心的应用场景

https://arxiv.org/abs/2312.10997v4

增强来源

在RAG技术中,增强来源指通过外部数据弥补模型固有缺陷的信息渠道,主要包括三类:

  1. 非结构化数据(天然文本形式,如文章、小说)
  • 定义:无固定格式的文本内容,涵盖新闻、论文、小说、网页段落等。
  • 示例:
    • 模型预训练时学习的百科“李白生平”纯文字词条;
    • 推理阶段检索的问答网站“如何评价李白”的散文式用户回答。
  • 特点:人类可直接阅读,但提取关键信息需“大海捞针”(例如从一篇论文中定位某句话)。
  1. 结构化数据(规整格式呈现,如表格、数据库)
  • 定义:格式明确的数据形态,包括Excel表格、数据库表、知识图谱(含节点与关系)等。
  • 示例:
    • 模型预训练时学习的“中国诗人朝代表”(表格中包含“姓名-朝代-代表作”字段);
    • 推理时查询知识图谱中“李白→好友→杜甫”的关联关系。
  • 特点:数据排列规整,可精准提取信息(如直接获取表格中的“李白生卒年”),但要求模型具备解析格式的能力(如表格解析能力)。
  1. LLM生成内容(模型实时生成的思考草稿)
  • 定义:模型在推理过程中临时产生的文本(非外部现成信息,属于思考阶段的动态产物)。
  • 示例:
    • 回答“李白与杜甫的关系”时,模型先自主生成假设:“他们是好友,杜甫曾作《赠李白》”(此为模型实时构思的内容);
    • 随后以该假设为线索,检索《杜工部集》中的诗句进行验证。
  • 特点:具备动态性与灵活性(模型边思考边生成),但可能存在误差(如假设错误需通过检索修正)。

一句话总结差异:

  • 非结构化数据与结构化数据:借助外部现成的“知识储备”(他人撰写的文章、表格等);
  • LLM生成内容:借助自身临时的“脑暴草稿”(模型推理中动态生成的内容,用作检索线索)。

增强过程

增强过程指模型通过检索知识辅助生成内容的机制,核心在于检索策略的逻辑设计,具体包括以下几类:

  1. 一次检索(Once Retrieval)
  • 定义:针对问题仅执行单次检索,直接用结果生成答案。
  • 类比:查字典时只翻一次页码,不论解释是否准确便直接引用。
  • 特点:操作简单、效率高,但可能因检索结果不全或问题需多维度知识而遗漏信息。
  1. 迭代检索(Iterative Retrieval)
  • 定义:基于首次生成的内容反复检索补充知识,逐步优化答案。
  • 类比:写作文时先列大纲(首次生成),发现“李白的好友”仅提及杜甫,便再查高适、王昌龄等资料(迭代检索)以补充内容。
  • 特点:形成“生成→反馈→再检索”的循环,类似“游戏中复活后继续闯关”。
  1. 自适应检索(Adaptive Pattern)
  • 定义:根据任务类型或生成状态动态调整检索策略,例如切换数据库、调整检索范围等。
  • 类比:玩游戏时,遇“历史题”切换至历史数据库,遇“数学题”切换至公式库;或发现生成内容模糊时,扩大检索范围。
  • 特点:灵活性强,如同“智能切换武器”,但需模型具备判断“何时使用何种策略”的能力。
  1. 递归检索(Recursive Retrieval)
  • 定义:将复杂问题拆解为子问题,逐层递归检索,像“俄罗斯套娃”般深入探究。
  • 类比:破案时,先查“李白的死因”(主问题),拆解为“李白晚年健康状况”(子问题1),再拆解为“唐朝医疗水平”(子问题2),每层均进行检索。
  • 核心逻辑:遵循“问题→拆解→子检索→再拆解→深层检索”的路径,与递归函数思路一致。

https://arxiv.org/abs/2312.10997v4

总之,RAG发展的三大关键技术包括增强阶段、数据来源及处理过程,这三大技术能够清晰呈现RAG核心组件的分类体系,同时RAG的实现模式也在不断演变。早期的RAG可能只是 “简单检索+直接生成” 的模式,而随着技术进步,其实现中已融入更复杂的环节,这些具体实现方法始终处于动态变化中,愈发精细且能更好地适配不同场景。

搭建RAG系统时,技术选型的应该以需求适配为导向,兼顾效果的评估与优化,选择能高效支撑目标场景且表现更优的方案。关于RAG系统的构建和技术选型可以参考:文章17种RAG架构实现原理与选型或参考下一节内容。

https://blog.abacus.ai/blog/2023/08/10/create-your-custom-chatgpt-pick-the-best-llm-that-works-for-you/

2.1.2 RAG系统实现模式的演化

实现高效文档检索需要解决三大核心问题:

  1. 构建精确的语义表示,确保文档和查询的嵌入能准确捕捉其含义。
  2. 对齐查询与文档的语义空间,缩小检索模型理解的查询意图与文档实际内容之间的语义鸿沟。
  3. 适配检索器输出与LLM偏好,使检索到的上下文信息更符合下游大型语言模型的生成需求。

为应对上述挑战,在RAG架构之上引入了检索前优化和检索后优化的策略。

  1. 检索前优化,提升索引质量如文档切分粒度优化、元数据增强和查询处理如语义转换、关键词扩展,旨在改善检索相关性。
  2. 检索后优化,对检索结果进行过滤、去冗余、重排序按重要性和信息压缩整合,确保输入LLM的上下文信息更精炼相关。

基于优化策略的应用深度,当前RAG研究形成了三种主要范式:

  1. 基础RAG(Naive RAG)

    • 遵循基础流程索引、检索、生成。
    • 主要痛点:
      • 检索质量低,导致检索结果不精准不全面。
      • 生成质量受限,LLM易产生幻觉,难以有效融合检索到的上下文与当前生成任务。
      • 信息冗余与风格冲突,检索结果常包含重复冗余信息,且不同来源文本风格语气不一致,影响生成连贯性。
      • 过度依赖风险,LLM可能过度依赖有时不准确的检索信息。
  2. 进阶RAG(Advanced RAG)

    • 通过强化检索前和检索后优化的流程,并改进索引如滑动窗口、细粒度分割、元数据利用,以解决基础RAG的缺陷。
    • 检索前优化:包括数据粒度优化、索引结构调整、元数据注入、向量对齐、混合检索如结合稀疏与稠密检索等。
    • 检索核心:依赖嵌入模型计算查询与文档块的相似度。
    • 检索后优化:采用重排序和提示压缩技术,克服上下文窗口限制,提炼关键信息。
    • 潜在挑战:以复杂度换效果,提升了基础RAG性能,但其额外模块的引入也带来了效率、泛化性和可维护性的新挑战。
  3. 模块化RAG(Modular RAG)

    • 强调框架的高度灵活性与适应性,可将RAG流程拆解为可替换可重组的模块,以解决特定问题。
    • 优化方向:
      • 提升信息效率与质量,整合多种检索技术,优化检索步骤如引入认知回溯机制,实施多样化查询策略,有效利用嵌入相似性。
      • 支持复杂交互,模块化设计便于处理迭代检索与多轮生成,如对回溯提示的响应。
    • 潜在挑战:当LLM对主题知识匮乏时,依赖检索信息可能导致错误率上升。

事实上除了这三种RAG范式,还有其他更多的范式,具体可参考:一篇搞明白RAG的几种不同类型

https://arxiv.org/abs/2312.10997v5

总之,RAG技术及其构成体系具有较强的复杂性,涵盖知识获取、数据预处理、索引构建、检索策略优化、生成模型调优等多个环节。对于应用层面者而言,优先聚焦于检索模块的精准性提升(如向量数据库选型、相似度算法优化)与生成模块的语义连贯性构建(如提示词工程、大模型适配)这两大核心基础,是快速掌握技术应用逻辑的有效路径。

https://arxiv.org/abs/2312.10997v5

2.2 RAG技术典型问题与优化方案

2.2.1 RAG技术常见问题及解决办法

本节主要介绍RAG技术的常见问题及相应解决办法,更详细的内容可参考文章Traditional RAG vs. HyDE

  1. 问题与答案语义不匹配

检索到的文档可能与问题无关,甚至无关文档的余弦相似度可能高于含答案的文档。

https://blog.dailydoseofds.com/p/traditional-rag-vs-hyde

一种优化方案为:先用LLM针对问题生成假设答案,弥补表述模糊以明确语义指向;再将问题与假设答案转化为文本向量,通过向量拼接或加权求和等方式;最后用该文本向量查询向量数据库,提升匹配精度。

例如,对于问题“需要适合新手,考虑学习难度低,入门成本适中,便于携带的入门乐器”,LLM可生成假设答案以明确指向;再结合该问题与假设答案的语义向量查询数据库,就能精准匹配到“尤克里里学习难度低,入门成本低,体积小便于携带,适合新手入门”这类结果。

需注意这种方法只能在一定程度上减轻问题影响,无法完全消除问题本身的局限性。

  1. 语义相似性可能被弱化

部分含重要信息的长文本常夹杂背景描述、细节补充等无关内容,会稀释核心信息。如同糖水加水后味道变淡,导致RAG计算语义相似度时,与搜索内容的匹配度下降。反观短文本,即便内容不重要,若含少量相关词,因干扰少且相关词集中,与搜索内容的相似度反而更高。最终可能导致系统输出无关信息或遗漏关键信息,影响整体效果。

采用文本摘要或关键句抽取技术预处理长文档,同步进行精准分段、冗余清洗与核心内容提取,仅将浓缩后的核心信息存入语义向量库,再结合优化的检索策略精准匹配相关片段,是应对该问题的有效方法。

  1. 检索文档的关注偏差
Logo

更多推荐