核心总览:RAG 不是复杂技术,就是给大模型配一个「可随时更新的专属知识库」——先从库里精准找资料,再让模型结合资料答题,彻底解决大模型“瞎编、知识过时、用不了私有文档”的痛点。比起需要重训模型的微调,RAG 成本低、更新快,是大模型落地(比如企业知识库、智能问答)的首选,核心就一句话:先找对,再答好。

一、RAG 全流程拆解(离线构建+在线查询)

RAG 完整流程分为两大阶段,离线构建负责“存好素材”,在线查询负责“答好问题”,环环相扣,每一步都决定最终效果。

📥 第一阶段:离线构建(数据入库)——把“原始文档”变成“能快速找到的素材”

✅ 核心目标:不管是 PDF、网页、表格,都统一变成“机器能看懂、能快速匹配”的检索素材,这一步直接决定后续找得准不准(检索的下限)。

1. 文档加载(对应组件:读取器 Reader)

✅ 核心操作:不是简单打开文件,而是用工具(比如 LlamaIndex 的 SimpleDirectoryReader),把各种格式的文档,都变成纯文本(过滤 PDF 里的冗余图片、表格)。

✅ 关键要点:顺便记下「元数据」——文档来源、页码、创建时间、类别(比如“技术文档”),后续能追溯答案来源,还能精准过滤不想看的内容。

✅ 通俗理解:像“文件转换器”,不管什么格式(PDF、Word、网页等),都统一变成可处理的纯文本素材。

✅ 常用工具:LlamaIndex SimpleDirectoryReader、LangChain FileLoader

2. 文本分块(对应组件:解析器 Parser)

✅ 核心逻辑:不只是把长文档切短,核心是「不拆碎语义、不冗余」。

✅ 原则:按句子、段落切,比如一个技术知识点,不能拆到两个片段里;

✅ 参数:通用场景 512 token 最合适,片段间留 5%-10% 重叠(避免意思断片);

✅ 技巧:复杂文档(比如技术手册)先按章节切大块,再切小块,精准又完整。

✅ 通俗理解:像“切割机”,把长文本切成语义完整的小片段,方便后续检索。

✅ 常用工具:LlamaIndex SentenceSplitter、HierarchicalNodeParser

3. 向量化

✅ 核心操作:用专门的 Embedding 模型(比如 BGE、Sentence-BERT),把每个文本块,变成一串高维数字(向量)。

✅ 核心逻辑:意思相近的文字,向量距离越近(比如“怎么调分块大小”和“分块参数怎么设”),这是后续能精准找到相关内容的核心;

✅ 避坑:文本块和用户查询,必须用同一个 Embedding 模型,不然会匹配错位。

4. 索引构建

✅ 核心操作:把向量、原文、元数据,存到索引里,再对接存储后端。

✅ 索引类型:主流用「向量索引」(适配绝大多数场景);

✅ 存储:测试用内存就行,生产环境必须用专业向量数据库(Milvus、Chroma 等),支持海量文档、快速检索;

✅ 作用:让后续查资料时,能毫秒级找到最相关的片段,不用逐字遍历。

💬 第二阶段:在线查询(问答生成)——把“用户问题”变成“靠谱回答”

✅ 核心目标:用户问问题,快速找到相关素材,让模型只靠素材答题,不瞎编、不跑题,这一步决定回答的质量(生成的上限)。

1. 问题向量化

✅ 核心操作:用和离线阶段一样的 Embedding 模型,把用户的问题(比如“分块重叠度设多少合适”),也变成向量。

✅ 关键要点:确保和之前存的素材“在同一个频道”,不会找错方向。

2. 向量检索(对应组件:检索器 Retriever)

✅ 核心操作:计算问题向量和所有素材向量的相似度(常用余弦相似度),召回 3-8 个最相关的片段(太少信息不够,太多冗余)。

✅ 进阶优化:可以按元数据过滤(比如只查技术文档)、用重排模型再筛选一遍,让找的素材更精准。

✅ 通俗理解:像“智能搜索引擎”,快速从素材库找初步贴合的内容,打基础。

✅ 核心依赖:Embedding模型(语义匹配)、向量索引/数据库(检索速度)

3. 重排(对应组件:重排器 Reranker)

✅ 核心职责:对召回的文本块二次排序,剔除无关、冗余内容,提升检索精度。

✅ 核心能力:按语义匹配度重排,解决向量检索的偏差问题。

✅ 通俗理解:像“二次筛选器”,把检索器召回的内容再挑一遍,留最有用的。

✅ 常用工具:Cross-BERT、Sentence-BERT 重排模型

4. 上下文构造(对应组件:检索后处理 Post-Retrieval Processing)

✅ 核心操作:把找到的素材、用户的问题,加上 Prompt 模板(比如“只靠这些素材答题,不能瞎编,没相关信息就说没有”),拼接成完整的指令。

✅ 关键要点:给模型“划好答题边界”,避免模型放飞自我。

✅ 通俗理解:像“整理员”,把筛选后的素材,整理成生成器能直接用的参考资料。

5. LLM 生成回答(对应组件:生成器 Generator)

✅ 核心操作:把拼接好的指令,输入大模型(GPT、Llama 等),让模型基于素材答题,还能标注答案来自哪份文档、哪个页码。

