自学教程

RAG 检索增强生成

一文读懂RAG检索增强生成:从基础原理到RAG 2.0进阶,看完就懂怎么用

你有没有过这种经历:
公司几百页的产品手册,客户问一个具体问题,翻半天找不到在哪;
想让AI基于内部文档、会议纪要回答问题,结果它要么不知道,要么张嘴就编;
把整份长文档塞给AI,不是上下文装不下,就是它看了后面忘前面,答非所问。

这就是 RAG(检索增强生成) 要解决的问题。简单说,它是一套让AI“先查资料再回答”的技术:先从你的私有知识库中找出最相关的内容,再带着这些上下文让大模型生成答案。
没有RAG,AI只靠训练时学的知识作答;有了RAG,AI就能用上你私有的、最新的、专属的信息。

一、为什么需要RAG?三个绕不开的痛点

1. 知识截止问题

所有大模型都有“知识截止日期”——训练数据只到某个时间点,之后发生的事它不知道。更重要的是,你的内部文档、产品手册、公司规范,从来就没出现在训练数据里,它不可能天生就知道。

2. 私有数据没法直接用

你可能会想:那我直接把整份文档贴给AI不行吗?
短文档可以,长文档不行:

  • 上下文有限:普通模型上下文就几千到几万字,几百页的手册根本塞不下;
  • 效果不好:就算塞得进去,AI也容易迷失在长文本里,找不到重点;
  • 成本太高:大上下文模型按Token计费,每次都把整本书塞进去,成本会非常高。

3. 幻觉问题

AI经常一本正经地编造事实,这就是“幻觉”。RAG通过给它提供明确的参考上下文,能大幅减少胡说八道,还能追溯答案来源。

二、RAG vs 微调:别再搞混了

很多人分不清RAG和模型微调,其实完全是两条路线,用一个比方就能懂:

  • RAG = 开卷考试:允许你带参考书,答题的时候翻资料找答案,知识随时更新;
  • 微调 = 背书:把知识提前灌进脑子里,考试的时候凭记忆答。
对比项RAG检索增强模型微调
知识更新随时更新,立即可用需要重新训练,周期长
适用数据量非常大(百万级文档)中等(几千到几万样本)
引用溯源可以显示答案来自哪篇文档无法追溯来源
幻觉问题通过提供上下文大幅减少仍可能产生幻觉
修改删除直接增删文档即可需要重新训练,很难“遗忘”
技术门槛较低,现有框架就能做较高,需要GPU和训练经验
成本主要是向量库和嵌入费用训练成本高,推理成本也高

简单判断原则
如果是让AI“知道”某些事实类知识(产品说明、公司规范、文档内容),用RAG;
如果是让AI“学会”某种风格或能力(写作风格、代码规范、特定语气),用微调。

实际项目里,两者常常搭配使用:先微调让模型懂领域术语,再用RAG接最新动态知识。

三、基础RAG:两步工作原理

一个标准的RAG系统分为两大阶段:离线索引阶段(建库,后台做一次)和在线检索阶段(问答,用户提问时实时做)。

第一阶段:离线索引——把你的文档变成可检索的

这个阶段在后台运行,用户看不到,只需要做一次,文档更新时再重新跑。

  1. 文档加载:读取PDF、Word、TXT、网页等各种格式的文档;
  2. 文档切分:把长文档切成小的文本块(Chunk),通常几百到一千个词一块;
  3. 向量化:用嵌入模型把每个文本块转换成向量(一串数字),语义越相近的文本,向量距离越近;
  4. 存储:把向量和原始文本一起存入向量数据库。

第二阶段:在线检索——用户提问时实时找答案

  1. 问题向量化:用同一个嵌入模型,把用户的问题也转换成向量;
  2. 相似度检索:在向量数据库里,找出和问题向量最接近的几个文本块;
  3. 组装Prompt:把检索到的文本作为上下文,和用户的问题一起拼成完整的提示词;
  4. LLM生成:把提示送给大模型,让它基于上下文回答问题;
  5. 返回答案:把回答返回给用户,通常还会附上引用的文档来源。

四、核心组件拆解

1. 文档切分:怎么切不破坏意思

文档切分看起来简单,其实非常影响检索效果。切太小会丢失上下文,切太大会塞进很多无关信息。

常见切分策略:

  • 按字符数:最简单,适合要求不高的场景;
  • 递归切分:优先按段落、再按句子、最后按词拆分,尽量保持语义完整,是最常用的方案;
  • 语义切分:根据语义相似度自动切分,效果最好但成本也高。

实用技巧

  • 块大小从500-1000字符开始试;
  • 相邻块之间留10%-20%的重叠(Overlap),防止关键信息刚好被切在两块中间。

2. 嵌入模型:把文字变成“语义坐标”

嵌入(Embedding)就是把文字转换成一串数字向量。核心特点是:意思越相近的两句话,它们的向量在空间里距离就越近
比如“猫咪很可爱”和“小猫很萌”向量距离很近,和“汽车怎么修”距离就很远。这就是“语义搜索”的基础——不是按关键词匹配,而是按意思匹配。

怎么选嵌入模型?

  • 闭源首选:OpenAI text-embedding-3系列,效果稳定生态好;
  • 开源中文首选:BAAI/bge系列、阿里gte系列,专门针对中文优化,效果比通用模型好;
  • 轻量快速:all-MiniLM系列,体积小速度快,适合原型验证。

