Skip to content

GraphRAG

🎯 学习目标

  • 了解父子索引、摘要索引、假设性问题索引等 Advanced 技巧
  • 理解 GraphRAG 适用场景与成本权衡
  • 识别 RAG 商业化的缓存、增量索引与分层存储策略
  • 避免为 Advanced 而 Advanced,保留简单 baseline

引言

当 baseline RAG 在 golden set 上碰到天花板,Advanced 技巧才有意义。本节介绍常见「进阶武器」及 GraphRAG 的边界,并谈上线后如何控成本。

章节正文

第 1 步:父子索引(Parent-Child)

检索小 child chunk(精确),返回时带上大 parent 段落(完整上下文):

text
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 费用分项监控。

动手练习

  1. 设计 parent-child metadata 结构,写检索命中 child 后如何取 parent。
  2. 为 5 个 chunk 生成 hypothetical questions,对比 baseline 检索 hit@3。
  3. 选一个需要「全局总结」的问题,讨论 GraphRAG vs 普通 RAG 谁更合适。
  4. 列出你的系统 3 项可缓存点与预期 TTL。
  5. 写「何时不上 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 各有时机。商业化靠缓存、增量与分层控成本,指标驱动而非堆概念。