🎯 课程主题
深入讲解 RAG(检索增强生成)的概念、工作原理及核心难点,为后续知识库开发章节做铺垫。
📝 核心知识点
1. 大模型应用技术的特点
- 概念说明:门槛低,天花板高——几分钟可搭建简单知识库/智能体,但构建幻觉少、功能复杂的智能体难度不亚于开发后台系统。
- 关键细节:可借助图形化工具(Cherry Studio、豆包、TTO Box 等)快速验证想法。
2. 大模型的两大原生问题
- 知识冻结:模型训练语料有截止日期,截止日期后的新信息无法回答(如"最近的热门电影有哪些")。
- 幻觉问题:在特定领域(医疗、金融、教育等)语料不足时,容易一本正经地胡说八道。
- 关键细节:RAG 正是为解决这两个问题而生的核心方案。
3. RAG(Retrieval-Augmented Generation)检索增强生成
- 概念说明:在 LLM 生成回答之前,先从外部知识库检索相关语料,将其注入 Prompt,让模型基于可信语料生成更精准的答案。
- 类比:闭卷考试(纯 LLM)正确率 60%,开卷考试(LLM + RAG 知识库)正确率提升到 90%。
- 关键细节:RAG 不是简单把文档丢给模型,而是经过一套完整的处理流水线。
4. RAG 工作流(核心流水线)
| 阶段 | 步骤 | 说明 |
|---|---|---|
| 离线建库 | 加载文档 | 用非结构化加载器读取 PDF/Word/Markdown/HTML 等 |
| 离线建库 | 文本切割 | 将大文档切分成小 Chunk(切片),便于精准检索 |
| 离线建库 | 向量嵌入 | 用 Embedding Model 将每个 Chunk 转为高维向量 |
| 离线建库 | 向量存储 | 持久化存入向量数据库 |
| 在线问答 | 问题向量化 | 用户 Query 同样经过 Embedding 转为向量 |
| 在线问答 | 向量检索 | 基于向量相似度算法在向量库中检索最相关的 Top-N Chunk |
| 在线问答 | Prompt 增强 | 将检索到的语料填入 Prompt 模板变量 |
| 在线问答 | 大模型生成 | LLM 结合增强后的 Prompt 生成最终答案 |
5. RAG 落地的四大难点
- 文件解析:格式多样(PDF 含文本/图片/表格),需要精确提取。
- 文件切割(Chunking):切割策略影响检索精度——按字符数、按 Token 数、按语义、递归字符切割等。
- 知识检索:向量相似度算法的选择和调优。
- 知识重排序(Re-ranking):检索到大量 Chunk 时,用重排序模型二次筛选最相关的,避免噪声语料降低答案质量。
- 适用场景:高精度、高相关性要求。
- 不适用场景:对响应时间敏感的应用(重排序增加延迟)。
🏗️ 架构与工作流
┌─────────────────────────────────────────────────────┐
│ 离线建库阶段 │
│ 文档 → 加载器 → 文本切割(Chunk) → Embedding → 向量数据库 │
└─────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────┐
│ 在线问答阶段 │
│ Query → 向量化 → 相似度检索 → Top-K Chunk │
│ → Prompt模板注入 → LLM生成 → 答案 │
└─────────────────────────────────────────────────────┘
💻 代码实战
本节课以理论讲解为主,代码实战将在第十章"知识库构建"专题中展开。
⚠️ 常见问题与避坑指南
- 重排序不是所有场景都适用:高延迟敏感场景应跳过 Re-ranking 环节。
- Chunk 大小需权衡:太大则检索精度下降,太小则丢失上下文语义。
💡 个人总结与延伸
RAG 是目前解决大模型"幻觉"和"知识过期"最经济有效的方案,远比微调成本低。实际项目中,RAG 的效果往往取决于 Chunking 策略和检索精度的调优。当前业界主流方案(如 LangChain + Chroma/Faiss + OpenAI Embedding)已形成标准范式,后续课程将对每一步进行代码级拆解。