清華廈大等提出「無限長上下文」技術,100萬大海撈針全綠,Llama\\Qwen\\MiniCPM都能上分

LLMxMapReduce團隊 投稿

量子位 | 公眾號 QbitAI

大模型的記憶限制被打破了,變相實現「無限長」上下文。

最新成果,來自清華、廈大等聯合提出的LLMxMapReduce長本文分幀處理技術。

LLMxMapReduce技術通過將長上下文切分為多個片段,可以讓模型並行處理多個片段,並從不同片段中提取關鍵信息,然後彙總成為最終的答案。

特別地,團隊提出結構化通信協議和上下文置信度校準機制,實現對跨片段信息更有效的處理。這項技術可以打破大模型的記憶限制,實現上下文長度無限穩定拓展。

LLMxMapReduce技術可作為大模型的長文本上分神器——它對大模型長文本能力具有普遍增強作用,且在文本不斷加長的情況下,仍能保持穩定性能、減少長文本的掉分情況。

比如結合了LLMxMapReduce框架之後的Llama3-70B-Instruct x MapReduce模型得分超越了包含Kimi、GPT-4在內的知名閉源和開源模型以及其他基於Llama3-70B-Instruct的分治方法(即LongAgent和Chain-of-Agents)。

此外,LLMxMapReduce框架展現出較強的通用性,結合Qwen2-72B和MiniCPM3也取得了優異的成績。

LLMxMapReduce無限長文本技術原理

在大數據領域,MapReduce是一種分佈式並行編程框架,具有橫向擴展的數據處理能力。受到MapReduce所體現的「分而治之」思想的啟發,研究人員設計了一種面向大模型的採用分治策略的長文本處理框架,稱為LLMxMapReduce。

通過將長上下文切分為多個片段,LLMxMapReduce讓模型並行處理多個片段,並從不同片段中提取關鍵信息,然後彙總成為最終的答案,從而實現無限長文本。這一技術對模型長文本能力具有普遍增強作用,且在文本不斷加長的情況下,仍能保持穩定性能、減少長文本的掉分情況。

最近,也有一些同類型的分治式長文本處理方法,比如LongAgent和Chain-of-Agents。相比於模型一次處理完整長文檔,這類分治式長文本處理既有優勢,也有不足。

優勢主要在於:長度可擴展,不受限於模型本身的窗口大小,理論上可以支持任意長度輸入。

劣勢主要在於:將一個完整的長文檔切分為多個片段,可能會破壞跨片段的關鍵信息,導致模型根據某個片段「斷章取義」,產生錯誤結論。團隊分析,會被切分片段影響的信息有兩類:

  • 跨片段依賴(Inter-Chunk Dependency):多個片段的信息相互依賴,綜合起來,才能產生一個完整的答案。比如要總結一個事件的時間脈絡,需要從很多個片段中提取關鍵的信息,才能形成一個完整的時間線。

  • 跨片段衝突(Inter-Chunk Conflict):多個片段的信息存在衝突,對於相同的問題,看不同的片段時可能得出不同的結論。比如要問一位導演一生最偉大的作品是什麼,在看他青年時期片段時,得出的是青年時的最大成就,而在看老年時期的片段,又會得出不同的結論。

為瞭解決這兩類問題,LLMxMapReduce分別設計了以下方案:

  • 結構化通信協議(Structured Information Protocol):針對用戶的問題,模型在處理每個片段時,不是僅僅輸出中間答案,而是輸出結構體,包含豐富的相關信息。在Reduce階段,模型根據各個片段輸出的結構化信息,彙總得出最終結果。通過在Map和Reduce階段的結構化通信協議,希望能夠更好地處理跨片段依賴的問題,更好地得出綜合性答案。

