检索增强生成(RAG)
只要你用大语言模型(LLM)做过一点东西,大概都碰到过一个让人火大的事实:它们会一本正经地撒谎。
你问最近发生的事、一个很偏的技术问题、或公司内部政策,模型会交出一段写得漂亮、听起来极像那么回事、但完全是编出来的回答。这就是所谓的“幻觉”。它会发生,是因为基础模型再聪明,也有结构性的局限。
这篇文章会拆开讲:基础模型为什么会失败,以及 检索增强生成(RAG) 如何成为那个真正能让你信任 AI 应用的修复方案。
问题:基础模型差在哪
开箱即用的基础模型有几处结构性盲区。下面快速看它们为什么会失败,以及 RAG 如何对症下药:
| 基础模型的局限 | RAG 如何解决 |
|---|---|
| 知识截止日期: 训练结束后模型就被冻住了。它们不知道昨天发生了什么。 | 实时数据访问: 回答前先从活的数据库、新闻或当前库存里取信息。 |
| 没有私有数据: 它们不知道你们公司的内部 wiki、邮件或商业机密(你也不希望它们知道)。 | 安全的私有上下文: RAG 只检索提示真正需要的那几份内部文档。 |
| 领域知识浅: 什么都懂一点,但碰到高度专业、稀缺或小众的行业数据就会吃力。 | 权威 grounding: 你把专家级、领域专用的文档交给模型去读。 |
| 零可追溯性: 它们无法引用出处,用户只能盲信输出。 | 可核验的引用: RAG 可以直接指向生成答案所用的文档、段落或 URL。 |
| 概率性猜测: 模型本质是在预测下一个词的数学引擎。提示一模糊,猜测就走偏。 | 上下文护栏: RAG 迫使模型严格基于提供的事实上下文来预测。 |
RAG 实际怎么跑:四个核心步骤
RAG 不是魔法。它是一条高度结构化的流水线,把 LLM 从“猜答案的人”变成“做研究的人”。底层是这样工作的:
1. 摄入(准备数据)
AI 搜索你的数据之前,你得先把数据整理好。把 PDF、wiki、数据库拆成更小的 chunk。然后用 embedding 模型 把这些文本块转成捕捉真实语义的数值向量。最后把向量存进专用的 向量数据库(例如 Pinecone)。
2. 检索(找到对的信息)
用户一提问,系统就把问题转成向量,去向量数据库里搜。用 混合检索(语义相似度加上精确关键词匹配)取出最相关的 chunk,再排序,确保最好的信息浮到最上面。
3. 增强(拼出最终提示)
魔法发生在这里。系统会做一个总提示,把用户原问题和第 2 步检索到的事实拼在一起。 例如:“请根据以下[上下文文档]回答用户的[问题]。如果答案不在文档里,就说你不知道。”
4. 生成(给出答案)
LLM 收到这份增强后的提示。它不再依赖过时或过于笼统的内部记忆,而是读你刚提供的上下文,生成精确、准确、高度相关的回答。
未来:Agentic RAG
传统 RAG 相对线性(Query Search Answer)。但生态正在迅速演变成 Agentic RAG。
不再是一次搜索就完事,AI Agent 现在会编排整条 RAG 流水线。面对复杂问题时,Agent 可以:
- 拆解查询,决定去搜 哪些 数据库或工具。
- 评估检索到的信息是否真的回答了问题。
- 如果数据不够,Agent 会改写查询再搜一遍,最后才生成答案。
结论
检索增强生成已经从行业buzzword,变成了一种架构上的刚需。无论你在做简单的客服 chatbot,还是复杂的 Agentic 工作流,RAG 都是让 AI 准确、可核验、并真正接上你独特业务数据的关键。