2. RAG 检索增强生成

Abstract

RAG 检索增强生成教程

Authors

Walter Fan

Status

WIP as draft

Updated

2026-02-07

RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合检索和生成的 AI 技术, 让大语言模型能够利用外部知识库来生成更准确、更可靠的回答。

为什么需要 RAG?

大语言模型(LLM)虽然强大,但存在以下问题:

  • 知识截止: 训练数据有截止日期,无法获取最新信息

  • 幻觉问题: 可能生成看似合理但实际错误的内容

  • 领域知识: 缺乏特定领域的专业知识

  • 数据隐私: 无法访问私有数据

RAG 通过引入外部知识库来解决这些问题:

传统 LLM:
用户问题 ──► LLM ──► 回答(可能有幻觉)

RAG:
用户问题 ──► 检索相关文档 ──► LLM + 文档 ──► 准确回答

学习目标

完成本教程后,你将能够:

  • 理解 RAG 的核心概念和工作原理

  • 掌握文档加载和处理技术

  • 了解文本分块策略

  • 使用向量嵌入表示文本

  • 搭建和使用向量数据库

  • 实现多种检索策略

  • 优化 RAG 系统的 Prompt

  • 评估 RAG 系统性能

  • 应用高级 RAG 技术

  • 部署生产级 RAG 系统

RAG 工作流程

┌─────────────────────────────────────────────────────────────────┐
│                      RAG 完整流程                                │
│                                                                  │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                   离线索引阶段                           │    │
│  │                                                          │    │
│  │  文档 ──► 分块 ──► 向量化 ──► 存入向量数据库              │    │
│  │                                                          │    │
│  └─────────────────────────────────────────────────────────┘    │
│                                                                  │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                   在线查询阶段                           │    │
│  │                                                          │    │
│  │  用户问题 ──► 向量化 ──► 检索相似文档 ──► 构建Prompt     │    │
│  │                                           │              │    │
│  │                                           ▼              │    │
│  │                                        LLM生成           │    │
│  │                                           │              │    │
│  │                                           ▼              │    │
│  │                                        返回答案          │    │
│  │                                                          │    │
│  └─────────────────────────────────────────────────────────┘    │
│                                                                  │
└─────────────────────────────────────────────────────────────────┘

实战项目

我们将构建一个完整的知识问答系统:

  • 📚 加载和处理多种格式的文档

  • 🔍 实现高效的语义检索

  • 💬 构建智能问答接口

  • 📊 评估和优化系统性能