RAPTOR:递归摘要与树形检索的结合,提升RAG检索性能

RAPTOR:递归摘要与树形检索的结合,提升RAG检索性能

随着 LLM 技术的发展,RAG 的价值也来越明显,可以视作 LLM 应用、落地的一个主要方向。RAG通过结合检索系统和生成模型,在生成回答时先从外部知识库种检索相关信息,辅助 LLM 进行更准确的生成。知识的粒度是多样的、零散的。如何从知识库中精准地检索到相关的知识片段是一个极具挑战性地问题。

概述

在目前构建 RAG 系统的流程中,基本都会涉及到对文档进行分块(有没有不需要进行分块的方法呢?)。现行的方式主要是通过滑动窗口进行分块,调一调分块的大小等。私以为,如何进行分块是一个很重要的问题。

目前检索增强的方法中的一个主要缺点,也是论文主要想解决的问题:检索到的主要是一些短的、连续的块。对于需要阅读整个文档才能回答的问题,检索到的块是不能包含足够的信息的。

论文的出发点很好,也是现在很多 RAG 系统的关键问题。分块的大小、如何分块是一个依赖于用户输入的问题。有些查询,只需要某个、某些块就可以回答,或者只需要块中的某句话就可以回答。而且,文本一般是涵盖多个主题的 ,并且具有层次化的结构

且看作者的解决方法 ------ 作者设计了一个树结构的索引和检索系统 RAPTOR(Recursive Abstractive Processing for Tree-Organized Retrieval),捕捉文本的多尺度,不同层次的信息。通过对文本块进行总结,向 LLM 提供不同层次的信息。

RAPTOR方法介绍

RAPTOR 在文本块的基础上,构建了一个递归的树结构,树中的节点标识不同粒度的语义信息。

基本流程:

  • 分块与嵌入。
    • 按 100 的大小对文本进行分块,如果一个句子长度超过 100,则直接将句子作为一个文本块,保证块内语义的一致性。(如何断句也很重要!)
    • 对文本块进行 embedding。
  • 递归的构建 RAPTOR 树。文本块及其 embedding 作为树的叶子节点。
    • 通过聚类把相似的块聚在一起。
    • 利用语言模型为簇内的文本生成总结,并为总结生成 embedding,也作为树的一个节点。
    • 递归执行上述过程。
  • 查询。即如何检索相关的块。文中提供了两种策略:
    • Tree Traversal Retrieval。遍历树的每一层,剪枝并选择最相关的节点。
    • Collapsed Tree Retrieval。评估整个树中每个节点的相关性,找到最相关的几个。

RAPTOR 树构建流程:

RAPTOR 树的两种查询策略:

整个流程很简洁,方法也很直观。其中比较重要的环节不言而喻:聚类。

文中选择了软聚类的方式:每个节点可以从属于多个簇。直接上来看,如果簇作为话题,那么每个文本块并不是只属于每个话题的,选择软聚类也是很直观的。文中的聚类算法是基于 GMM 聚类的,且聚类前通过 UMAP(Uniform Manifold Approximation and Projection ) 对文本表征进行了降维。论文对聚类的过程进行了一些改造,并通过 BIC(Bayesian Information Criterion)来选择最优簇数,一些细节可以参考原文。

总结

我认为,论文想解决的问题是很关键的,也是构建 RAG 系统中一个必须要考虑的问题。论文的思路很直观,和笔者在相关的实践中可以说是不谋而合。对于一个查询,在不考虑性能和其他问题的条件下,最理想的块应该是文本中与查询最相关的那段话、几句话甚至一句话(这就有点像抽取式的文本摘要了)。 如何找到能够恰好包含答案的文本块是一个很有挑战性的工作,期待找到更好的方案。


相关推荐
几米哥15 小时前
重磅:DeepSeek V3问世,MoE架构引领大模型性价比革命
llm·aigc
yuanlulu21 小时前
mindie推理大语言模型问题及解决方法汇总
人工智能·华为·自然语言处理·nlp·大语言模型·昇腾
爱喝白开水a1 天前
Speckly:基于Speckle文档的RAG智能问答机器人
ai·大模型·llm·智能问答·大模型实战·大模型训练·speckly
OceanBase数据库官方博客1 天前
向量检索+大语言模型,免费搭建基于专属知识库的 RAG 智能助手
人工智能·oceanbase·分布式数据库·向量数据库·rag
西西弗Sisyphus2 天前
RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 安装部署
大模型·rag
岁月月宝贝2 天前
Datawhale冬令营第二期!Task2🌼
llm·ai辅助编程
zaim12 天前
计算机的错误计算(一百九十二)
人工智能·ai·大模型·llm·错误·误差/error·余割/csc
Hoper.J2 天前
微调 BERT:实现抽取式问答
人工智能·深度学习·自然语言处理·llm·bert
开出南方的花2 天前
BiLSTM+CRF实现NLP中的NER任务
人工智能·pytorch·自然语言处理·nlp·ner·条件随机场
知来者逆3 天前
Binoculars——分析证实大语言模型生成文本的检测和引用量按学科和国家明确显示了使用偏差的多样性和对内容类型的影响
人工智能·深度学习·语言模型·自然语言处理·llm·大语言模型