一文了解 RAG 与知识增强


🎯 为什么需要 RAG 与知识增强

大语言模型(LLM)如 Qwen、GPT-4、Claude 虽然“知识渊博”,但存在三大致命问题:

  1. 知识过时:训练数据截止于 2023 或 2024,无法回答最新事件。
  2. 幻觉严重:容易“一本正经胡说八道”,编造不存在的事实。
  3. 领域无知:对企业私有数据、专业文档、内部知识库一无所知。

RAG(Retrieval-Augmented Generation) 就是解决方案:
让大模型“学会查资料”,边检索边回答,有据可依,减少幻觉。


一、RAG 是什么?核心思想图解

用户提问 → 检索器从知识库中查找相关文档 → 将文档+问题一起喂给大模型 → 生成有依据的回答

📌 核心公式:

RAG = 检索(Retrieve) + 增强(Augment) + 生成(Generate)

✅ 优势:

  • 不用重新训练模型,成本低、见效快
  • 知识可随时更新(只需更新知识库)
  • 回答可溯源(附带参考文档)
  • 减少幻觉,提高可信度

二、RAG 系统五大核心模块


1️⃣ 文档加载与切分(Document Loading & Chunking)

把 PDF、Word、网页、数据库等“知识源”变成模型可读的文本块。

🔹 常见格式支持:
  • PDF(PyPDF、pdfplumber)
  • Word / PPT(python-docx、pptx)
  • HTML / Markdown
  • 数据库(SQL → 文本)
  • 代码仓库(GitHub)
🔹 切分策略(Chunking):
  • 固定长度切分:每 512 Token 一切(简单但可能切断语义)
  • 按标题/段落切分:保留语义完整性(推荐)
  • 滑动窗口切分:重叠切分,避免边界信息丢失
  • 语义切分:用 LLM 或 Sentence-BERT 判断语义边界(高级)

📌 工具推荐:LangChain DocumentLoaders、LlamaIndex、Unstructured


2️⃣ 向量化与索引(Embedding & Indexing)

把文本块变成向量,存入向量数据库,支持快速相似度检索。

🔹 Embedding 模型选择:
模型 语言 优势 推荐场景
text-embedding-3-small(OpenAI) 多语 速度快、API 稳定 商业项目
BGE(BAAI) 中英 中文效果 SOTA 中文项目首选
E5 / E5-mistral 多语 开源、可微调 研究/私有部署
Jina Embeddings 多语 支持 8K+ 长文本 长文档场景

✅ 中文项目强烈推荐:BGE-M3(支持多向量、稀疏检索、中英混合)

🔹 向量数据库:
数据库 优势 适用场景
FAISS(Meta) 快、轻量、开源 本地/研究项目
Chroma 简单易用、Python 友好 快速原型
Weaviate 支持混合检索、可扩展 企业级应用
Milvus / Zilliz 高性能、分布式 大规模生产环境
Pinecone 全托管、API 简单 无运维需求项目

3️⃣ 检索(Retrieval)—— 找到最相关的“参考资料”

🔹 传统检索:语义相似度(Dense Retrieval)
  • 用 Embedding 计算余弦相似度
  • 返回 Top-K 最相似文档
🔹 高级检索技术:
🌟 HyDE(Hypothetical Document Embeddings)

2023 年提出,让大模型先“幻想”一个答案,再用这个答案去检索

📌 步骤:

  1. 用户问:“如何配置 Qwen 的 LoRA 微调?”
  2. 让 LLM 生成一个“假设答案”(即使不准也没关系)
  3. 用这个“假设答案”去向量库检索
  4. 检索结果往往比直接用问题检索更准!

✅ 优势:解决“问题简短、语义模糊”导致的检索失败。

📌 示例代码(LangChain):

from langchain.retrievers import HyDE
retriever = HyDE.from_llm(llm, base_retriever)
🌟 混合检索(Hybrid Search)
  • 结合 语义检索(Embedding) + 关键词检索(BM25)
  • 适合专业术语、代码、法律条文等场景

✅ Weaviate、ElasticSearch、BGE-M3 均支持混合检索。


4️⃣ 重排序(Rerank)—— 从“相关”到“最相关”

检索返回的 Top-K 文档,可能“相关但不精准”。Rerank 用更精细的模型重新打分排序。

🔹 为什么需要 Rerank?
  • Embedding 检索是“粗筛”,Rerank 是“精排”
  • 提高 Top-1 文档的准确率,直接影响回答质量
🔹 常用 Rerank 模型:
模型 优势 推荐场景
BGE Reranker 中英文 SOTA,轻量 中文项目首选
Cohere Rerank API 稳定,支持多语言 商业项目
Cross-Encoder(Sentence-BERT) 精度高,速度慢 小规模/研究
LLM Rerank 用 GPT-4/Qwen 打分 效果最好,成本高

