1000000000!微軟改進Transformer一次能記住這么多token了
微軟亞研院最新研究,有點震撼:
他們開發(fā)了一個Transformer變體,居然將其token拓展到了10億。
圖片
什么概念?
目前最強的GPT-4也才最大支持一次處理32k token,相當于50頁文字。
而能夠只用1分鐘看完一本數(shù)萬字小說的Claude,其token數(shù)也不過“才”100k(10萬)。
一次性擴展到10億,并且這個數(shù)字理論上其實還是無限的,這不就意味著:
不久的將來,整個語料庫甚至互聯(lián)網(wǎng)都能視為一個序列?
圖片
若真如此,簡直不敢想象。
如何做到?
大預言模型時代,擴展序列長度已成為一大關(guān)鍵需求。
然而,現(xiàn)有的方法要么難以解決計算復雜性,要么搞不定模型表達力,導致長度很受限。
在此,作者提出一個Transformer變體:LongNet,它應用了一種叫做“膨脹注意力(dilated attention)”的機制,可以隨著距離的增長,讓注意力場(模型感知范圍)呈指數(shù)級擴展。
具體而言,dilated attention替代了普通Transformer中的注意力機制的,其一般的設計原則是:
讓注意力的分配隨著token之間距離的增長,呈指數(shù)級下降。
如下圖構(gòu)建塊所示,dilated attention由一系列用于建模短期和長期依賴關(guān)系的注意力pattern組成。pattern的數(shù)量可以根據(jù)序列長度進行擴展。
圖片
實驗證明,dilated attention能夠產(chǎn)生線性計算復雜度和token之間的對數(shù)依賴性,從而解決了注意力資源有限,但每一個token都可訪問的矛盾。
除此之外,作者還引入了多頭dilated attention。如下圖所示,不同頭之間的注意力pattern會因位置的連續(xù)變化而不同。
圖片
在最終實現(xiàn)中,LongNet可轉(zhuǎn)換為密集的Transformer,從而無縫集成Transformer現(xiàn)有的優(yōu)化方法(比如內(nèi)核融合、量化和分布式訓練)。
而利用線性復雜度,LongNet還可以跨節(jié)點并行訓練,利用分布式算法打破計算和內(nèi)存的限制。
如下圖所示,LongNet通過劃分序列維度在兩個GPU上進行并行化訓練。隨著設備數(shù)量的增長,計算和通信成本幾乎仍然是不變的。
圖片
因此,這使得LongNet可以在幾乎恒定的運行時間內(nèi)有效地將序列長度擴展到10億token(同時無需犧牲較短序列的性能)。
圖片
相比之下,普通Transformer還在受困于二次復雜度帶來的影響。
實驗評估
作者將LongNet與普通Transformer和稀疏Transformer進行了比較。
三者之間的體系結(jié)構(gòu)差異只體現(xiàn)在注意力層,模型的序列長度都從2K擴展到32K,同時減少batch size以保持每個batch的token數(shù)量不變。
對于LongNet,作者使用w={2048,4096,8192,16384,32768}的分段長度,同時擴張比率為r={1,2,4,6,12},并實現(xiàn)了稀疏注意力的固定模式,再將稀疏比進行調(diào)整為匹配LongNet的計算flops,從而使實驗公平。
(由于計算限制,只能將LongNet擴展到32K序列長度)。
下表為以上三個模型在Stack數(shù)據(jù)集上的結(jié)果,衡量指標是困惑度,測試了每個模型不同的序列長度。
當輸入長度超過模型支持的最大長度時,作者就使用一種最先進的語言模型推理外推方法:分塊因果注意(BCA)。
此外,還去除了絕對位置編碼。
圖片
結(jié)果表明:
首先,在訓練過程中增加序列長度一般會得到效果更好的語言模型。
其次,在長度遠大于模型支持的情況下,序列長度外推法(推理時)并不適用。
最后,可以看到,LongNet的每一項數(shù)據(jù)都優(yōu)于其他兩個基線,證明了它在語言建模方面的有效性。
除此之外,作者還證明,在擴展語言模型上下文長度時,LongNet也是一種更有效的方法。
圖片
網(wǎng)友:Memery is all you need
不少人看完這項成果總結(jié)道,說來說去,還是“memery is all you need”(手動狗頭)
圖片
圖片
有點厲害!非常希望它是真的且可復現(xiàn)。
圖片
不過,也不乏爭議。
比如有人吐槽實驗只將LongNet擴展到了32k長度,離10億還差的遠呢。
圖片
還有不少人稱,方法不算很創(chuàng)新,其實就跟稀疏注意力模式差不多。
圖片
作者介紹
本論文作者7位,全部來自微軟亞研院。
兩位共同一作:
Jiayu Ding,微軟亞研院實習生,本碩畢業(yè)于北京郵電大學計算機科學專業(yè);
馬樹銘,微軟亞研院自然語言計算組研究員,2019年加入,本碩畢業(yè)于北京大學。
通訊作者為Furu Wei,微軟亞研院自然語言計算組全球研究合伙人,博士畢業(yè)于武漢大學,曾任IBM中國研究院研究員、香港理工大學電子計算系研究助理。
論文地址:https://arxiv.org/abs/2307.02486
參考鏈接:
[1]https://twitter.com/arankomatsuzaki/status/1676765133362675712
[2]https://twitter.com/AlphaSignalAI/status/1677009901334192143?s=20
[3]https://www.reddit.com/r/LocalLLaMA/comments/14rym30/longnet_scaling_transformers_to_1000000000_tokens/