Meta-Chunking:通過邏輯感知學(xué)習(xí)高效的文本分段
本文是由人大提出的,旨在解決在檢索增強(qiáng)生成(RAG)系統(tǒng)中,文本分段這一關(guān)鍵方面被忽視的問題。具體來說,傳統(tǒng)文本分段方法(如基于規(guī)則或語義相似性)在捕捉句子間深層語言邏輯聯(lián)系方面存在不足,導(dǎo)致在知識(shí)密集型任務(wù)(如開放域問答)中的性能受到影響。本文通過引入Meta-Chunking的概念及其兩種實(shí)現(xiàn)策略(邊際采樣分段和困惑度分段),解決了以下幾個(gè)關(guān)鍵問題:
邏輯連貫性問題:
- 問題:傳統(tǒng)文本分段方法往往基于規(guī)則或語義相似性,難以捕捉句子間的深層邏輯聯(lián)系(如因果、過渡、并行和漸進(jìn)關(guān)系)。
- 解決方案:Meta-Chunking通過利用LLMs的強(qiáng)大理解和推理能力,設(shè)計(jì)了邊際采樣分段和困惑度分段策略,精確識(shí)別文本分段邊界,確保分段后的文本塊具有邏輯連貫性。
資源和時(shí)間效率問題:
- 問題:現(xiàn)有的文本分段方法(如LumberChunker)需要使用高性能的LLMs(如Gemini模型),導(dǎo)致資源和時(shí)間成本顯著增加。
- 解決方案:邊際采樣分段有效減少了文本分段對(duì)模型大小的依賴,使推理能力相對(duì)較弱的小型語言模型也能勝任此任務(wù)。困惑度分段進(jìn)一步提高了處理效率,實(shí)現(xiàn)了資源和時(shí)間的節(jié)省。
細(xì)粒度和粗粒度分段的平衡問題:
- 問題:僅通過調(diào)整閾值來控制塊大小有時(shí)會(huì)導(dǎo)致塊大小不均勻,難以滿足用戶的多樣化分段需求。
- 解決方案:提出了一種結(jié)合Meta-Chunking與動(dòng)態(tài)合并的策略,旨在靈活應(yīng)對(duì)不同的分段要求,在細(xì)粒度和粗粒度文本分段之間取得有效平衡。
長(zhǎng)文本處理問題:
- 問題:處理較長(zhǎng)文本時(shí),傳統(tǒng)的分段方法可能導(dǎo)致上下文連貫性喪失或GPU內(nèi)存溢出。
- 解決方案:在困惑度分段中引入鍵值(KV)緩存機(jī)制,在保持句子間邏輯連貫性的前提下計(jì)算困惑度,從而優(yōu)化GPU內(nèi)存和計(jì)算準(zhǔn)確性。
跨語言適應(yīng)性問題:
- 問題:小模型在跨語言適應(yīng)性方面存在局限性,難以直接應(yīng)用于多語言文本分段。
- 解決方案:通過實(shí)驗(yàn)驗(yàn)證,中等規(guī)模的模型(如1.5B參數(shù)級(jí)別)在處理不同長(zhǎng)度的文本分段時(shí)能在性能和效率之間保持出色平衡。
通過上述解決方案,本文提出的Meta-Chunking方法顯著提升了基于RAG的單跳和多跳問答性能,同時(shí)在效率和成本節(jié)約方面表現(xiàn)出優(yōu)越性能,解決了傳統(tǒng)文本分段方法在邏輯連貫性、資源和時(shí)間效率、細(xì)粒度和粗粒度分段平衡、長(zhǎng)文本處理以及跨語言適應(yīng)性等方面的不足。
Meta-Chunking
Meta-Chunking是一種創(chuàng)新文本分段技術(shù),利用LLMs的能力靈活地將文檔分割成邏輯連貫的獨(dú)立塊。方法是基于一個(gè)核心原則:允許塊大小的可變性,以更有效地捕捉和保持內(nèi)容的邏輯完整性。這種粒度的動(dòng)態(tài)調(diào)整確保每個(gè)分段塊包含一個(gè)完整且獨(dú)立的表達(dá),從而避免分段過程中邏輯鏈的中斷。這不僅增強(qiáng)了文檔檢索的相關(guān)性,還提高了內(nèi)容清晰度。
如上圖所示,方法整合了傳統(tǒng)文本分段策略的優(yōu)勢(shì),如遵守預(yù)設(shè)塊長(zhǎng)度約束和確保句子結(jié)構(gòu)完整性,同時(shí)在分段過程中增強(qiáng)了保證邏輯連貫性的能力。關(guān)鍵在于引入了一個(gè)介于句子級(jí)和段落級(jí)文本粒度之間的新概念:Meta-Chunking。一個(gè)元塊由段落中順序排列的句子集合組成,這些句子不僅共享語義相關(guān)性,更重要的是包含深層語言邏輯聯(lián)系,包括但不限于因果、過渡、并行和漸進(jìn)關(guān)系。這些關(guān)系超越了單純的語義相似性。為了實(shí)現(xiàn)這一目標(biāo),論文中設(shè)計(jì)和實(shí)現(xiàn)了以下兩種策略。
邊際采樣分段
給定一段文本,初始步驟將其分割成一系列句子,記為,最終目標(biāo)是進(jìn)一步將這些句子分割成若干塊,形成新集合,每個(gè)塊包含原始句子的連貫分組。該方法可以表述為:
其中表示二分類決策,表示在和之間形成指令,關(guān)于它們是否應(yīng)合并,其中包含單個(gè)句子或多個(gè)句子。通過模型獲得的概率,我們可以推導(dǎo)出兩個(gè)選項(xiàng)之間的概率差異。隨后,通過將與閾值進(jìn)行比較,可以得出兩個(gè)句子是否應(yīng)分段的結(jié)論。對(duì)于的設(shè)置,我們最初將其賦值為0,然后通過記錄歷史的并計(jì)算其平均值進(jìn)行調(diào)整。
困惑度分段
同樣,論文中將文本分割成句子,并使用模型計(jì)算每個(gè)句子基于前面句子的困惑度:
其中表示中的總token數(shù),表示中的第個(gè)token,表示所有在之前的token。為了定位文本分段的關(guān)鍵點(diǎn),算法進(jìn)一步分析的分布特征,特別是識(shí)別最小值:
這些最小值被視為潛在的塊邊界。如果文本超出LLMs或設(shè)備的處理范圍,論文策略性地引入鍵值(KV)緩存機(jī)制。具體來說,文本首先根據(jù)token分成若干部分,形成多個(gè)子序列。隨著困惑度計(jì)算的進(jìn)行,當(dāng)GPU內(nèi)存即將超過服務(wù)器配置或LLMs的最大上下文長(zhǎng)度時(shí),算法適當(dāng)?shù)匾瞥惹安糠治谋镜腒V對(duì),從而不會(huì)犧牲太多的上下文連貫性。
困惑度分段的理論分析
LLMs旨在學(xué)習(xí)一個(gè)分布¥Q¥,使其接近樣本文本的經(jīng)驗(yàn)分布。為了量化這兩個(gè)分布之間的接近程度,通常使用交叉熵作為度量。在離散場(chǎng)景下,相對(duì)于的交叉熵正式定義如下:
其中表示經(jīng)驗(yàn)熵,是和之間的Kullback-Leibler(KL)散度。LLMs的困惑度在數(shù)學(xué)上定義為:
需要注意的是,由于是不可優(yōu)化的且有界,真正影響不同LLMs困惑度計(jì)算差異的是KL散度,它作為評(píng)估分布差異的度量。KL散度越大,兩個(gè)分布之間的差異越大。此外,高困惑度表明LLMs對(duì)真實(shí)內(nèi)容的認(rèn)知幻覺,這些部分不應(yīng)被分段。
另一方面,Shannon(1951)通過函數(shù)近似任何語言的熵:
其中表示文本序列中的個(gè)連續(xù)token ,熵可以表示為:
然后,基于論文附錄A.1中的證明,對(duì)所有成立,可以推導(dǎo)出:
通過上面的公式可以觀察到對(duì)于大規(guī)模文本處理任務(wù),增加上下文長(zhǎng)度往往會(huì)降低交叉熵或困惑度,這一現(xiàn)象反映了LLMs在捕獲更廣泛的上下文信息后進(jìn)行更有效的邏輯推理和語義理解的能力。
實(shí)驗(yàn)
論文在十一個(gè)數(shù)據(jù)集上的廣泛實(shí)驗(yàn),驗(yàn)證了Meta-Chunking策略在提升基于RAG的單跳和多跳問答性能方面的有效性。具體數(shù)據(jù)請(qǐng)參看原論文。
論文地址:https://arxiv.org/pdf/2410.12788
github: https://github.com/IAAR-Shanghai/Meta-Chunking