3. 向量数据库:专门存“语义坐标”

向量数据库就是专门存储和检索向量的数据库,能快速从百万级向量里找出最相近的。

数据库类型特点适合场景
Chroma本地开源轻量简单,Python友好新手学习、原型开发
Qdrant开源/托管高性能,Rust编写性能要求高的场景
Milvus开源/托管功能全面,企业级大规模企业应用
Pinecone云服务免运维,弹性扩展生产环境、SaaS应用

新手建议从Chroma开始:安装简单,不用额外配置,学习成本最低。

4. 检索方式:不止向量搜索一种

很多人以为RAG就是向量检索,其实不同检索方式各有优劣,组合用效果最好。

  • 向量检索:懂语义,同义词、近义词都能匹配,但精确术语、型号、编号匹配弱;
  • 关键词检索(BM25):传统搜索引擎的方法,精确匹配关键词,产品名、型号这类效果好,但不懂同义词;
  • 混合检索:同时做向量和关键词检索,然后把结果合并重排,兼顾语义和精确匹配。

经验之谈:拿不准用哪种,就用混合检索,大多数场景下效果都是最好的。

五、RAG 2.0:进阶技术升级

基础RAG能用,但要做到生产级好用,还需要进阶技术。业界把这些升级后的形态统称为RAG 2.0

1. 重排序(Rerank):粗选之后再精排

这是提升效果最明显、性价比最高的优化。
思路很简单:第一步先用向量/关键词召回几十条候选(粗筛),第二步用一个更精准的交叉编码器模型,对候选逐条打分排序(精排),只把最好的几条送给LLM。
虽然多了一步,但相关性提升非常明显,基本是生产环境的标配。

2. GraphRAG:把知识织成一张网

传统RAG把文档切成独立的块,跨文档的知识关联就断了。GraphRAG补上了这块短板:

  1. 用AI从文档里提取实体(人物、公司、产品等)和它们之间的关系;
  2. 构建成知识图谱,就像一张知识关系网;
  3. 查询的时候可以沿着关系链“顺藤摸瓜”,支持多跳推理。

比如问“张三曾在哪些A公司的合作伙伴里任职”,传统向量检索很难一步到位,图谱检索就能沿着关系路径找到答案。
适合需要跨文档关联、全局总结、多跳推理的场景。

3. Agentic RAG:让AI自己决定怎么搜

传统RAG是“固定流程”:不管什么问题,都检索一次、给固定条数。
Agentic RAG是“智能流程”:引入AI Agent,让它自己判断:

  • 这个问题需不需要检索?
  • 一次检索够不够,要不要再搜一次?
  • 该用向量搜、关键词搜还是图谱搜?

它会自己规划、自己迭代、自己判断信息够不够,直到能回答问题为止。适合复杂问题、多步推理、研究类场景。

4. 其他实用优化技巧

  • HyDE:先用用户的问题生成一个“假设的答案”,再用这个答案去检索。因为问题短信息少,假设的答案更像文档风格,往往能搜到更相关的内容;
  • 上下文压缩:检索到的文档块,再让AI提炼一遍只保留关键信息,减少无效信息占用上下文;
  • 查询改写:先让AI把用户的口语化问题重写成更适合检索的表达,再去检索。

六、实战:怎么搭第一个RAG系统

不用上来就做很复杂的,新手从最简方案入手最快。

新手入门工具组合

  • 编排框架:LangChain / LlamaIndex(封装了各种组件,不用从零写)
  • 向量数据库:Chroma(本地轻量)
  • 大模型:OpenAI / DeepSeek / 开源模型
  • 嵌入模型:bge-small(中文轻量好用)

基本步骤

  1. 准备文档:整理好要入库的文本资料;
  2. 创建索引:加载文档→切分→向量化→存入向量库;
  3. 查询测试:输入问题,看检索到的内容对不对,回答准不准;
  4. 迭代优化:调整块大小、换嵌入模型、加重排序,逐步提升效果。

减少幻觉的实用技巧

  1. Prompt里强调“只基于上下文回答,如果没有相关信息就说不知道”;
  2. 要求AI在回答中标注信息来源;
  3. 重要信息交叉验证,关键事实人工核查。

七、怎么评估RAG好不好

RAG不是搭完就完事了,得量化评估效果,核心看四个维度:

  1. 检索准不准:检索出来的文档到底相不相关,用Precision@K、MRR等指标;
  2. 上下文够不够:有没有覆盖回答问题需要的所有信息;
  3. 回答忠不忠实:答案是不是都基于上下文,有没有瞎编,叫“忠实度”;
  4. 答案有没有用:和问题相不相关,完不完整。

不想自己做评估,可以用现成的框架比如Ragas,能自动化跑这些指标。

写在最后

RAG不是什么万能的黑科技,它的核心逻辑非常朴素:给AI配上参考书,让它先查再答
它适合私有知识库、产品手册、内部文档、最新资讯这些场景,能有效解决知识截止、幻觉、数据私有这三大痛点。

从朴素的向量检索,到混合检索、重排序,再到GraphRAG、Agentic RAG,RAG技术一直在进化,但核心目标从来没变:让大模型的回答,更准、更真、更贴合你的业务。

不用追求一步到位做最复杂的,先从基础版跑通,再根据需求逐步升级,才是最高效的落地方式。

标签:

0 条笔记