Meta-Chunking: 通过逻辑感知学习高效的文本分段

本文是由人大提出的,旨在解决在检索增强生成(RAG)系统中,文本分段这一关键方面被忽视的问题。 具体来说,传统文本分段方法(如基于规则或语义相似性)在捕捉句子间深层语言逻辑联系方面存在不足,导致在知识密集型任务(如开放域问答)中的性能受到影响。 本文通过引入Meta-Chunking的概念及其两种实现策略(边际采样分段和困惑度分段),解决了以下几个关键问题:逻辑连贯性问题:问题:传统文本分段方法往往基于规则或语义相似性,难以捕捉句子间的深层逻辑联系(如因果、过渡、并行和渐进关系)。

Meta-Chunking: 通过逻辑感知学习高效的文本分段

本文是由人大提出的,旨在解决在检索增强生成(RAG)系统中,文本分段这一关键方面被忽视的问题。具体来说,传统文本分段方法(如基于规则或语义相似性)在捕捉句子间深层语言逻辑联系方面存在不足,导致在知识密集型任务(如开放域问答)中的性能受到影响。本文通过引入Meta-Chunking的概念及其两种实现策略(边际采样分段和困惑度分段),解决了以下几个关键问题:

逻辑连贯性问题

  • 问题:传统文本分段方法往往基于规则或语义相似性,难以捕捉句子间的深层逻辑联系(如因果、过渡、并行和渐进关系)。
  • 解决方案:Meta-Chunking通过利用LLMs的强大理解和推理能力,设计了边际采样分段和困惑度分段策略,精确识别文本分段边界,确保分段后的文本块具有逻辑连贯性。

资源和时间效率问题

  • 问题:现有的文本分段方法(如LumberChunker)需要使用高性能的LLMs(如Gemini模型),导致资源和时间成本显著增加。
  • 解决方案:边际采样分段有效减少了文本分段对模型大小的依赖,使推理能力相对较弱的小型语言模型也能胜任此任务。困惑度分段进一步提高了处理效率,实现了资源和时间的节省。

细粒度和粗粒度分段的平衡问题

  • 问题:仅通过调整阈值来控制块大小有时会导致块大小不均匀,难以满足用户的多样化分段需求。
  • 解决方案:提出了一种结合Meta-Chunking与动态合并的策略,旨在灵活应对不同的分段要求,在细粒度和粗粒度文本分段之间取得有效平衡。

长文本处理问题

  • 问题:处理较长文本时,传统的分段方法可能导致上下文连贯性丧失或GPU内存溢出。
  • 解决方案:在困惑度分段中引入键值(KV)缓存机制,在保持句子间逻辑连贯性的前提下计算困惑度,从而优化GPU内存和计算准确性。

跨语言适应性问题

  • 问题:小模型在跨语言适应性方面存在局限性,难以直接应用于多语言文本分段。
  • 解决方案:通过实验验证,中等规模的模型(如1.5B参数级别)在处理不同长度的文本分段时能在性能和效率之间保持出色平衡。

通过上述解决方案,本文提出的Meta-Chunking方法显著提升了基于RAG的单跳和多跳问答性能,同时在效率和成本节约方面表现出优越性能,解决了传统文本分段方法在逻辑连贯性、资源和时间效率、细粒度和粗粒度分段平衡、长文本处理以及跨语言适应性等方面的不足。

Meta-Chunking

图片

Meta-Chunking是一种创新文本分段技术,利用LLMs的能力灵活地将文档分割成逻辑连贯的独立块。方法是基于一个核心原则:允许块大小的可变性,以更有效地捕捉和保持内容的逻辑完整性。这种粒度的动态调整确保每个分段块包含一个完整且独立的表达,从而避免分段过程中逻辑链的中断。这不仅增强了文档检索的相关性,还提高了内容清晰度。

如上图所示,方法整合了传统文本分段策略的优势,如遵守预设块长度约束和确保句子结构完整性,同时在分段过程中增强了保证逻辑连贯性的能力。关键在于引入了一个介于句子级和段落级文本粒度之间的新概念:Meta-Chunking。一个元块由段落中顺序排列的句子集合组成,这些句子不仅共享语义相关性,更重要的是包含深层语言逻辑联系,包括但不限于因果、过渡、并行和渐进关系。这些关系超越了单纯的语义相似性。为了实现这一目标,论文中设计和实现了以下两种策略。

边际采样分段

给定一段文本,初始步骤将其分割成一系列句子,记为,最终目标是进一步将这些句子分割成若干块,形成新集合,每个块包含原始句子的连贯分组。该方法可以表述为:

