检索增强生成(Retrieval-Augmented Generation, RAG)是解决大模型知识局限性的重要技术方案。

为什么需要 RAG?

大语言模型存在两个核心局限:

  • 知识截止:训练数据有时间边界,无法获取最新信息
  • 幻觉问题:模型可能生成看似合理但实际错误的内容

RAG 通过在生成前检索相关文档,将外部知识注入上下文,有效缓解上述问题。

RAG 基本流程

用户查询 → 向量化 → 检索 Top-K 文档 → 拼接 Prompt → LLM 生成回答

1. 文档处理与索引

将知识库文档切分为合适大小的 chunk(通常 256-512 tokens),使用 Embedding 模型向量化后存入向量数据库。

2. 检索策略

  • 密集检索:基于向量相似度(如 cosine similarity)
  • 稀疏检索:基于 BM25 等传统 IR 方法
  • 混合检索:结合两者优势,通常效果更好

3. 生成增强

将检索到的文档片段与用户问题一起构造 Prompt,引导模型基于给定上下文回答。

工程优化要点

优化方向具体措施
分块策略语义分块、重叠窗口、层次化索引
检索质量重排序(Reranker)、查询改写
上下文管理动态截断、相关性过滤

常用工具栈

  • Embedding:OpenAI text-embedding-3、BGE、M3E
  • 向量数据库:Milvus、Qdrant、Chroma、pgvector
  • 框架:LangChain、LlamaIndex、Haystack

RAG 是当前企业级 LLM 应用最主流的架构模式,值得深入实践。