在生成式 AI 落地应用中,RAG(Retrieval-Augmented Generation)已成为解决大模型"幻觉"、知识滞后及缺乏私域数据支撑的核心方案。
本文将通过"标准工程版"视角,为你拆解 RAG 从接收用户提问到输出最终答案的全链路逻辑。
一、 RAG 的核心灵魂:一句话总纲
RAG 的通用逻辑可以概括为:
将用户问题转化为"可检索的问题",从外部知识中检索最相关的内容,再把这些内容作为上下文约束大模型生成答案。
本质: 让"不确定"的模型,运行在"确定"的知识之上。
二、 标准 RAG 七步法:工程全链路拆解
从用户点击发送到答案生成,标准 RAG 流程遵循以下七个关键步骤:
Step 1:用户提问 (User Query)
原始提问通常是口语化、信息不完整或带有歧义的。注意:这一步的问题通常不可直接用于高质量检索。
Step 2:问题理解与改写 (Query Processing)
- 目标: 让问题"更适合检索"。
- 典型操作: 意图识别、关键词补全、技术化改写、多子问题拆分(Multi-Query)。
Step 3:问题向量化 (Query Embedding)
- 将改写后的 Query 映射到语义空间。
- 工程要求: 必须与文档向量化使用同一 Embedding 模型。
Step 4:检索相关知识 (Retrieval)
- 从向量数据库中寻找相关 Chunk。
- 模式: 向量检索(Top-K)、关键词检索(BM25)或混合检索(Hybrid Search)。
Step 5:结果整理 (去重 + 重排 Re-Rank)
- 重排(Re-Rank): 引入交叉评分模型,计算 Chunk 与 Query 的真实相关性,过滤噪声,留下"信息密度最高"的内容。
Step 6:上下文构造 (Context Construction)
- 将检索到的片段、系统指令(System Prompt)与原始问题拼接。
- 约束: 强制要求模型仅基于提供的资料回答。
Step 7:大模型生成 (Generation)
- 模型在受控条件下完成生成。这不是"自由发挥",而是"基于证据的归纳"。
补充步骤(Step 8):答案后处理
包括添加引用来源(Citations)、风险内容过滤及格式化输出(JSON/Markdown)。
三、 深度对比:为什么我们需要 RAG?
| 维度 | 直接问大模型 (Pure LLM) | RAG 模式 |
|---|---|---|
| 知识来源 | 模型预训练参数 | 外部实时/私域知识库 |
| 知识可更新性 | 差(需重新微调) | 强(实时更新索引) |
| 幻觉风险 | 高 | 低(基于证据) |
| 可追溯性 | 无(无法提供出处) | 有(可标注引用来源) |
| 工程可控性 | 弱(黑盒) | 强(各环节可调优) |
四、 总结
1. 流程公式
Answer=LLM(Instructions+Context(Retrieve(Embed(Rewrite(Query)))))Answer = LLM(Instructions + Context(Retrieve(Embed(Rewrite(Query)))))Answer=LLM(Instructions+Context(Retrieve(Embed(Rewrite(Query)))))
2. 核心思想
RAG 的核心思想不是"让模型更聪明",而是通过检索机制,把模型放进一个确定、可验证的知识上下文中,让它在受控条件下完成任务。