文本分塊哪家強?LumberChunker、語義分塊、段落級、循環分塊、HyDE、命題級
檢索增強生成(RAG)系統通過將模型生成與上下文相關文檔相結合來提高信息的準確性,文本內容如何分割成“塊(chunk)”對檢索質量有顯著影響。
用于問答實驗的RAG Pipeline,一些tricks,混合檢索:BM25-Top3、密集檢索-Top15,BM25的Top1排在前面,Top2-3排在最后;大模型重排序:如果上下文包含六個或更多塊,從中間點開始反轉塊的順序。
LumberChunker方法利用LLM動態地將文檔分割成語義獨立的塊。這種方法基于一個前提:當內容塊的大小可以變化時,檢索效率會提高,因為這樣可以更好地捕捉內容的語義獨立性。LumberChunker通過迭代地提示LLM,在一系列連續段落中識別內容開始轉變的點,從而確保每個塊在上下文中是連貫的,但與相鄰塊有所區別。
LumberChunker遵循一個三步流程。首先,按段落對文檔進行分割。其次,通過追加連續的塊,創建一個組(Gi),直到超過預定義的標記計數θ。最后,將Gi作為上下文輸入到Gemini,Gemini確定顯著內容轉變開始出現的ID,從而定義了Gi+1的開始和當前塊的結束。這個過程在整個文檔中循環重復。
實驗結果表明,LumberChunker在檢索性能上優于其他競爭性基線,特別是在DCG@20指標上,比最接近的競爭者(循環分塊:Recursive Chunking)高出7.37%;其它的競爭者分別是:語義分塊:Semantic Chunking、段落級:Paragraph-Level、HyDE、命題級:Proposition-Level。
在GutenQA(3000個QA)上使用不同粒度的問題和檢索語料庫段落的段落檢索性能(DCG@k和Recall@k)。每列中的最佳得分以粗體突出顯示。
當LumberChunker集成到RAG流程中時,它被證明比其他分割方法和競爭性基線更有效。
LumberChunker不足:
- 盡管它在性能上優于所有基線,但它需要使用LLM,這使得它在成本和速度上比傳統方法更高、更慢。
- LumberChunker專門設計用于敘事文本,對于高度結構化的文本,可能不是最優解決方案。
附錄:
LumberChunker Gemini Prompt示例,用于書籍《小熊維尼》由A. A.米爾恩著
與表2中的例子不同,表3段落中的代詞“He”不能被準確共指,導致命題(propositions)有些模糊。因此,如果用戶問到“埃隆·馬斯克家族中誰曾經做過牛仔表演者?”這樣的問題,一個僅使用命題作為檢索單元的模型將無法提供準確的回答。
在整個RAG流程中,除了Chunking,還涉及Embedding、Indexing等等,PaperAgent團隊RAG專欄進行過詳細的歸納總結:高級RAG之36技(術),可私信留言試看:RAG專欄。
https://github.com/joaodsmarques/LumberChunker
https://arxiv.org/pdf/2406.17526
LumberChunker: Long-Form Narrative Document Segmentation
本文轉載自??PaperAgent??
