一文搞懂RAG全流程——两阶段式和组件式理解

张开发
2026/4/15 3:27:50 15 分钟阅读

分享文章

一文搞懂RAG全流程——两阶段式和组件式理解
核心总览RAG 不是复杂技术就是给大模型配一个「可随时更新的专属知识库」——先从库里精准找资料再让模型结合资料答题彻底解决大模型“瞎编、知识过时、用不了私有文档”的痛点。比起需要重训模型的微调RAG 成本低、更新快是大模型落地比如企业知识库、智能问答的首选核心就一句话先找对再答好。一、RAG 全流程拆解离线构建在线查询RAG 完整流程分为两大阶段离线构建负责“存好素材”在线查询负责“答好问题”环环相扣每一步都决定最终效果。 第一阶段离线构建数据入库——把“原始文档”变成“能快速找到的素材”✅ 核心目标不管是 PDF、网页、表格都统一变成“机器能看懂、能快速匹配”的检索素材这一步直接决定后续找得准不准检索的下限。1. 文档加载对应组件读取器 Reader✅ 核心操作不是简单打开文件而是用工具比如 LlamaIndex 的 SimpleDirectoryReader把各种格式的文档都变成纯文本过滤 PDF 里的冗余图片、表格。✅ 关键要点顺便记下「元数据」——文档来源、页码、创建时间、类别比如“技术文档”后续能追溯答案来源还能精准过滤不想看的内容。✅ 通俗理解像“文件转换器”不管什么格式PDF、Word、网页等都统一变成可处理的纯文本素材。✅ 常用工具LlamaIndex SimpleDirectoryReader、LangChain FileLoader2. 文本分块对应组件解析器 Parser✅ 核心逻辑不只是把长文档切短核心是「不拆碎语义、不冗余」。✅ 原则按句子、段落切比如一个技术知识点不能拆到两个片段里✅ 参数通用场景 512 token 最合适片段间留 5%-10% 重叠避免意思断片✅ 技巧复杂文档比如技术手册先按章节切大块再切小块精准又完整。✅ 通俗理解像“切割机”把长文本切成语义完整的小片段方便后续检索。✅ 常用工具LlamaIndex SentenceSplitter、HierarchicalNodeParser3. 向量化✅ 核心操作用专门的 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 FileLoader2. 提取器Extractor——RAG 的“精华筛选员”✅ 核心职责从纯文本中筛有用信息过滤废话保留关键元数据✅ 核心能力提取核心语义、知识点整理元数据来源、页码等方便后续溯源、过滤✅ 通俗理解像“筛子”筛出有用信息给有用信息“贴标签”元数据3. 解析器Parser——RAG 的“分块工程师”✅ 核心职责把筛选后的文本切成大小合适的文本块Chunk影响后续检索效果✅ 核心能力按句子/段落分块控制块大小、重叠度复杂文档可分层分块✅ 通俗理解像“切割机”把长文本切成语义完整的小片段方便后续检索✅ 常用工具LlamaIndex SentenceSplitter、HierarchicalNodeParser4. 检索前处理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 不用复杂训练只要把“离线存素材”做精细“在线找素材”做精准就能搭建出稳定、靠谱的大模型问答系统轻松解决大模型落地的核心痛点。

更多文章