由麻省理工學院、Meta AI以及卡內基美隆大學研究人員聯手,開發了讓語言模型能夠處理無限長度串流輸入的框架StreamingLLM。這個研究針對將語言模型部署在串流應用程式中,可能遇到的記憶體消耗與泛化長序列等問題提出解決方案,使語言模型串流應用更加可行。

StreamingLLM的研究重點,是想解決在串流應用中部署語言模型的障礙,特別是預期有長時間互動的多輪對話場景可能出現的問題。研究人員指出主要存在兩大挑戰,第一個挑戰,是在解碼階段,快取先前token的鍵(Key)值(Value)狀態會消耗大量的記憶體,第二個挑戰則是現有流行的語言模型,無法泛化適用到超過訓練序列長度的長文本。

在Transformer架構的模型,特別是使用注意力機制時,每個token會被映射為鍵和值兩種狀態,以用於注意力運算。這樣的設計使模型能夠根據每個輸入token的上下文關係,動態地調整輸出結果。

過去有許多研究試圖解決上述挑戰,像是擴展注意力窗口,讓語言模型能夠處理超出預訓練序列長度的長文本。抑或是建立一個固定大小的活動窗口,只關注最近token的鍵值狀態,確保記憶體使用和解碼速度保持固定,但是在序列長度超過快取大小時,這個策略就會失效。另一種策略,則是對於每次生成的token重建鍵值狀態,雖然這個策略很有效,但因為要在窗口內進行兩次注意力計算,因此實際在串流應用可能不實用。

整體來說,最大的挑戰還是落在如何不消耗過多記憶體且不損害模型效能的前提下,處理長文本輸入。StreamingLLM採取的策略是運用注意力下沉現象,研究人員觀察到,在自我迴歸語言模型中,無論特定token和語言建模的相關性如何,對代token分配了大量的注意力。這些獲得高度注意力的token,表現出注意力下沉的現象,即便這些token在語義上不重要,但他們仍然獲得模型強烈關注。

簡單來說,特定token意外地吸引大量的注意力分數,就如同這些token成為注意力的吸引器,獲得模型大部分的關注。因此StreamingLLM透過保留注意力下沉token的鍵值,並與滑動窗口近期token鍵值結合,這種方法可以確保無論輸入序列有多長,模型的注意力計算都能維持穩定。

由於注意力下沉token的存在,可以維持正常的注意力分數分布,使模型在處理非常長的輸入序列時,效能仍然不會受到太大的影響。

StreamingLLM的重要貢獻在於解決當前語言模型在串流應用的困境。雖然在串流應用整合語言模型勢在必行,但由於記憶體效率的限制,以及模型在處理長序列的性能問題,此發展仍備受挑戰。而StreamingLLM的窗口注意力機制,提出一個簡單且高效的解決方案,使語言模型不需微調就可以處理無限長度的文本。

經研究團隊實驗證實,StreamingLLM能夠讓Llama 2、MPT、Falcon和Pythia可靠地處理高達400萬token的文本。而且使用專為注意力下沉設計的token進行預訓練時,更可以進一步提高模型的串流運算效能。重要的是,由於StreamingLLM讓語言模型預訓練窗口大小,與實際文字生成長度脫鉤,在串流應用的語言模型部署方面提供了更多可能性。

熱門新聞

Advertisement