🎯 课程主题
理解 RAG(Retrieval Augmented Generation,检索增强生成)模块的设计意义、必要性及其在大模型应用中的核心地位。
📝 核心知识点
1. RAG 的定义
RAG = Retrieval Augmented Generation(检索增强生成),结合信息检索与文本生成的技术,用于提升大模型的准确性和可靠性。LangChain 官方也称之为 Retrieval 模块。
2. 大模型的三大局限性
| 问题 | 描述 | RAG 如何解决 |
|---|---|---|
| 训练数据截止 | 模型知识有截止时间,无法反映最新信息 | 将最新数据放入知识库,检索后注入上下文 |
| 领域知识缺失 | 训练依赖公开静态数据,缺乏私有/垂直领域知识 | 将私有数据构建为知识库供检索 |
| 幻觉问题 | 模型一本正经地胡说八道,捏造事实 | 提供准确的外部上下文约束模型回答 |
幻觉尤其在金融和医疗领域致命——一次金额评估错误或医疗诊断失误,哪怕只出现一次,后果都可能是灾难性的。
3. 幻觉产生的三大原因
- 训练数据存在偏差:模型学到了错误信息(甚至存在"数据投毒"的灰色商业行为)
- 模型被过度泛化:在特定场景下不够精准
- 深层理解不足:对训练数据未学到更深层次含义,在复杂推理任务中出错
4. RAG 的应用场景
- 多智能体(Multi-Agent)中的子智能体,负责检索本地知识库
- 客服系统
- 基于大模型的数据分析
- 各类聊天应用
🏗️ 架构与工作流
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 本地数据 │ → │ 文档加载 │ → │ 文本切分 │ → │ 向量嵌入 │ → │ 向量存储 │
│(多格式) │ │(Document) │ │ (Chunk) │ │(Embedding)│ │(VectorDB) │
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └─────┬────┘
│
┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ 最终回答 │ ← │ 大模型 │ ← │ 上下文拼装 │ ← ─ ─ ─ 相似度检索 ─ ─ ┘
└──────────┘ └──────────┘ └──────────┘
核心思路:将本地数据切分 → 向量化存储 → 用户提问时向量检索最相关内容 → 融合为上下文 → 交给大模型生成准确回答。RAG 相当于充当"人类知识图书馆"的角色。
📊 RAG 优缺点分析
优点
- 时效性:可接入最新信息
- 可靠性:基于真实数据约束回答,减少幻觉
- 隐私性:私有数据不出域
- 丰富上下文:为模型提供精准参考资料
缺点
- 响应延迟:每次回答需检索外部系统,交互变慢
- Token 消耗大:附加上下文信息增加 token 用量
优化方向:切分策略决定存储质量,检索策略决定召回质量——从这两个角度尽量规避缺点。
⚠️ 常见问题与避坑指南
- 不要把整个文档直接塞给大模型——无效信息过多导致回答不精准且浪费 token
- 非结构化数据(PDF、Markdown、Word、HTML)需特别关注加载和切分策略
- RAG 无法 100% 消除幻觉,但它是目前最有效的缓解手段之一
💡 个人总结与延伸
- RAG 是 Agent 开发浪潮之前热度最高的技术方向,现在常作为多智能体中的子模块存在
- 本章后续将覆盖完整的 RAG 链路:数据加载 → 切分 → 向量化 → 存储 → 检索 → 生成
- 虽然 RAG 有延迟和 token 成本的缺点,但其优点远大于缺点,不可因噎废食