启用 RAPTOR
一种用于长上下文知识检索和摘要的递归抽象方法,旨在平衡广泛的语义理解与细粒度的细节。
RAPTOR(Recursive Abstractive Processing for Tree Organized Retrieval,树状组织检索的递归抽象处理)是一种在 2024 年的一篇论文 中介绍的增强型文档预处理技术。RAPTOR 旨在解决多跳问答问题,通过对文档块进行递归聚类和摘要,构建分层树状结构。这使得在长文档中能够进行更具上下文意识的检索。RAGFlow v0.6.0 将 RAPTOR 集成为其数据预处理流程的一部分,位于数据提取和索引之间,用于文档聚类,如下图所示。
我们对这种新方法进行的测试表明,在需要复杂多步推理的问答任务中,它能达到最先进(SOTA)的结果。通过将 RAPTOR 检索与我们内置的块划分方法和/或其他检索增强生成(RAG)方法相结合,您可以进一步提高问答的准确性。
启用 RAPTOR 需要大量的内存、计算资源和 tokens。
基本原理
原始文档被划分为块后,会根据语义相似性而不是其在文本中的原始顺序进行聚类。然后,集群将由系统的默认聊天模型摘要成更高级别的块。这个过程是递归应用的,从下往上形成一个具有不同摘要级别的树状结构。如下图所示,初始块形成叶节点(蓝色所示),并被递归摘要成根节点(橙色所示)。
递归聚类和摘要不仅能捕获广泛的理解(通过根节点),还能捕获多跳问答所需的细粒度细节(通过叶节点)。
应用场景
对于涉及复杂多步推理的多跳问答任务,问题与答案之间通常存在语义鸿沟。因此,使用问题进行搜索往往无法检索到有助于正确答案的相关块。RAPTOR 通过向聊天模型提供更丰富、更具上下文意识和更相关的块进行摘要来解决这一挑战,从而实现整体理解而不丢失粒度细节。
知识图谱也可用于多跳问答任务。详情请参见 构建知识图谱。您可以选择使用其中一种方法或两者结合,但请确保您了解相关的内存、计算和 token 成本。
先决条件
系统的默认聊天模型用于摘要聚类内容。在继续之前,请确保您已正确配置了聊天模型
配置项
RAPTOR 功能默认是禁用的。要启用它,请在您的知识库的 配置 页面上手动打开 使用 RAPTOR 增强检索 的开关。
提示词
以下提示词将递归应用于集群摘要,其中 {cluster_content}
作为内部参数。我们建议您目前保持原样。后续设计会进行更新。
Please summarize the following paragraphs... Paragraphs as following:
{cluster_content}
The above is the content you need to summarize.
最大 tokens
每个生成的摘要块的最大 token 数。默认为 256,最大限制为 2048。
阈值
在 RAPTOR 中,块按其语义相似性进行聚类。阈值 参数设置了块分组所需的最低相似性。
默认为 0.1,最大限制为 1。阈值 越高,每个集群中的块越少,反之越多。
最大集群数
创建的最大集群数。默认为 64,最大限制为 1024。
随机种子
一个随机种子。点击 + 更改种子值。