大模型底层逻辑(四):RAG 检索增强生成

4 阅读2分钟

大模型有一个致命的弱点:知识滞后。它的知识停留在训练结束的那一天(训练剪裁期)。如果你问它“今天早上的天气预报”或者“你们公司的最新报销政策”,它只会一本正经地胡说八道(幻觉)。

RAG (Retrieval-Augmented Generation) 的出现,让 AI 从“背书比赛”转向了“开卷考试”。

1. RAG 的三部曲:搜、拼、读

RAG 的核心逻辑非常简单:在回答之前,先去翻书。

RAG 运行流程图

flowchart TD
    User((用户提问)) --> Search[1. 检索: 从向量库找相关文档]
    DB[(知识库/PDF/Wiki)] --- Search
    
    Search --> Augment[2. 增强: 将文档拼入 Prompt]
    
    subgraph Prompt_Box ["最终发送给 LLM 的内容"]
        direction TB
        P1["你是一个助手,请根据以下资料回答"]
        P2["参考资料: 搜索到的文档片段"]
        P3["用户问题: XXXXX"]
    end
    
    Augment --> Prompt_Box
    Prompt_Box --> LLM[3. 生成: LLM 阅读并回答]
    LLM --> Answer((最终答案))

    style Search fill:#f96,stroke:#333
    style Prompt_Box fill:#fff4dd,stroke:#d4a017

2. 核心技术:向量检索 (Vector Search)

为什么 RAG 不用传统的“关键词搜索”? 因为关键词搜不到语义

  • 关键词搜索: 搜“单车”,搜不到“自行车”。
  • 向量检索: 在第一篇我们学过 Embedding。系统把用户的问题变成坐标,去数据库里找“距离最近”的文档片段。即使字面上没有重复,只要意思相近,就能被抓取出来。

3. LLM 在 RAG 中扮演什么角色?

在 RAG 架构中,LLM 的定位从“百科全书”变成了高级阅读理解官

它的任务不再是搜寻记忆,而是:

  1. 判断: 搜索出来的这几段资料里,哪段是有用的?
  2. 整合: 把碎片化的信息揉成一段通顺的人话。
  3. 诚实: 如果资料里确实没提到,要学会说“对不起,根据已知资料我无法回答”。

4. RAG 与 MCP 的联动

我们不再手动把文件喂给 RAG,而是通过 MCP (Model Context Protocol)

  • 以前: 你要把 PDF 上传到某个平台。
  • 现在: 你只要挂载一个 MCP 数据服务器(比如连接你的 GitHub 或 Notion),当用户提问时,系统会自动通过 MCP 协议去这些实时更新的源头进行 RAG 检索

加载原理: RAG 其实就是一种动态上下文加载。它确保了模型在推理的瞬间,它的上下文窗口(Context Window)里装载的是此时此刻最正确的知识。


5. 总结:第四课的心得记录

  • 逻辑比知识更贵: 我们利用 LLM 的逻辑推理能力,利用 RAG 提供实时知识。
  • 减少幻觉: 有据可查是解决 AI 乱说话的良药。
  • Embedding 是桥梁: 只有把文档变成向量,RAG 才能真正“懂”你想查什么。