RAG 学习笔记
RAG 学习笔记
架构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
┌────────────┐ ┌────────────┐
│ 用户问题 | 文档
└─────┬──────┘ └─────┬──────┘
↓ ↓
┌──────────────┐ ┌──────────────┐
│ Query处理 │ 切割/向量化
└─────┬────────┘ └─────┬────────┘
↓ ↓
┌──────────────┐ ┌──────────────┐
│ 向量检索 │ <- | 向量数据库 |
└─────┬────────┘ └──────────────┘
↓
┌──────────────┐
│ Rerank排序 │
└─────┬────────┘
↓
┌──────────────┐
│ Prompt构造 │
└─────┬────────┘
↓
┌──────────────┐
│ LLM生成 │
└──────────────┘
如何降低幻觉?
- Prompt 加限制
- 加引用机制
- 上 rerank
- 加拒答机制
上评估(RAGAS)
- 优化 chunk
如何提高召回率?
召回准确率:在大量信息中,找出真正有用信息的准确率
召回发生在上下文构建阶段,目的是为丰富 prompt 额外信息
- Query Rewrite:重新用户输入
- Multi-Query Retrieval:多个 query 检索
- Hybrid Search:混合检索,向量数据库 + 全文匹配(ES)
- Embedding 优化
RAGAS指标对比
| 指标 | 阶段 | 关注点 | 典型问题 |
|---|---|---|---|
| 忠实度(Faithfulness) | 生成阶段 | 回答 vs 检索内容 | 幻觉 |
| 相关性(Answer Relevancy) | 生成阶段 | 回答 vs 问题 | 答非所问 |
| 召回(Context Recall) | 检索阶段 | 检索是否全面 | 漏信息 |
| 准确率(Context Precision) | 检索阶段 | 检索是否干净 | 噪声多 |
This post is licensed under CC BY 4.0 by the author.