RAPTOR 如何构建层次化 RAG,什么时候比平铺 Chunk 检索更合适?
先用自己的话答,再看参考说法
60 秒是练习上限,不是必须凑满。原理题讲清因果,设计题讲清约束,项目题只讲真实证据。
别照着背。参考说法只用于对照;直接回答问题,简单题说清楚就收尾。项目题只用自己的经历和数字。
参考内容当前已显示;开始口述后会暂时隐藏。
面试时怎么答
先描绘 RAPTOR 的树:底层是原始 Chunk,相近节点聚类后生成摘要,再继续向上聚合。检索时可以同时命中细节节点和高层摘要,因此适合跨章节主题或不同粒度的问题。
边界也要讲清:层次构建和摘要更新成本高,摘要错误可能向上累积;对于精确事实、频繁更新的小文档,平铺检索往往更直接。
可以这样答:
RAPTOR 将原始 Chunk 的表示反复聚类,并为每个簇生成摘要,形成从细节到主题的树状索引。查询时既能检索叶子节点,也能命中较高层摘要,所以面对跨章节概括、长文档主题和多粒度问题时,比只搜平铺 Chunk 更容易拿到完整背景。代价是建树与更新更重,摘要还会损失细节,因此最终事实仍需回溯叶子证据。
核心回答
RAPTOR 先把文档分成叶子片段并计算向量,然后对语义相近片段聚类,使用模型为每个簇生成摘要;摘要本身再次被向量化、聚类和总结,递归形成不同抽象层级的树。查询时可以从多个层级检索,使宏观问题命中高层摘要,细节问题仍命中叶子原文。
它尤其适合单篇或一组长文档中的主题概括、跨章节关系和多步信息组合。对精确事实、短独立文档或高频更新语料,普通 Chunk + 重排可能更简单可靠。摘要节点不能作为无来源的“新事实”,必须携带子节点与页码血缘,最终回答优先引用原文证据。
展开说明
建树参数包括叶子粒度、Embedding、聚类方法、每簇规模、摘要模型和检索策略。Top-down Traversal 能减少候选,但早期选错分支可能漏召回;在所有树节点上做 Flat Retrieval 更直接,却增加候选与重复。应把两者作为可测试策略,而非声称层次检索必然更优。
增量数据会影响聚类与上层摘要。生产中可按文档或稳定分区独立建树,对变更子树重建,并通过版本化索引原子切换。
工程实践
先建立平铺 Chunk + Reranker 基线,再只在需要全局语义的切片评估 RAPTOR。测试细节、概括、多跳和时效问题,记录叶子 Recall@K、最终答案正确率、引用能否回到原文、摘要事实错误率、构建 Token/时间、索引体积和更新延迟。
常见追问
- 高层摘要可以直接作为最终引用吗? 不建议只引摘要;它是生成内容,可能压缩或改写事实,应沿血缘回到原文页码和片段验证。
- RAPTOR 与 GraphRAG 有什么区别? RAPTOR 主要按语义聚类形成摘要树;GraphRAG 显式抽取实体关系并构建图与社区,两者结构和适用问题不同。
- 为什么层次检索不一定胜过平铺检索? 精确事实可能在摘要中被省略,树路由还会产生级联漏召回;短文档和简单查询的额外成本可能没有回报。
一句话复习
RAPTOR 用递归聚类摘要补充全局语义,但必须保留原文血缘,并用业务切片证明它胜过平铺基线。
参考资料
评论与补充
评论会直接显示在这道题下面。可以写自己的答法、继续追问或指出错误,不需要 GitHub 账号,也不会跳转到 Issue;内容会公开,请勿填写个人隐私、公司机密或受保密约束的材料。
正在连接站内评论服务…
正在加载评论…
还没有评论,你可以先写下自己的理解或追问。