先这样答
当问题需要多跳关系推理,或需要总结文档整体趋势时,我会优先考虑 GraphRAG,而不是普通向量 RAG。因为这类问题不只要求找到相似片段,还要求沿着实体和关系继续推理,或者观察文档的全局信息。
例如,问题是“A 的供应商有哪些资质”,回答需要从 A 找到供应商,再查供应商的资质。这是多跳关系推理。普通向量 RAG 往往先检索一段,再根据结果继续检索。每一跳都可能猜错,后面的结果也会跟着偏。GraphRAG 用图谱表达实体和关系,更适合处理这类路径。
如果问题只是“退款政策是什么”,用户要的是一个单点事实,普通向量 RAG 就够用。GraphRAG 也能回答,但要先承担图谱构建和维护的成本。构建时要做实体抽取和实体消歧。数据增量时,还要处理实体对齐。我的判断标准是:先看多跳问题和全局性问题的占比。占比高,图谱的成本才更值得投入;占比低,就优先使用普通向量 RAG。
面试官会怎么追问
-
「如果只是多跳问题,为什么不能让向量 RAG 多检索几次?」 可以多检索几次,但每一跳都在根据当前结果猜下一步。前一步召回或判断出错,后面就会继续偏。GraphRAG 把实体和关系放进图谱,问题可以沿关系查找。是否采用,还要看多跳问题的占比是否足以覆盖构建和维护成本。
-
「什么情况下普通向量 RAG 更合适?」 当问题主要是单点事实查询时,普通向量 RAG 更合适。比如查询退款政策,通常只需要找到相关内容,不需要沿多个实体关系推理。此时引入图谱会增加实体抽取、实体消歧和维护工作,但问题本身并不需要这些能力。
-
「GraphRAG 的成本主要在哪里?」 成本首先在图谱构建,包括实体抽取和实体消歧。数据发生增量后,还要处理实体对齐。还要持续维护图谱,所以我不会因为问题看起来复杂,就默认使用 GraphRAG。
回答的坑
- 看到“多跳”就直接上 GraphRAG,忽略了这类问题在实际请求中的占比。
- 只比较检索效果,不计算实体抽取、消歧、实体对齐和后续维护的成本。
同系列的题