03 - 生成与融合
定位: RAG Pipeline 的输出端——如何将检索到的上下文与生成模型协同,产生高质量回答 面试高频度: ⭐⭐⭐⭐
一、板块在体系中的位置
上游:02-检索系统(检索结果作为本板块输入)
│
▼
【03-生成与融合】 ← 你现在在这里
│ ┌────────────────────────────────┐
│ │ 检索结果 → Prompt拼接 → 生成回答 │
│ │ 上下文管理 → 查询转换 → 多模态 │
│ └────────────────────────────────┘
│
▼
下游:04-进阶RAG模式(在本板块基础上叠加复杂策略)二、知识全景图
┌───────────────────────────────────────────────────────────┐
│ RAG 生成与融合 Pipeline │
│ │
│ ┌──────────────────┐ │
│ │ 查询(用户输入) │ │
│ └────────┬─────────┘ │
│ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ 查询转换层 (Query Transformation) │ │
│ │ HyDE │ Multi-Query │ Step-back │ 路由 │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ 上下文组装层 (Context Assembly) │ │
│ │ 检索结果 → 窗口裁剪 → 优先级排序 → 注入 │ │
│ └───────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────┐ │
│ │ 生成层 (Generation) │ │
│ │ Prompt 模板 → 模型推理 → 输出格式化 │ │
│ └───────────────────────────────────────────┘ │
│ │
│ 输出:包含引用的结构化回答 / 代码 / 多模态内容 │
└───────────────────────────────────────────────────────────┘三、子专题导航
| # | 主题 | 面试频率 | 核心内容 |
|---|---|---|---|
| **生成模型选择与Prompt设计** | 模型选择与Prompt | ⭐⭐⭐⭐ | 模型能力权衡、Prompt模板结构 |
| **上下文窗口管理** | 上下文窗口管理 | ⭐⭐⭐⭐ | 窗口限制、信息压缩、MapReduce |
| **HyDE与查询转换** | HyDE与查询转换 | ⭐⭐⭐ | HyDE、Multi-Query、查询路由 |
| **多模态RAG** | 多模态RAG | ⭐⭐⭐ | 图文混合、多向量存储 |
四、核心考点速记
1. RAG 中 Prompt 模板的关键要素
系统指令:角色设定 + 回答规则 + 引文要求
上下文块:检索到的文档块(按相关性排序)
用户问题:原始查询
约束条件:不知道就说不懂,不要编造2. 上下文窗口不够怎么办?
策略层级(从简单到复杂):
① 裁剪策略:只保留最相关的 Top-k 块
② 压缩策略:用 LLM 对上下文做摘要/提取
③ 分治策略:MapReduce 模式(多轮对话聚合)
④ 优化策略:用 RAPTOR 或分层摘要预先压缩3. HyDE 的核心思想?
问题:查询和文档的表述方式不同 → 向量相似度不准确
解法:先让 LLM 假设一个理想文档 → 用这个文档去检索
→ 查询 → (LLM) → 伪文档 → (Encoder) → 向量 → 检索
效果:对短查询/表述差异大的场景提升显著📚 相关文件
- **RAG文库设计文档**
- **检索系统索引**
- ← 返回 **RAG文库设计文档**