{    Extracted Information: XXX # 與問題相關的關鍵信息    Rationale: XXX # 得出中間結果的推理過程    Answer: XXX # 根據當前片段的中間結果    Confidence Score: XXX # 模型對當前片段的結果的置信度,範圍為1到5之間}
  • 上下文置信度校準(In-Context Confidence Calibration):模型在Reduce階段,會參考Confidence的值來彙總不同階段的信息,高Confidence的結果佔據更多的主導權。為了讓模型在處理不同片段時具有一致的置信度評估標準,通過上下文學習的方式讓模型學會一個統一的置信度評估準則,讓置信度信息更加準確可靠,從而幫助模型在Reduce階段更好的處理跨片段衝突問題。

LLMxMapReduce方法的流程圖如下所示:整體分為MapCollapseReduce三個階段。

首先要將長文本切分成多個小片段,這些片段可以並行處理,從而提高效率。

然後在Map階段,使用大模型對每個片段進行分析,然後應用上文所述的結構化通信協議,將提取的信息整合成結構體形式,以便後續處理。

接下來,在Collapse階段,如果所有片段的結果總長度超過模型的最大處理限制,模型將多個結構體壓縮為一個結構體,以減少上下文長度。在處理衝突信息時,模型會考慮置信度進行整合。

最後,在Reduce階段,模型根據壓縮後的信息彙總出最終的答案。它會優先考慮置信度較高的結果,從而確保得到的答案準確無誤。

通過以上工作流程,LLMxMapReduce能夠更有效地處理長文本,避免因切分導致的信息丟失或錯誤結論,從而提高最終結果的準確性。

大模型長文本上分神器

為了驗證LLMxMapReduce技術的有效性,研究人員在業內權威的長文本評測InfiniteBench榜單上對不同模型進行了評測,InfiniteBench是一個綜合性榜單,最長長度超過2000k token。

研究人員和很多方法進行了對比,其中對比的基線共有三類:

閉源模型:

包括GPT-4、Claude 2、Kimi-Chat,其中GPT-4和Claude 2的得分參照InfiniteBench原文,Kimi-Chat為重新測量的得分;

開源模型:

包括YaRN-Mistral、Yi-6B-200K、Yi-34B-200K和Qwen2-72B-Instruct,其中YaRN-Mistral、Yi-6B-200K、Yi-34B-200K的得分參照InfiniteBench原文,Qwen2-72B-Instruct是自行測量的得分;

其他基於分治的長文本處理框架:

包括LongAgent和Chain-of-Agents。這兩個分治框架的不同點在於處理跨片段信息的方式不同。

LongAgent構建了一個Leader Agent來處理跨片段衝突。當不同的Chunk得出的答案不同時,Leader Agent會組織重新閱讀衝突的片段,得出最終答案。

這種重覆閱讀的機制帶來較大的時間開銷,並且LongAgent的通信內容比較單一,Leader Agent處理衝突的能力有限。相比之下,LLMxMapReduce的結構化通信協議包含的信息更為豐富。

Chain-of-Agents通過順序逐一讀取各個Chunk來閱讀全文。

由於沒有顯式地處理衝突信息,可能會導致後續Chunk的信息覆蓋歷史Chunk中的關鍵信息。相比之下,LLMxMapReduce利用校準後的置信度來更好的處理跨片段衝突。

具體實驗結果如下:

可以看到,結合 LLMxMapReduce 框架之後,Llama3-70B-Instruct x MapReduce 以 68.66 的最高平均分數,超越了閉源、開源模型以及其他基於 Llama3-70B-Instruct 的分治策略(即LongAgent和Chain-of-Agents)。

此外,LLMxMapReduce 框架展現出較強的通用性,結合 Qwen2-72B 和 MiniCPM3 也取得了優異的成績。

研究人員同樣分析上下文置信度校準和結構化通信協議對框架性能的影響,在實驗中逐步將這兩個機制移除。實驗結果顯示,去除上下文置信度校準機制導致所有任務的性能下降。如果沒有這兩個機制,性能將會顯著下降。這些結果證明了這兩個機制在 LLMxMapReduce 框架中的關鍵作用。

100萬上下文大海撈針全綠

大海撈針(Needle-in-a-haystack ) 是一個在大模型領域廣泛應用的測試,用於評估大語言模型在處理長文本時識別特定事實的能力。為了評估LLMxMapReduce 框架在處理極長文本方面的表現,研究人員將大海撈針測試的文本長度擴展至1280K個token。

測試結果顯示全綠:

實驗結果表明,採用 LLMxMapReduce 方法的 Llama3-70B-Instruct 能夠有效處理長度達到 1280K token 的序列,展示了該框架在處理超長序列時的卓越能力。

為了評估不同方法在處理長文本時的響應速度,研究人員進行了一項速度實驗,使用 20 個測試示例,每個示例包含128K個token。實驗結果顯示,因為更好地利用了分段並行,LLMxMapReduce 的處理速度比 128K 模型標準解碼更快。

而且,由於結構化通信協議和上下文置信度校準機制不影響框架的並行推理,相比於LongAgent 和 Chain-of-Agents 這兩個同類型的分治框架,LLMxMapReduce 也具有明顯的速度優勢。

論文鏈接:https://arxiv.org/pdf/2410.09342

Github鏈接:https://github.com/thunlp/LLMxMapReduce

InfiniteBench:https://github.com/OpenBMB/InfiniteBench?tab=readme-ov-file