游乐游手机版
首页/AI热点日报/热点详情

大模型RAG技术入门与扫盲指南

类型:热点整理2026-06-23
最近,RAG(检索增强生成)在日常工作中间出现的频率越来越高,网上相关的资料也是铺天盖地。今天这篇文章,咱们就把RAG从头到尾捋一遍——它到底是什么、怎么工作的、有哪些优化手段、怎么评估它的效果,以及目前还面临哪些坑。不求讲得多深,但求把脉络理清楚。 认识RAG 大型语言模型(LLM)已经渗透到我们

最近,RAG(检索增强生成)在日常工作中间出现的频率越来越高,网上相关的资料也是铺天盖地。今天这篇文章,咱们就把RAG从头到尾捋一遍——它到底是什么、怎么工作的、有哪些优化手段、怎么评估它的效果,以及目前还面临哪些坑。不求讲得多深,但求把脉络理清楚。

认识RAG

大型语言模型(LLM)已经渗透到我们生活和工作的方方面面,它们用惊人的灵活性和智能改变了人和信息打交道的模式。不过,别看它们神通广大,毛病也不少:动不动就“幻觉”,给你编出一套看起来挺像那么回事的假东西;信息源可能早就过时了;遇到专业领域的问题,深度不够;推理能力也经常掉链子。

在实际落地的时候,数据得不断更新才能跟上最新动态,生成的内容还要透明、可追溯,同时还得控制成本、保护数据隐私。光靠一个“黑盒子”模型显然不够用——我们需要更精细的方案来搞定这些复杂需求。正是在这个节骨眼上,检索增强生成(RAG)作为AI领域的一个突破性方向,开始受到广泛关注。

图中是RAG在问答中的典型应用(向ChatGPT询问OpenAI首席执行官Sam Altman的解雇和重新聘用事宜)

RAG的思路很直接:在语言模型生成答案之前,先从外部文档数据库里检索相关信息,有了这些“外设”知识再作答。这样一来,内容的准确性和针对性就上了一个台阶。

RAG的演变

RAG这个概念最早是Lewis在2020年提出的,这些年发展得特别快。最开始的研究重点放在“预训练阶段”,想通过往语言模型里注入额外知识来增强它的能力。ChatGPT的火爆则点燃了大家对利用大模型做深层上下文理解的兴趣,也加速了RAG在推理阶段的发展。随着研究者们把大模型的能力越挖越深,焦点慢慢转向了增强可控性和推理技能。GPT-4的出现算是一个重要的里程碑——它用一种新思路重新定义了RAG,把检索增强和微调技术结合了起来,同时继续优化预训练策略。

RAG研究的时间轴树

从技术范式的角度来看,RAG的演变大致可以分为以下几个阶段:

原始RAG

经典的RAG过程,也叫Naive RAG(朴素RAG),主要包括三个基本步骤:

  • 索引——把文档语料库切成较短的块,通过编码器构建向量索引。
  • 检索——根据问题和块之间的相似度,把相关的文档片段捞出来。
  • 生成——拿着检索到的上下文,回答问题。
索引 → 检索 → 生成
步骤1 索引
  1. 将文档切成大小均等的块,每块都是原文的一部分。
  2. 用编码模型为每个块生成嵌入向量。
  3. 把每个块的嵌入存到向量数据库里。
步骤2 检索

用向量相似度搜索,把最相关的k个文档片段找出来。

步骤3 生成

把原始查询和检索到的文本拼在一起,喂给LLM,得出最终答案。

高级RAG

Naive RAG在检索、生成和增强这几个环节都面临不少问题。于是高级RAG范式就出来了,它在检索前和检索后都加了额外的处理。检索之前,可以用查询重写、路由、扩展等方法,对齐问题和文档块之间的语义差异。检索之后,对拿到的文档做重排,可以避免“中间内容丢失”的现象;或者对上下文进行过滤和压缩,缩短窗口长度。

索引优化 → 检索前流程 → 检索 → 检索后流程 → 生成
  • 优化数据索引:滑动窗口、细粒度分割、添加元数据
  • 预检索过程:检索路线、摘要、重写和信心判断
  • 后检索过程:重新排序、过滤内容检索

模块化RAG

随着技术继续演进,出现了突破传统Naive RAG“检索-生成”框架的新思路,也就是模块化RAG(Modular RAG)。它的结构更加自由灵活,引入了更多专门的功能模块,比如查询搜索引擎、多种答案的融合等。技术上,它把检索和微调、强化学习等技术整合在一起。流程方面,RAG模块被设计和编排,催生了各种不同的RAG模式。

不过,模块化RAG并不是突然冒出来的。三种范式之间是继承和发展的关系:高级RAG是模块化RAG的一个特例,而朴素RAG又是高级RAG的一个特例

RAG是如何进行增强的?

要搭一个靠谱的RAG系统,增强部分是关键,需要想清楚三个核心问题:

  • 检索什么?

Token、分片、段落、实体、知识图谱等

  • 何时检索?

1、在推理过程中做一次性检索:检索效率高,但文档相关性可能偏低;2、平衡效率和信息,但未必是最优解;自适应地去搜索;3、每生成N个令牌检索一次,信息量大,但效率低,信息容易冗余。

  • 如何使用检索到的信息?

在推理过程中,把检索到的信息集成到生成模型的不同层。1、输入数据层:使用简单,但没法支持检索更多的知识块,优化空间有限;2、模型中间层:能支持更多知识块,但引入了额外的复杂性,必须经过训练;3、输出预测层:保证输出结果和检索内容高度相关,但效率低一些。

