首個可商用的32k上下文開源大模型「長頸鹿」來了,兩萬詞長文不在話下
依賴于注意力機制的大型語言模型(LLM)通常在訓練時通常使用固定的上下文長度,模型可以處理的輸入序列長度也就有了上限。因此,有很多研究探索了上下文「長度外推(length extrapolation)」方法。
上下文長度外推是指使用較短上下文長度訓練過的 LLM,在較長語上下文長度上進行評估,而不針對長上下文做進一步訓練。其中,大多數研究都側重于修改注意力機制中的位置編碼系統。
現在,來自 Abacus.AI 的研究團隊對現有基于 LLaMA 或 LLaMA 2 模型的上下文長度外推方法進行了廣泛的調查,并提出一種新的 truncation 策略。
- 論文地址:https://arxiv.org/abs/2308.10882
- 項目地址:https://github.com/abacusai/long-context
為了驗證這種 truncation 策略的有效性,該研究發布了三個新的 13B 參數長上下文模型 ——Giraffe,包括兩個基于 LLaMA-13B 訓練而成的模型:上下文長度分別為 4k 和 16k;一個基于 LLaMA2-13B 訓練而成的模型,上下文長度是 32k,該模型也是首個基于 LLaMA2 的 32k 上下文窗口開源 LLM。
Abacus.AI 的 CEO Bindu Reddy 在推特介紹道。
32k 的上下文窗口是什么概念呢?大概就是 24000 個詞,也就是說開源模型 Giraffe 能夠處理一篇 2 萬字的長文。
圖源:https://twitter.com/akshay_pachaar/status/1694326174158143619
方法簡介
隨著上下文長度的擴展,LLM 架構中的注意力機制會讓內存使用量和計算量呈二次增加,因此長度外推方法至關重要。
該研究整理了當前一些有效的上下文長度外推方法,并對它們進行了全面的測試,以確定哪些方法最有效,包括線性縮放、xPos、隨機位置編碼等。并且,研究團隊還提出了幾種新方法,其中一種稱為 truncation 的新方法在測試中非常有效。
首先,評估 LLM 性能的難點之一是選擇正確的評估方法,一個常用的指標是下一個 token 的困惑度,它能夠衡量模型根據上下文預測下一個 token 的能力。然而,研究團隊認為,通常只需根據整個可用上下文中的一小部分,生成合理連貫的文本分布,就能在該指標上獲得良好的結果,因此不適用于長上下文。
為了分析模型在長上下文情況下的性能,該研究使用模型召回(recall)的準確率作為衡量指標,并發布了三個用于評估模型長上下文性能的數據集,分別是 LongChat-Lines、FreeFormQA 和 AlteredNumericQA。其中,LongChat-Lines 用于鍵 - 值檢索任務;FreeFormQA 和 AlteredNumericQA 則是基于自然問題數據集的問答數據集。這三個數據集可以評估 LLM 在鍵 - 值檢索任務和問題解答任務上的能力,模型關注的上下文長度越長,獲得的準確率才會越高。
實驗及結果
研究團隊使用上述三個新數據集對幾種上下文長度外推方法進行了評估實驗。在 LongChat-Lines 上的實驗結果如下表 1 所示:
在 FreeFormQA 和 AlteredNumericQA 數據集上的評估結果如下表 2 和表 3 所示:
總體而言,線性縮放效果最好,truncation 顯示出一些潛力,而 xPos 方法無法在微調中自適應。
感興趣的讀者可以閱讀論文原文,了解更多研究內容。