AI 技术
#RAG#树状索引#递归摘要#检索增强生成

RAPTOR:基于递归摘要的树状索引增强检索

介绍 RAPTOR 方法如何通过递归嵌入、聚类与摘要构建多层树状索引,解决长文档检索中粒度过粗的问题,并与传统分块策略进行对比,讨论工程实现、成本权衡及局限性。

传统分块检索的局限

检索增强生成(RAG)通过从外部知识库中检索相关文本块来增强语言模型,但绝大多数方法只检索固定长度的连续分块。这种策略在需要跨段落、跨章节进行多步推理的任务中暴露明显缺陷:固定分块无法捕获文档的高层语义和全局上下文,导致模型面对“整本书的某个主题演变”或“多证据综合”等问题时性能骤降。

RAPTOR(Recursive Abstractive Processing for Tree-Organized Retrieval)针对这一局限,提出用树状结构对文档进行多粒度索引:从最细粒度的原始文本块开始,递归地嵌入、聚类与摘要,自底向上构建出包含不同抽象层级信息的树。检索时,模型可以同时从叶节点(原始块)和内部节点(摘要)中获取信息,从而平衡检索粒度与推理成本。

RAPTOR 核心方法:递归聚类与摘要构建树

RAPTOR 的构建流程分为以下步骤:

  1. 分块与嵌入:将文档分割为较短的文本块(例如 100 词),使用嵌入模型(如 OpenAI text-embedding-ada-002)将每个块映射为向量。
  2. 聚类:基于向量相似度对块进行聚类,形成若干簇。聚类算法通常选用高斯混合模型(GMM)或层次聚类,以便自动确定簇数并处理软分配。
  3. 摘要生成:对每个簇内的所有文本块,调用语言模型(如 GPT-3.5/4)生成一段摘要。该摘要替代原始块,成为树的上一层节点。
  4. 递归构建:将上一步生成的摘要作为新的“文本块”,重复嵌入、聚类与摘要过程,直到只剩一个根节点(或达到设定的层数)。

最终树结构如图示:叶节点为原始文本块,中间节点为局部摘要,根节点为文档整体摘要。这种设计使文档在不同粒度上都有了可检索的表示。

检索时,RAPTOR 有两种常用策略:树遍历(从根开始,在每一层选择与查询最相关的 k 个节点,展开其子节点继续检索,最终返回所有选中节点)和折叠树(将所有层的节点展平为单一集合,直接进行相似度检索)。前者能显式利用层级关系,后者在工程上更简洁。

工程实现与粒度权衡

在工程实践中,RAPTOR 的每一环节都需要权衡计算成本与检索质量。

  • 摘要成本:递归摘要需要多次调用大型语言模型,成本随文档长度和树深度线性增长。论文在实验中大多使用 GPT-4 生成摘要,单次处理数千个块的成本不菲。实践中可通过以下方式缓解:

    • 限制树的最大深度或每一层的最大节点数。
    • 使用较小、更便宜的摘要模型(如 GPT-3.5 或本地部署的模型)。
    • 仅对关键文档或段落启用多层摘要,而对大量普通文档采用浅层树。
  • 检索粒度控制:检索时可通过调整遍历宽度(每层保留的节点数)或混合不同层的权重来平衡细节与全局视野。例如,在需要细粒度证据的任务中增大叶层权重,在需要总结型答案时偏重高层摘要。

  • 与传统分块的对比:传统固定分块(如 256 token)虽然简单,但遇到跨块信息时会丢失关联。RAPTOR 通过摘要层提供了自然的跨块整合,且检索时可直接获取高层摘要,避免读取大量无关文本。但 RAPTOR 的索引构建耗时更长,且对动态更新不友好(见下文局限)。

官方实现(GitHub: parthsarthi03/raptor)提供了一套可扩展的框架,允许用户替换自己的摘要、问答和嵌入模型。只需继承 BaseSummarizationModelBaseQAModelBaseEmbeddingModel 并实现相应方法,即可将 RAPTOR 适配到本地模型或私有 API。

性能表现与应用场景

论文在多个问答基准上评测了 RAPTOR,最亮眼的结果来自 QuALITY(一个需要长文档多步推理的数据集)。结合 GPT-4 后,RAPTOR 将最佳成绩的绝对准确率提升了 20%,展现出在多证据综合与深层理解上的显著优势。

RAPTOR 尤其适用于以下场景:

  • 长文档/书籍级问答:如对整部小说进行情节分析,或从冗长的技术手册中寻找故障解决方法。
  • 多文档摘要与比较:为一系列相关文档构建统一树状索引,支持跨文档的主题摘要。
  • 知识库结构化检索:在企业内部知识库或法律文档中,传统分块无法捕捉条款间的层级关系,RAPTOR 的树能显式建模这种结构。

注意,RAPTOR 本身是检索器,需要与下游生成模型配合使用。论文默认使用 GPT-4 作为阅读器,但框架支持替换任何生成模型。

当前局限与未来方向

RAPTOR 目前仍存在若干工程与研究限制:

  1. 静态索引:树构建完成后难以增量更新。新增或修改文档通常需要重建整个树结构,不适合数据频繁变动的场景(如实时新闻或持续更新的知识库)。
  2. 聚类偏差:聚类质量直接影响树结构。若初始分块不理想或嵌入模型未能很好捕捉语义,可能将无关文本聚到一起,导致摘要混乱。GMM 假设类球状分布,对长尾、不规则簇效果有限。
  3. 摘要失真:多层摘要会逐步丢失细节、引入漂移,尤其当底层模型产生幻觉时。论文未系统分析错误传播,工程中可能需要质量校验步骤。
  4. 成本:构建大规模树的推理开销仍然较高,限制了在超大型语料上的应用。

前沿探索方向包括:

  • 增量或分层构建:支持在不重建全树的前提下插入新分支,利用历史摘要动态调整聚类。
  • 强化聚类策略:尝试基于图的方法或使用更现代的嵌入模型(如 Cohere、text-embedding-3)提升聚类鲁棒性。
  • 多模态扩展:将树状索引应用到图文混合文档,如科学论文中的图表摘要,以构建更丰富的检索节点。
  • 端到端优化:将树构建与下游任务联合训练,使摘要和聚类直接为任务目标服务,而非仅依赖固定流程。

RAPTOR 代表了从固定分块到多粒度结构化检索的重要一步。尽管构建和维护成本较高,但在需要全局理解与多步推理的场景下,其性能优势不容忽视。随着更高效的本地摘要模型和增量聚类算法的成熟,这一方法有望从实验性论文走向更广泛的工程实践。

资料来源

  1. RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval
  2. RAPTOR 官方实现
  3. RAPTOR 在 LangChain 中的应用文档