其中表示二分类决策,表示在和之间形成指令,关于它们是否应合并,其中包含单个句子或多个句子。通过模型获得的概率,我们可以推导出两个选项之间的概率差异。随后,通过将与阈值进行比较,可以得出两个句子是否应分段的结论。对于的设置,我们最初将其赋值为0,然后通过记录历史的并计算其平均值进行调整。

困惑度分段

同样,论文中将文本分割成句子,并使用模型计算每个句子基于前面句子的困惑度:

其中表示中的总token数,表示中的第个token,表示所有在之前的token。为了定位文本分段的关键点,算法进一步分析的分布特征,特别是识别最小值:

这些最小值被视为潜在的块边界。如果文本超出LLMs或设备的处理范围,论文策略性地引入键值(KV)缓存机制。具体来说,文本首先根据token分成若干部分,形成多个子序列。随着困惑度计算的进行,当GPU内存即将超过服务器配置或LLMs的最大上下文长度时,算法适当地移除先前部分文本的KV对,从而不会牺牲太多的上下文连贯性。

困惑度分段的理论分析

LLMs旨在学习一个分布¥Q¥,使其接近样本文本的经验分布。为了量化这两个分布之间的接近程度,通常使用交叉熵作为度量。在离散场景下,相对于的交叉熵正式定义如下:

其中表示经验熵,是和之间的Kullback-Leibler(KL)散度。LLMs的困惑度在数学上定义为:

需要注意的是,由于是不可优化的且有界,真正影响不同LLMs困惑度计算差异的是KL散度,它作为评估分布差异的度量。KL散度越大,两个分布之间的差异越大。此外,高困惑度表明LLMs对真实内容的认知幻觉,这些部分不应被分段。

另一方面,Shannon(1951)通过函数近似任何语言的熵:

其中表示文本序列中的个连续token ,熵可以表示为:

然后,基于论文附录A.1中的证明,对所有成立,可以推导出:

通过上面的公式可以观察到对于大规模文本处理任务,增加上下文长度往往会降低交叉熵或困惑度,这一现象反映了LLMs在捕获更广泛的上下文信息后进行更有效的逻辑推理和语义理解的能力。

实验

论文在十一个数据集上的广泛实验,验证了Meta-Chunking策略在提升基于RAG的单跳和多跳问答性能方面的有效性。具体数据请参看原论文。

论文地址:https://arxiv.org/pdf/2410.12788

github: https://github.com/IAAR-Shanghai/Meta-Chunking

相关资讯

FastRAG:半结构化数据的检索增强生成

本文介绍了FastRAG,一种针对半结构化数据的新型RAG方法。 FastRAG采用模式学习和脚本学习来提取和结构化数据,而无需将整个数据源提交给LLM。 它将文本搜索与知识图谱(KG)查询相结合,以提高在问答任务中检索上下文丰富信息的准确性。

六位一线 AI 工程师分享自身总结,公开大模型应用摸爬滚打一年心得

六位一线 AI 工程师和创业者,把在大模型应用开发上摸爬滚打一整年的心得,全!分!享!了!(奇怪的六一儿童节大礼包出现了)这篇干货长文,一时间成为开发者社区热议的话题。有网友评价为,大模型领域少有的“有操作性”的实用见解,非常值得一读。这 6 位作者来自不同背景,比如有大厂工程师,也有独立开发者,还有咨询顾问。但他们的共同之处,是过去一年里一直在大模型之上构建真实应用程序,而不只是炫酷的 Demo 演示,他们认为:现在正是非机器学习工程师或科学家,也能把 AI 构建到产品中的时候。在他们的一系列分享中,网友热议的亮

低成本快速定制大模型,这次我们来深度探讨下RAG 和向量数据库

当今人工智能领域,最受关注的毋庸置疑是大模型。然而,高昂的训练成本、漫长的训练时间等都成为了制约大多数企业入局大模型的关键瓶颈。这种背景下,向量数据库凭借其独特的优势,成为解决低成本快速定制大模型问题的关键所在。向量数据库是一种专门用于存储和处理高维向量数据的技术。它采用高效的索引和查询算法,实现了海量数据的快速检索和分析。如此优秀的性能之外,向量数据库还可以为特定领域和任务提供定制化的解决方案。科技巨头诸如腾讯、阿里等公司纷纷布局向量数据库研发,力求在大模型领域实现突破。大量中小型公司也借助向量数据库的能力快速进