LLM 的知识停在训练截止日,也不了解你的公司内部文档。RAG(Retrieval-Augmented Generation)解决的就是这个问题:先搜相关文档,再让模型基于文档回答

为什么需要 RAG

用户: "我们公司的年假政策是什么?"

没有 RAG → 模型瞎编一个听起来合理的政策
有 RAG   → 检索员工手册 → 基于真实文档回答 → 附引用来源

三个典型场景:

  • 企业知识库问答:制度、流程、产品文档
  • 客服机器人:基于 FAQ 和产品手册
  • 代码助手:基于你的代码仓库(Cursor 就在干这个)

完整流程(四步)

         离线阶段(提前做)                    在线阶段(用户提问时)
┌─────────────────────────┐          ┌─────────────────────────┐
│  1. 文档分块 (Chunking)  │          │  4. 用户提问             │
│  2. 向量化 (Embedding)   │          │     ↓                   │
│  3. 存入向量数据库        │          │  5. 问题也向量化         │
└─────────────────────────┘          │     ↓                   │
                                     │  6. 检索最相似的文档块    │
                                     │     ↓                   │
                                     │  7. 文档 + 问题 → LLM   │
                                     │     ↓                   │
                                     │  8. 生成回答(带引用)    │
                                     └─────────────────────────┘

第一步:分块(Chunking)

把长文档切成小段(通常 200~1000 Token):

员工手册.pdf (50 页)
  → Chunk 1: "年假规定:入职满一年享有 5 天年假……"
  → Chunk 2: "病假规定:每月最多 1 天,需提交……"
  → Chunk 3: "报销流程:填写报销单,附上发票……"

分块策略影响检索质量——切太碎丢上下文,切太大检索不精准。

第二步:向量化(Embedding)

每个 Chunk 通过一个 Embedding 模型转成一串数字(向量):

"年假 5 天" → [0.12, -0.34, 0.56, ..., 0.78]  (1536 维)

语义相近的文本,向量距离就近。这是 RAG 能「理解意思」而非「匹配关键词」的关键。

第三步:检索

用户问「年假几天」,问题也转成向量,在数据库里找 距离最近的几个 Chunk

问题向量 → 最近邻搜索 → Top 3 Chunks:
  1. "年假规定:入职满一年享有 5 天年假" (相似度 0.92)
  2. "福利概述:包括年假、病假、婚假……" (相似度 0.78)
  3. "请假流程:提前在系统提交申请……"   (相似度 0.65)

第四步:生成

把检索到的 Chunk 和问题一起塞给 LLM:

基于以下资料回答问题。如果资料中没有相关信息,请说「我不确定」。

资料:
[Chunk 1 内容]
[Chunk 2 内容]

问题:年假有几天?

RAG 的常见翻车点

问题原因解法
搜不到相关内容分块不合理 / Embedding 模型不匹配调整 chunk size,换 Embedding 模型
搜到了但排名低纯向量检索对精确匹配弱混合检索(向量 + 关键词)
回答还是不准检索到的 chunk 不够 / 有干扰Rerank 重排序,提高 Top-K 质量
文档更新了但答案没变向量库没更新建立文档变更 → 重新索引的流程

和「长上下文」的关系

「模型上下文窗口越来越大了,还要 RAG 吗?」

要。原因:

  • 成本:塞 100 页文档进上下文,Token 费用是 RAG 检索的几十倍
  • 精度:实验表明,RAG 精选相关段落 > 把整本文档塞进去
  • 时效性:RAG 可以实时更新索引,不需要重新训练模型

小结

RAG = 检索 + 生成。先找到相关文档,再让 LLM 基于文档回答。它是目前 让 AI 使用私有数据 最主流、最实用的方案。

下一篇:当 AI 不只会「说」,还会「做」——Agent 入门。