开头:从一个经典问题说起
你问 ChatGPT:
“请问某公司2023年的招股说明书中提到的核心竞争力有哪些?”
模型瞪你一眼(当然,它没有眼),然后回答:
“对不起,我无法获取某公司招股说明书的具体内容。”
这时候你可能心想:你不是号称懂万物的大语言模型吗?怎么连个公开文件都找不到?
这不是模型不够聪明,而是它天生“短命”+“健忘”。
-
它“短命”:训练只到某个时间点(比如 2023 年底);
-
它“健忘”:训练完了就把互联网忘光了,记不住实时网页和用户特定的内部数据。
于是,Retrieval-Augmented Generation(RAG) 出场了。
它像是给大模型配了一副“眼镜”和“备忘录”,不再只是靠记忆胡说八道,而是学会**“先查资料,再作答”**。
什么是 RAG?一句话就够了
RAG 就是让大模型在回答问题前,先从一个外部知识库中检索相关信息,然后结合检索结果生成答案。
像不像你考前开小抄?
但别急,我们慢慢拆解背后的魔法。
🏛️ 大模型天生的两个问题
问题 1:知识截止时间 = 永远落后一步
训练一次 GPT-4 要数千万美元。它一旦训练完成,就**“冻住了时间”**,没法实时吸收新知识。
比如你问它 2025 年的事,它可能还停留在 2023 年。
现实永远在更新,而大模型的知识却在原地踏步。
问题 2:上下文有限,记不住长文档
GPT-4、Claude、Gemini 等模型都有“上下文长度”(token limit),比如 8K、32K、甚至 1M tokens。
听起来很大,其实你一丢个长合同、上百页的产品手册进去,模型还是得**“截断”**。
就像让人复习整本书,却只给读第一页和最后一页,答案能对就怪了。
🎯 RAG 的目标:打破训练闭环、扩展上下文、注入外部记忆
简而言之,RAG 是对大模型认知能力的“外挂”:
-
🕸️ 链接到最新、最全的知识库(如企业文档、网页、数据库);
-
🧠 动态构建答案依据,而非靠模型“硬背”;
-
🔁 持续更新,无需重新训练模型。
换句话说,RAG 让模型变得有记忆、有搜索能力、有知识基础,而不是个“没脑筋的小可爱”。
🧩 RAG 的架构详解:两步走,检索+生成
RAG 不是一个模型,而是一种结构策略。
它基本上包含两个阶段:
Step 1:Retrieval(检索)
“我先查查资料库里有没有你要的信息。”
-
将用户的问题(query)进行语义编码;
-
在预构建的向量知识库中检索最相关的文本块;
-
返回若干段上下文文本,交给生成器。
📌 知识库来源可以是:
-
公司内部文档(PDF、Word、合同)
-
产品手册、API 文档
-
法规政策、论文、维基百科
-
实时网页内容(通过爬虫或插件)
Step 2:Generation(生成)
“好了,我读完小抄了,开始回答你的问题。”
将原始问题 + 检索到的文本段一起输入到 LLM(如 GPT-4、Claude、Mistral),进行答案生成。
这就好比:
-
你问:“请总结这份合同的关键条款”;
-
模型先把合同内容读了个遍;
-
然后“考生作答”,文思泉涌。
🔄 可选:Re-Ranking / Feedback Loop
更进阶的做法是加入重排序模块或反馈机制:
-
检索结果排序更精准;
-
用户不满意答案?模型自我反思、回溯检索路径,重新生成。
🧱 知识库构建:让模型查得动“家里账本”
说白了,RAG 的能力上限,很大程度取决于知识库的构建质量。
1. 向量化是关键
文本块要转成向量才能支持语义搜索。
-
可选嵌入模型如:OpenAI Ada-002、BGE、Cohere、FastText、DeepSeek-Embed;
-
使用方式:将文本分段(Chunking),生成向量,存入向量数据库(如 FAISS、Weaviate、Milvus、Qdrant)。
2. Chunking 要恰到好处
分段太小:上下文丢失,像断章取义;
分段太大:向量难以区分,检索不准。
最佳实践:
-
长度控制在 300~500 tokens;
-
可以加 overlap(滑窗)提升语义连贯性;
-
保留原始元数据(如文件名、段落编号、来源 URL)。
🧠 RAG 与纯生成式模型的对比:图一目了然
特性 | 纯 LLM | RAG 模型 |
---|---|---|
数据新鲜度 | 固定(训练时间点) | 实时(可动态更新) |
上下文长度 | 有限 | 拓展至外部资料 |
回答准确性 | 容易幻觉 | 可验证、来源可追溯 |
数据私密性 | 不支持私有知识 | 支持公司内文档等私有知识注入 |
训练成本 | 高 | 低(无需重新训练) |
🏭 RAG 的典型使用场景
1. 企业知识问答
“请问我们新员工手册中写到的请假制度是什么?”
传统 LLM:啥都不知道;
RAG:马上从内网找手册内容,句句有出处。
2. 合同审核 / 法律条款问答
“合同中有没有限制性条款?违约责任是怎样的?”
RAG 可帮你快速从几十页合同中定位相关段落,辅助法律团队答疑。
3. 医疗问答 / 医学文献检索
结合 UpToDate、PubMed 等数据库,让医生助手更靠谱,而不是“AI 乱开药”。
4. AI 搜索引擎 / 网页摘要
RAG 模型可用于构建“增强型搜索引擎”:
-
不返回链接,而是**“有引用来源的回答”**;
-
提升搜索结果的相关性和可读性;
-
像 Perplexity.ai、You.com、Bing Copilot 就是如此。
5. 编程助手 / API 查询
程序员问:“Flask 的 request.form 和 request.args 有啥区别?”
传统模型可能回答模棱两可;
RAG 模型能从 Flask 官方文档中检索确切描述,确保技术答复更准确。
🧠 一点延伸:RAG 的挑战与进阶玩法
📉 挑战 1:检索错了,再聪明也白搭
Garbage In, Garbage Out。
如果向量库质量不高,模型检索到无关内容,生成再好也是南辕北辙。
🧪 挑战 2:评估难
怎么判断一个 RAG 系统“回答得好不好”?
-
BLEU?不合适。
-
ROUGE?也一般。
更常见做法是人工标注 + GPT 模型辅助打分。
🌟 进阶玩法:Hybrid RAG、Multi-hop RAG、Tool-augmented RAG
-
Hybrid RAG:稠密 + 稀疏检索并用(embedding + BM25)
-
Multi-hop RAG:像链式推理一样连续检索多步逻辑链
-
Tool-augmented RAG:配合搜索引擎、SQL 工具,动态检索实时数据或结构化表格
✍️ 总结:RAG,不是“查资料的临时工”,而是 LLM 的“记忆扩展槽”
用大白话说:
-
大模型像个聪明但不接地气的学生;
-
RAG 就像是他背后那堆**“教辅资料 + 答题卡”**;
-
有了它,AI 不再胡说八道,而是查阅真实材料,逐步构建答案。
未来几乎所有 serious 的企业级 AI 应用(法务、金融、政务、工业)都会用到 RAG 或其变种。
你今天看懂它,未来构建 AI 系统就不会再“裸奔”。
📚 附:RAG 入门工具推荐
-
向量库:FAISS(轻)、Milvus(工业级)、Qdrant(云原生)
-
Embedding 模型:OpenAI Ada、BGE、Cohere Embed、DeepSeek-Embed
-
框架推荐:
-
LangChain(最流行);
-
LlamaIndex(结构清晰);
-
Haystack(企业级);
-
DeepSeek Agent(国产生态)
-
🚀 最后,打个广告:
如果你喜欢这篇文章,欢迎点个赞+关注~
我正在写一套《AI 开发者工具全景图》系列,包括 RAG、Agent、MCP、DeepSeek 等落地技术,欢迎来掘金/知乎/公众号找我交流!