天天看點

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

作者:量子位

克雷西 發自 凹非寺

量子位 | 公衆号 QbitAI

無需微調,隻要四行代碼就能讓大模型視窗長度暴增,最高可增加3倍!

而且是“即插即用”,理論上可以适配任意大模型,目前已在Mistral和Llama2上試驗成功。

有了這項技術,大模型(LargeLM)就能搖身一變,成為LongLM。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

近日,來自得克薩斯農工大學等機構的華人學者們釋出了全新的大模型視窗擴充方法SelfExtended(簡稱SE)。

在Mistral上,研究者在24k長度的文本中随機插入5位數字讓模型搜尋,結果經SE處理後,呈現出了全綠(通過)的測試結果。

而未經處理的版本,在6k長度時就已經開始“見紅”了。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

GitHub Copilot主創Alex Graveley也激動地宣布,在Llama2上進行的實驗同樣取得了成功。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

在網友的進一步詢問之下,Alex解釋了推文中“work”的具體含義:原先在4k長度時就會出現的噪聲,現在已經消失了。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

而對于SE視窗長度的極限,一位根據論文複現SE代碼的大佬表示,理論上(隻要算力足夠)可以達到無限長。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

那麼,SE具體能達到什麼樣的效果呢?

長文本能力顯著增強

在視窗長度從4096增長到16384的過程中,Llama 2的困惑度從一開始變飙升了兩個數量級。

但使用SE後,文本長度變成了原來的4倍,困惑度卻隻增加了0.4。

而在Mistral上,SE比Mistral自身采用的滑動視窗(SWA)機制帶來了更低的困惑度。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

△左下圖使用對數坐标

在專為長文本模型設計的LongBench資料集中,SE處理後的模型在單/多文檔問答、總結、少樣本學習、代碼等任務中,評分均相比起原始版本有所提升。

特别是在一個名為SOLAR的模型上,處理後的模型在16k長度下的表現比原始版本在4k長度下的表現還要優異。

SOLAR由兩個羊駝掐頭去尾拼接而成,這種拼接的方式,使得其注意力層結構與其他基于Transformer的模型形成了一定差異。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

同時,在GSM等由考試題組成的閉域問答任務中,SE優化後的模型也都相比原始版本取得了更高的平均成績,在Mistral上稍遜于其自身的SWA方法。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

而長文本能力的增強,并沒有帶來模型在短文本上的能力下降。

在HuggingFace的OpenLLM基準下,SE版Llama2的測評成績相比原版均為發生顯著降低。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

目前,SE的開箱即用版支援Phi、Llama和Mistral三種模型,在這三種模型上隻需4行代碼就能進行視窗擴增。

對于其他模型,則需要對代碼進行一定修改。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

那麼,SE是如何給模型增加視窗長度的呢?

兩種注意力機制共同作用

研究者認為,長文本能力是大模型本身就具有的,但需要通過一定方法激發才能實作。

其中最主要的問題是,大模型在處理長文本時,會遇到相對位置編碼超出訓練時所見範圍的情況。

針對這一情況,作者采用了FLOOR注意力機制作為解決政策。

FLOOR對輸入的文本序列進行分組,然後用組數對某一token的絕對位置做取整除,就可以長距離将映射到較短的範圍。

然後,對這些映射值進行注意力運算,就解決了位置編碼超限的問題,實作了長文本的處理。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

而在進行中短長度文本時,仍然使用模型原有的注意力機制,進而確定了模型不會“顧此失彼”,避免因長文本能力的增長導緻短文本能力損失。

此外,在Mistral上複現SE的作者還坦言,目前該模型并不完美,可能存在計算量暴增的問題。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

同時,SE的原作者也說,目前SE方法的确還沒有做過效率方面的優化,未來計劃通過引入FlashAttention機制等政策來解決這一問題。

四行代碼讓大模型上下文暴增3倍,羊駝Mistral都适用

論文位址:

https://arxiv.org/abs/2401.01325

— 完 —

量子位 QbitAI · 頭條号簽約

關注我們,第一時間獲知前沿科技動态

繼續閱讀