✅ 避坑:一定要约束模型,不能脱离素材瞎编,没相关信息就明确说“无相关答案”。

✅ 通俗理解:像“专业答题者”,只靠精准素材答题,说清答案来源,靠谱不跑题。

✅ 核心依赖:大模型(GPT、Llama等)、Prompt模板(约束答题边界)

二、RAG 核心组件

RAG 全流程靠多组件协同闭环,从“读文档”到“答问题”,除了基础核心组件,检索前/后处理、重排是提升效果的关键补充,每个组件各管一摊、环环相扣,用通俗语言快速吃透核心!

📋 核心组件详解(按流程排序)

1. 读取器(Reader)——RAG 的“入口管家”

✅ 核心职责:RAG 第一步,读取各类原始文档,是数据入口

✅ 核心能力:兼容 PDF、Word、网页等所有格式,转成纯文本,过滤无效垃圾(如PDF冗余图片)

✅ 通俗理解:像“文件转换器”,不管什么格式,都统一变成可处理的纯文本素材

✅ 常用工具:LlamaIndex SimpleDirectoryReader、LangChain FileLoader

2. 提取器(Extractor)——RAG 的“精华筛选员”

✅ 核心职责:从纯文本中筛有用信息,过滤废话,保留关键元数据

✅ 核心能力:提取核心语义、知识点,整理元数据(来源、页码等),方便后续溯源、过滤

✅ 通俗理解:像“筛子”,筛出有用信息,给有用信息“贴标签”(元数据)

3. 解析器(Parser)——RAG 的“分块工程师”

✅ 核心职责:把筛选后的文本,切成大小合适的文本块(Chunk),影响后续检索效果

✅ 核心能力:按句子/段落分块,控制块大小、重叠度,复杂文档可分层分块

✅ 通俗理解:像“切割机”,把长文本切成语义完整的小片段,方便后续检索

✅ 常用工具:LlamaIndex SentenceSplitter、HierarchicalNodeParser

4. 检索前处理(Pre-Retrieval Processing)——RAG 的“查询优化师”

✅ 核心职责:优化用户查询,减少检索偏差,帮检索器找得更准

✅ 核心能力:纠错、提取关键词、扩展同义词、重写模糊查询(如“怎么调参数”→“RAG分块大小怎么设”)

✅ 通俗理解:像“翻译官”,把用户模糊的查询,变成机器能精准理解的“标准指令”

5. 检索器(Retriever)——RAG 的“精准导航员”

✅ 核心职责:接收优化后的查询,初步召回相关文本块,是解决幻觉的核心

✅ 核心能力:查询向量化、相似度比对,召回top-k相关片段,支持元数据过滤

✅ 通俗理解:像“智能搜索引擎”,快速从素材库找初步贴合的内容,打基础

✅ 核心依赖:Embedding模型(语义匹配)、向量索引/数据库(检索速度)

6. 重排(Reranker)——RAG 的“精准筛选员”

✅ 核心职责:对召回的文本块二次排序,剔除无关、冗余内容,提升检索精度

✅ 核心能力:按语义匹配度重排,解决向量检索的偏差问题

✅ 通俗理解:像“二次筛选器”,把检索器召回的内容再挑一遍,留最有用的

✅ 常用工具:Cross-BERT、Sentence-BERT 重排模型

7. 检索后处理(Post-Retrieval Processing)——RAG 的“上下文整理员”

✅ 核心职责:整理重排后的素材,给生成器提供干净、连贯的上下文

✅ 核心能力:去重复、补语义衔接、按相关性排序,标注素材来源

✅ 通俗理解:像“整理员”,把筛选后的素材,整理成生成器能直接用的参考资料

8. 生成器(Generator)——RAG 的“最终发言人”

✅ 核心职责:基于整理后的素材,生成无幻觉、可追溯的最终回答,流程最后一步

✅ 核心能力:按Prompt约束答题,支持来源标注,不脱离素材瞎编

✅ 通俗理解:像“专业答题者”,只靠精准素材答题,说清答案来源,靠谱不跑题

✅ 核心依赖:大模型(GPT、Llama等)、Prompt模板(约束答题边界)

组件协同闭环(一眼看懂): 读取器(读文档)→ 提取器(筛精华)→ 解析器(切小块)→ 检索前处理(优查询)→ 检索器(初召回)→ 重排(精筛选)→ 检索后处理(整素材)→ 生成器(答问题) 基础组件保运转,补充组件提效果,共同实现“精准检索、可靠生成”!

三、RAG 必懂关键点(避坑+优化)

🔍 核心逻辑

检索决定下限,生成决定上限——找不对素材,再强的模型也会瞎编;找对了,才能答得好。

🔧 优化重点

分块策略(最影响效果)、Embedding 模型(抓准语义)、检索参数(top-k、重排)、Prompt 模板(约束幻觉)。

⚠️ 落地注意

生产环境要支持文档动态更新(新增/删除文档同步更索引),还要优化检索速度,避免卡顿。

📌 总结

RAG 不用复杂训练,只要把“离线存素材”做精细,“在线找素材”做精准,就能搭建出稳定、靠谱的大模型问答系统,轻松解决大模型落地的核心痛点。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