从这三个问题出发,可以把增强方式整理如下:

  • 增强来源:增强可以利用各种形式的数据,包括非结构化数据(比如文本段落、短语或单词),也可以用结构化数据(比如索引文档、三元组数据或子图)。还有另一种思路——不依赖外部信息源,直接利用LLM自身的内在能力,从模型自己生成的内容里检索。

  • 强化阶段:检索增强可以在预训练、微调和推理阶段进行。不同的阶段决定了外部知识被参数化的程度,也对应着不同的计算资源需求。

  • 增强过程:在推理过程中,把检索到的信息集成到生成模型的不同层。最初是一次性检索,但后来逐渐出现了迭代检索、递归检索,还有让LLM自己决定检索时机的自适应检索方法。

RAG优化的关键技术

1、优化数据索引

  • 块优化

Small-2-Big:句子级别的嵌入,扩展了生成过程中的窗口。
Slidingwindow:覆盖整个文本,避免语义歧义。
摘要:先通过摘要检索文档,再从文档里检索文本块。

  • 添加元数据
    伪元数据,比如:页面、时间、类型、文档、标题。

伪元数据生成:通过为输入的查询生成假设文档,以及创建文本块可以回答的问题,来增强检索效果。

  • 元数据过滤/浓缩:剖析并注释文件。查询时,除了语义查询,还推理元数据过滤。

2、结构化的语料库

检索语料库的层次组织

  • 摘要→文档:用摘要检索代替文档检索。不仅检索最直接相关的节点,还探索与这些节点相关联的其他节点。

  • 文档→嵌入对象:文档里有嵌入式对象(如表、图表),先检索实体引用对象,再查询底层对象,比如文档块、数据库、子节点。

3、优化检索数据来源

4、知识图谱作为检索来源

GraphRAG
  • 从用户输入的查询中提取实体,然后构建子图形成上下文,最后输入给大模型进行生成。
实现思路
  • 用LLM(或其他模型)从问题中提取关键实体;
  • 基于实体的子图检索,挖掘到一定深度,比如2跳或更多跳;
  • 利用获得的上下文,通过LLM生成答案。

5、优化查询语句

  • 问题和答案之间并不总是有很高的语义相似度;
  • 调整查询可以得到更好的检索结果。

6、优化 Embedding

  • 选择更合适的 Embedding
  • 微调 Embedding 模型

根据特定领域库和下游任务进行微调

微调适配器模块,让Embedding模型和检索数据库对齐

7、检索流程优化

从语料库里迭代检索,获得更详细、更深入的知识。
由LLM动态决定检索的时间和范围。

8、混合方案(RAG + 微调)

除了RAG,LLM的主要优化策略还有提示工程(Prompt Engineering)和微调(Fine-tuning)。它们各有各的用武之地。看具体场景——对外部知识的依赖程度、对模型调整的要求不同,适合的方案也不一样。

可以这么理解:RAG就像是给了模型一本定制信息检索的教科书,特别适合处理特定的查询;而微调则像学生通过时间内化知识,更适合模仿特定的结构、风格或格式。微调能增强基础模型的知识、调整输出、教授复杂指令,从而提升模型的性能和效率。但它不擅长整合新知识,也不适合快速迭代新场景。RAG和微调并不互斥,它们是互补的——一起用可能效果更佳。

RAG整体框架

如何评估 RAG 的有效性?

评估方法

1 独立评估

1.1 检索
  • 评估查询检索到的文本块质量:指标包括MRP、命中率、NDCG。
1.2 生成/合成
  • 评估检索文档增强后的上下文质量:指标是上下文相关性。

2 端到端评估

2.1 评估模型最终生成的内容
  • 有标签的生成内容:用EM(精确匹配);无标签的准确性:考察保真度、相关性、无害性。
  • 采用人工评价方法进行自动评估(LLM评估)。

关键指标和能力

RAG的评估方法挺多的,主要围绕三个质量分数:上下文相关性答案忠实度答案相关性。此外,评估还涉及四个关键能力:噪声鲁棒性(对噪音的抗干扰能力)、拒答能力(该说“不知道”时不说胡话)、信息整合能力反事实鲁棒性。这些评估维度既有传统的定量指标,也有针对RAG特性的专业评估标准——虽然目前这些标准还没有统一。

在评估框架方面,有RGB、RECALL这样的基准,还有RAGAS、ARES、TruLens等自动化评估工具,它们能帮助我们全面衡量RAG模型的性能。

RAG框架总结

RAG面临的挑战

目前RAG面临的主要挑战包括:

  • 上下文长度:检索内容太多超出窗口限制;内容过长导致中间部分丢失;如果LLM的上下文窗口不再受限,RAG又该怎么改进?
  • 鲁棒性:怎么处理检索到的错误内容?如何过滤和验证?如何提高模型抗毒性、抗噪声的能力?
  • 协作微调:怎么同时用好RAG和微调的效果?它们应该怎么协调、组织——串联、交替还是端到端?
  • 缩放定律:RAG模型是否满足缩放定律?什么情况下可能会出现逆缩放定律现象?
  • LLMs角色:LLM既可用于检索(用生成或搜索记忆替代搜索),也可用于生成和评估。怎么进一步挖掘LLM在RAG中的潜力?
  • 生产准备:如何减少超大规模语料库的检索延迟?如何确保LLM不会泄露检索到的内容?

RAG 生态系统

RAG的应用已经不局限于问答系统了,它的影响力正在向更多领域扩展。推荐系统、信息提取、报告生成等任务都开始受益于RAG技术。

与此同时,RAG还催生出了LangChain、LlamaIndex这类知名工具。

来源:https://www.53ai.com/news/RAG/2024090903194.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。