返回笔记
LLM

RAG 技术深度解析:检索增强生成的完整流程

RAG 向量数据库 Embedding 检索增强生成

RAG 是目前最热门的大模型应用范式之一。它通过给模型"外挂知识库"的方式,让大模型能够回答之前没见过的问题。

为什么需要 RAG

大模型有两大问题无法靠训练解决:

  1. 知识截止日期:模型训练完后,不知道之后发生的事情
  2. 幻觉问题:对于不懂的问题,模型会编造答案

RAG 的思路是:先检索相关文档,再把文档和问题一起给模型,让模型"照着材料回答"。

RAG 的五个核心步骤

1. 文档加载与切分

把 PDF、网页、数据库里的内容加载进来,切成合适大小的 chunk。chunk 太大检索精度差,太小语义不完整。一般 500-1000 token 比较合适,且 chunk 之间保持一点重叠以防止切断关键信息。

2. 向量化

用 Embedding 模型(如 text-embedding-3-small)把每个 chunk 转成向量。语义相近的文本向量距离也近。

3. 向量存储

把向量存入向量数据库(如 Pinecone、Weaviate、Qdrant、Chroma、Milvus)。向量数据库支持高效的近似最近邻搜索。

4. 检索

用户提问后,把问题也转成向量,在向量库中搜索最相似的 top-K 个 chunk。这一步决定了 RAG 的召回质量

5. 生成

把检索到的 chunk 作为上下文,和用户问题一起拼接成 prompt,发给大模型生成回答。

常见优化技巧

  • Hybrid Search:向量检索 + 关键词检索(BM25),两者互补
  • Re-ranking:初筛后用小模型重新精排,提升精度
  • Query Rewriting:先把用户问题改写得更精确再检索
  • Self-RAG:让模型自己判断检索结果是否相关,不相关就重新检索