Skip to content

RAG 系统

RAG(Retrieval-Augmented Generation,检索增强生成)解决一个根本问题:LLM 的训练知识有截止日期,而且根本不可能记住你的私有数据。

解决方案:把知识存在向量数据库里,Agent 需要时检索相关片段,塞进 context 再生成。

子课展开学习:


RAG 的完整流程

文档 → 切块(Chunking)→ 向量化(Embedding)→ 存储(Vector DB)

用户查询 → 向量化 → 相似度检索 → Reranking → 注入 Context → LLM 生成

课次

课次 01 · Embedding 原理

核心问题: 向量是什么,为什么能表示语义?

Embedding 把文本转成高维数字向量,语义相似的文本在向量空间里距离近。这是检索的基础。

你会学到:

  • 向量与语义相似度:余弦相似度、点积
  • Embedding 模型选型:OpenAI text-embedding、Cohere Embed、BGE、Nomic
  • 多语言 Embedding:中文语料用什么模型
  • Embedding 的维度与精度权衡

实验: 用 Embedding 模型,把一批文档向量化,找出最相似的几段。


课次 02 · 向量数据库

核心问题: 向量存在哪,怎么查?

数据库定位适用场景
Chroma本地优先,上手最快开发、原型、小规模
Qdrant高性能,支持过滤生产环境、需要元数据过滤
pgvectorPostgreSQL 扩展已有 PostgreSQL,不想再引入新系统
Pinecone全托管 SaaS不想运维,快速上线

你会学到:

  • 索引结构:HNSW(分层可导航小世界图)为什么比暴力搜索快
  • 元数据过滤:where file_type = 'pdf' AND date > '2024-01-01'
  • 命名空间 / Collection:多租户隔离
  • CRUD 操作:文档更新时如何同步向量

课次 03 · 检索策略

Chunking 和检索策略直接决定 RAG 的质量。

Chunking 策略:

  • 固定大小切块:简单但会切断语义
  • 句子/段落切块:保留语义完整性
  • 重叠切块(Sliding Window):减少边界信息丢失
  • 文档结构切块:按标题、章节切,保留层级关系

检索策略:

  • Dense 检索:纯向量相似度,适合语义查询
  • Sparse 检索(BM25):关键词匹配,适合精确词语查询
  • Hybrid 检索:Dense + Sparse 融合,综合最优

实验: 同一批文档,对比三种检索策略的召回结果。


课次 04 · Reranking 与后处理

核心问题: 检索到的 Top-K 文档,并不都是有用的。

初步检索是粗排(召回),Reranking 是精排(选最相关的)。

你会学到:

  • Cross-Encoder Reranker:把 query 和每个候选文档一起送给模型打分,比向量相似度更准
  • Cohere Rerank / BGE Reranker:主流精排模型
  • 上下文整合:把检索结果整理成适合注入 context 的格式
  • 引用与溯源:让 Agent 输出时标明信息来源

课次 05 · RAG 评估

你不能靠感觉判断 RAG 好不好。

评估维度:

维度问的问题衡量指标
检索质量找到的文档和问题相关吗?Recall@K、MRR、NDCG
答案忠实度答案有没有超出检索到的内容捏造?Faithfulness
答案相关度答案有没有回答问题?Answer Relevance
端到端准确率和标准答案对比Exact Match、F1

评估框架: RAGAS——自动化评估 RAG pipeline 的开源工具。


你做完这个模块能交付什么

一个完整的 RAG pipeline:

  • 支持 PDF / Markdown / 网页文档导入
  • Hybrid 检索 + Reranking
  • 带引用溯源的对话 Agent
  • RAGAS 评估报告,有量化指标

大齐 AI 课堂 · 程序员的 Agent 开发课