Appearance
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 | 高性能,支持过滤 | 生产环境、需要元数据过滤 |
| pgvector | PostgreSQL 扩展 | 已有 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 评估报告,有量化指标
