GraphRAG
🎯 学习目标
- 了解父子索引、摘要索引、假设性问题索引等 Advanced 技巧
- 理解 GraphRAG 适用场景与成本权衡
- 识别 RAG 商业化的缓存、增量索引与分层存储策略
- 避免为 Advanced 而 Advanced,保留简单 baseline
引言
当 baseline RAG 在 golden set 上碰到天花板,Advanced 技巧才有意义。本节介绍常见「进阶武器」及 GraphRAG 的边界,并谈上线后如何控成本。
章节正文
第 1 步:父子索引(Parent-Child)
检索小 child chunk(精确),返回时带上大 parent 段落(完整上下文):
parent: 整节「报销政策」 (~2000 字)
child: 每条 bullet (~300 字)
检索命中 child_id → 注入 parent 文本到 Prompt兼顾 precision 与 context,适合政策、手册类结构化长文。
第 2 步:摘要索引与假设性问题索引
摘要索引:文档级 summary 向量 + 细节 chunk 向量,两阶段检索(先 doc 再 chunk)。
Hypothetical Questions:离线让 LLM 为每 chunk 生成「用户可能问的问题」,对问题做 embedding;在线 query 与「假设问」匹配,缓解 query-document 语义 gap。
两者都增加离线 LLM 成本,需抽样评估 ROI。
第 3 步:GraphRAG 简介
GraphRAG 从文档抽实体与关系建图,支持:
- 局部问答:实体邻域检索
- 全局问答:社区摘要(如「整个产品线的风险点」)
适合复杂关系网络(供应链、投研)。成本高(构图 + 多轮 LLM),小 FAQ 不必上。
第 4 步:信息压缩与多文档合并
检索到 10 段时,先 LLM 或 extractive 合并为 briefing,再单次生成,减窗口与重复。
注意压缩可能丢数字/日期——压缩 Prompt 要求保留实体、数字、日期 verbatim。
第 5 步:商业化优化
- Query 缓存:相同 question hash → 命中检索结果 TTL 1h
- 增量索引:Git webhook 只 re-index changed paths
- 热冷分层:90 天文档放冷存储,检索默认热库
- 分级模型:Rewrite/Rerank 用小模型,最终生成用大模型
SLA 与成本表:P95 延迟、每次 query embedding 费用、rerank 费用、LLM 费用分项监控。
动手练习
- 设计 parent-child metadata 结构,写检索命中 child 后如何取 parent。
- 为 5 个 chunk 生成 hypothetical questions,对比 baseline 检索 hit@3。
- 选一个需要「全局总结」的问题,讨论 GraphRAG vs 普通 RAG 谁更合适。
- 列出你的系统 3 项可缓存点与预期 TTL。
- 写「何时不上 Advanced」决策树:数据规模、团队维护成本、baseline 分数。
常见问题
Q:GraphRAG 是不是 RAG 终极形态?
不是。它是特定关系推理与全局摘要场景的选项,构建与更新成本高。多数企业 FAQ/手册 parent-child + Hybrid + rerank 已够用。
Q:假设性问题索引会过时吗?
文档更新时需 regenerate 假设问。可 versioning chunk_id,旧问向量异步重建。
Q:Advanced 技巧能叠加吗?
能,但复杂度指数上升。建议每次只加一项,golden set 有显著提升再保留,否则回滚。
本节小结
Advanced RAG 在 baseline 调优后按需引入:parent-child、摘要/假设问、GraphRAG 各有时机。商业化靠缓存、增量与分层控成本,指标驱动而非堆概念。