背景

大语言模型在训练阶段通常基于大规模语料(如 Common Crawl、Wikipedia、Books、Code等)进行离线学习,因此它们的知识存在以下问题:

  • 静态性:一旦模型训练完毕,知识无法动态更新。
  • 封闭性:模型只能生成其“知道”的内容,对未见信息无法准确回答。
  • 幻觉性(Hallucination):即使模型生成看似合理的内容,也可能完全不符合真实事实。

为此,RAG(Retrieval-Augmented Generation,检索增强生成)框架被提出,用于将外部知识库引入到生成模型推理流程中,通过“检索 → 生成”的两阶段架构,让模型“读过资料再作答”。

RAG 的优势

  • ✅ 知识实时更新:只需更新知识库,无需重新训练大模型。
  • ✅ 降低幻觉风险:模型有“证据”可依,减少无中生有。
  • ✅ 适用于私有数据:支持接入企业文档、数据库、网页等作为知识来源。
  • ✅ 可控性强:检索模块可以人为控制,比如只让模型访问合规内容。

RAG 的工作流程

一个典型的 RAG 系统包含两个核心模块:

  1. 检索器(Retriever):从外部知识库(Knowledge Base)中找出与问题最相关的文档片段。
  2. 生成器(Generator):利用语言模型(如ChatGPT、LLaMA、Qwen等)读取检索到的内容并生成最终回答。通常会将“问题 + 检索结果”拼接作为Prompt输入模型。

RAG的具体实现方案

模块 实现方案
文档预处理 文档切分(按段落/窗口滑动),清洗,结构化
文档向量化 sentence-transformerstext2vecOpenAI Embedding APIBGE
向量索引 FAISS, Milvus, Weaviate
检索接口 自定义相似度搜索、Hybrid-Retrieval、LangChain Retriever API
Prompt构造 自定义模板,支持Query + Top-k文档拼接,或 chunk reranking
生成模型 transformers 中的 LLM,如 Qwen, ChatGLM, Mistral, llama.cpp 等
框架集成 LangChain、LlamaIndex、Haystack、RAGatouille、PrivateGPT 等

RAG 的典型应用场景

  • 💼 企业知识库问答:员工通过问答界面快速获取制度/政策信息。
  • 🧠 智能客服:结合产品手册/用户问答,提供准确答复。
  • 📚 教育和训练:学生提问,模型结合教材资料答题。
  • 🔍 法律/医疗/金融领域问答:高要求领域结合专业数据库更可靠。

拓展资料

  • 【RAG 工作机制详解——一个高质量知识库背后的技术全流程-哔哩哔哩】 https://b23.tv/gEl3kzB
  • 【使用Python构建RAG系统 —— 用代码还原 RAG系统的每个细节-哔哩哔哩】 https://b23.tv/Mq1yWvT