📚 RAG 技术完全指南 2025
检索增强生成 (Retrieval-Augmented Generation) 技术详解
什么是 RAG?
RAG(检索增强生成)是一种将大语言模型(LLM)与外部知识库结合的技术。它通过在生成回答前先检索相关文档,让 AI 能够基于最新、准确的信息回答问题,有效解决 LLM 的知识截止日期问题和"幻觉"问题。RAG 已成为企业级 AI 应用的核心技术。
🔄 RAG 工作流程
🛠️ RAG 开发框架
💾 向量数据库
🔢 Embedding 模型
| 模型 | 维度 | 提供商 | 特点 | 开源 |
|---|---|---|---|---|
| text-embedding-3-large | 3072 | OpenAI | 性能最佳,支持维度缩减 | ✗ |
| voyage-3 | 1024 | Voyage AI | 检索优化,MTEB 领先 | ✗ |
| bge-m3 | 1024 | BAAI (智源) | 多语言,稀疏+稠密 | ✓ |
| e5-mistral-7b | 4096 | Microsoft | 基于 LLM,效果优秀 | ✓ |
| jina-embeddings-v3 | 1024 | Jina AI | 8K 上下文,多任务 | ✓ |
| mxbai-embed-large | 1024 | Mixedbread | Matryoshka,二进制量化 | ✓ |
📖 核心概念
📄 Chunking 分块策略
将长文档切分为适合检索的小块。常用策略:固定大小、语义分块、递归分块。块大小通常 200-1000 tokens,需考虑重叠。
🔍 Hybrid Search 混合检索
结合向量相似度搜索(语义)和关键词搜索(BM25),兼顾语义理解和精确匹配,效果优于单一检索。
📊 Reranking 重排序
使用 Cross-Encoder 对初检结果重新排序,提升召回质量。常用模型:Cohere Rerank、bge-reranker。
🔄 Query Transformation
改写用户查询以提升检索效果。技术包括:HyDE(假设文档)、Query Expansion、Multi-Query。
🧠 Contextual Retrieval
Anthropic 提出,为每个 chunk 添加上下文说明,显著提升检索准确率,减少 49% 检索失败。
📈 Evaluation 评估
关键指标:召回率、精确率、MRR、NDCG。评估框架:RAGAS、TruLens。需要构建标注数据集。
💻 代码示例
⚡ 高级 RAG 技术
🌲 Graph RAG
结合知识图谱,捕获实体间关系。适合需要推理的复杂查询,Microsoft 已开源 GraphRAG。
🔄 Agentic RAG
使用 AI Agent 动态规划检索策略,可以迭代检索、多跳推理,处理复杂问题。
📝 Self-RAG
模型自我反思检索需求和结果质量,决定是否需要检索、评估检索结果是否相关。
🎯 CRAG (Corrective RAG)
评估检索文档相关性,触发网络搜索补充,自动纠正低质量检索结果。
💡 RAG 最佳实践
- 分块策略: 根据文档类型选择分块方式,代码用语法树,文章用语义分块
- Embedding 选择: 多语言用 bge-m3,英文用 voyage-3 或 OpenAI
- 混合检索: 向量检索 + BM25 通常比单一检索效果提升 10-20%
- Reranking: 初检 top-20,重排后取 top-5,平衡召回和精度
- Prompt 工程: 明确指示模型只基于检索内容回答,承认不知道
- 评估先行: 先构建评估数据集,用数据驱动优化,避免盲目调参
- 监控上线: 记录检索日志,追踪低质量回答,持续迭代改进