四行代碼讓大模型上下文暴增3倍,羊駝Mistral都適用
無需微調(diào),只要四行代碼就能讓大模型窗口長度暴增,最高可增加3倍!
而且是“即插即用”,理論上可以適配任意大模型,目前已在Mistral和Llama2上試驗成功。
有了這項技術,大模型(LargeLM)就能搖身一變,成為LongLM。
近日,來自得克薩斯農(nóng)工大學等機構的華人學者們發(fā)布了全新的大模型窗口擴展方法SelfExtended(簡稱SE)。
在Mistral上,研究者在24k長度的文本中隨機插入5位數(shù)字讓模型搜索,結果經(jīng)SE處理后,呈現(xiàn)出了全綠(通過)的測試結果。
而未經(jīng)處理的版本,在6k長度時就已經(jīng)開始“見紅”了。
圖片
GitHub Copilot主創(chuàng)Alex Graveley也激動地宣布,在Llama2上進行的實驗同樣取得了成功。
圖片
在網(wǎng)友的進一步詢問之下,Alex解釋了推文中“work”的具體含義:原先在4k長度時就會出現(xiàn)的噪聲,現(xiàn)在已經(jīng)消失了。
圖片
而對于SE窗口長度的極限,一位根據(jù)論文復現(xiàn)SE代碼的大佬表示,理論上(只要算力足夠)可以達到無限長。
圖片
那么,SE具體能達到什么樣的效果呢?
長文本能力顯著增強
在窗口長度從4096增長到16384的過程中,Llama 2的困惑度從一開始變飆升了兩個數(shù)量級。
但使用SE后,文本長度變成了原來的4倍,困惑度卻只增加了0.4。
而在Mistral上,SE比Mistral自身采用的滑動窗口(SWA)機制帶來了更低的困惑度。
圖片
△左下圖使用對數(shù)坐標
在專為長文本模型設計的LongBench數(shù)據(jù)集中,SE處理后的模型在單/多文檔問答、總結、少樣本學習、代碼等任務中,評分均相比起原始版本有所提升。
特別是在一個名為SOLAR的模型上,處理后的模型在16k長度下的表現(xiàn)比原始版本在4k長度下的表現(xiàn)還要優(yōu)異。
SOLAR由兩個羊駝掐頭去尾拼接而成,這種拼接的方式,使得其注意力層結構與其他基于Transformer的模型形成了一定差異。
同時,在GSM等由考試題組成的閉域問答任務中,SE優(yōu)化后的模型也都相比原始版本取得了更高的平均成績,在Mistral上稍遜于其自身的SWA方法。
圖片
而長文本能力的增強,并沒有帶來模型在短文本上的能力下降。
在HuggingFace的OpenLLM基準下,SE版Llama2的測評成績相比原版均為發(fā)生顯著降低。
圖片
目前,SE的開箱即用版支持Phi、Llama和Mistral三種模型,在這三種模型上只需4行代碼就能進行窗口擴增。
對于其他模型,則需要對代碼進行一定修改。
圖片
那么,SE是如何給模型增加窗口長度的呢?
兩種注意力機制共同作用
研究者認為,長文本能力是大模型本身就具有的,但需要通過一定方法激發(fā)才能實現(xiàn)。
其中最主要的問題是,大模型在處理長文本時,會遇到相對位置編碼超出訓練時所見范圍的情況。
針對這一情況,作者采用了FLOOR注意力機制作為解決策略。
FLOOR對輸入的文本序列進行分組,然后用組數(shù)對某一token的絕對位置做取整除,就可以長距離將映射到較短的范圍。
然后,對這些映射值進行注意力運算,就解決了位置編碼超限的問題,實現(xiàn)了長文本的處理。
圖片
而在處理中短長度文本時,仍然使用模型原有的注意力機制,從而確保了模型不會“顧此失彼”,避免因長文本能力的增長導致短文本能力損失。
此外,在Mistral上復現(xiàn)SE的作者還坦言,目前該模型并不完美,可能存在計算量暴增的問題。
圖片
同時,SE的原作者也說,目前SE方法的確還沒有做過效率方面的優(yōu)化,未來計劃通過引入FlashAttention機制等策略來解決這一問題。