✅ 实践建议:检索返回 10~20 篇,Rerank 精选 Top-3~5 喂给大模型。

📌 工具:Cohere API、BGE-Reranker、FlagEmbedding 库


5️⃣ 生成(Generation)—— 大模型“有依据地回答”

把检索到的文档 + 用户问题,一起构造 Prompt,让大模型生成最终答案。

🔹 Prompt 设计模板:
请根据以下参考资料回答问题。如果资料中没有答案,请回答“我不知道”。

参考资料:
1. [文档1内容...]
2. [文档2内容...]

问题:{用户问题}

请用中文简洁回答:
🔹 高级技巧:
  • 引用标注:让模型在回答中标注“参考文档1”
  • 拒绝回答机制:若检索结果不相关,强制模型说“无相关信息”
  • 多跳检索(Multi-hop):复杂问题,分多次检索(如:先找概念,再找细节)

📌 工具:LangChain、LlamaIndex 内置 Prompt 模板


三、RAG 效果评估指标

不能只看“回答是否流畅”,要看“是否准确、有依据”。

指标 说明 工具
检索召回率@K Top-K 中是否包含正确文档 人工标注测试集
生成准确率 回答是否正确、无幻觉 LLM-as-a-Judge(GPT-4 打分)
幻觉率 回答中编造内容的比例 FactScore、人工评估
延迟 从提问到回答的时间 系统监控
相关性得分 检索文档与问题的相关性 Reranker 分数、人工打分

✅ 推荐构建一个小型“知识库问答测试集”(50~100 个问题)用于迭代优化。


四、RAG 前沿技术与趋势(2025)


🌟 1. Self-RAG:让模型自己决定“要不要检索”

2023 年论文提出,模型在生成过程中动态决定是否检索、检索什么

  • 生成特殊 Token:[检索][不检索]
  • 更灵活,避免无关检索浪费资源
  • 适合开放域问答

🌟 2. Corrective RAG(CRAG):检索结果“纠错+增强”

2024 年提出,对检索结果进行可信度评估,低质量结果进行网络搜索补充

  • 用 LLM 判断检索文档“是否可靠”
  • 不可靠 → 自动调用 Google Search API 补充
  • 极大提升回答准确率

🌟 3. Graph RAG:用知识图谱增强检索

将知识库构建成“实体-关系”图谱,检索时走图谱路径,适合复杂推理。

  • 例:问“马斯克创办了哪些公司?” → 图谱中找“马斯克 → 创办 → ?”
  • 微软、DeepMind 已在探索

🌟 4. 多模态 RAG

检索内容不仅是文本,还包括图片、表格、视频帧。

  • 例:问“这张发票的金额是多少?” → 检索相似发票图片 + OCR 文本
  • 需要多模态 Embedding(如 Qwen-VL-Embedding)

五、实战推荐架构(2025 最佳实践)

用户提问
    ↓
[HyDE 生成假设文档] → [BGE-M3 混合检索 Top-20]
    ↓
[BGE Reranker 精排 Top-5]
    ↓
[构造 Prompt + Qwen-Max 生成答案]
    ↓
输出带引用标注的回答

✅ 工具栈推荐:

  • LangChain / LlamaIndex:流程编排
  • BGE-M3 + BGE-Reranker:检索+重排(中文最强)
  • vLLM + AWQ:本地高效推理
  • Chroma / Weaviate:向量数据库
  • LlamaParse / Unstructured:文档解析

六、RAG vs 微调 vs 预训练 —— 如何选择?

方法 成本 更新知识速度 减少幻觉 适用场景
RAG 实时(改知识库即可) ✅ 强 企业知识库、客服、最新资讯
微调(SFT) 慢(需重新训练) ⚠️ 一般 领域术语、固定任务(如法律、医疗)
预训练 极高 极慢 ❌ 弱 通用能力、基础模型研发

💡 黄金法则

  • 新知识、私有数据 → 选 RAG
  • 固定领域、术语风格 → 选 微调
  • 两者结合 → RAG + 微调(如用领域数据微调 Embedding 模型)

✅ 总结:RAG 技术全景图

用户提问
    │
    ▼
[HyDE 假设文档生成] → [混合检索:语义+关键词]
    │
    ▼
[重排序:BGE Reranker 精选 Top-3]
    │
    ▼
[构造 Prompt + 大模型生成带引用答案]
    │
    ▼
输出 → 可信、可溯源、无幻觉

🎓 RAG = 给大模型配一个“超级外脑”
不是替代大模型,而是让它“如虎添翼”。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