微軟亞研院最新研究,有點震撼:
他們開發了一個 Transformer 變體,居然将其 token 拓展到了10 億。
什麽概念?
目前最強的 GPT-4 也才最大支持一次處理32k token,相當于 50 頁文字。
而能夠隻用 1 分鍾看完一本數萬字小說的 Claude,其 token 數也不過 " 才 "100k(10 萬)。
一次性擴展到 10 億,并且這個數字理論上其實還是無限的,這不就意味着:
不久的将來,整個語料庫甚至互聯網都能視爲一個序列?
若真如此,簡直不敢想象。
如何做到?
大預言模型時代,擴展序列長度已成爲一大關鍵需求。
然而,現有的方法要麽難以解決計算複雜性,要麽搞不定模型表達力,導緻長度很受限。
在此,作者提出一個 Transformer 變體:LongNet,它應用了一種叫做 " 膨脹注意力(dilated attention)" 的機制,可以随着距離的增長,讓注意力場(模型感知範圍)呈指數級擴展。
具體而言,dilated attention替代了普通 Transformer 中的注意力機制的,其一般的設計原則是:
讓注意力的分配随着 token 之間距離的增長,呈指數級下降。
如下圖構建塊所示,dilated attention 由一系列用于建模短期和長期依賴關系的注意力 pattern 組成。pattern 的數量可以根據序列長度進行擴展。
實驗證明,dilated attention 能夠産生線性計算複雜度和 token 之間的對數依賴性,從而解決了注意力資源有限,但每一個 token 都可訪問的矛盾。
除此之外,作者還引入了多頭 dilated attention。如下圖所示,不同頭之間的注意力 pattern 會因位置的連續變化而不同。
在最終實現中,LongNet 可轉換爲密集的 Transformer,從而無縫集成Transformer 現有的優化方法(比如内核融合、量化和分布式訓練)。
而利用線性複雜度,LongNet 還可以跨節點并行訓練,利用分布式算法打破計算和内存的限制。
如下圖所示,LongNet 通過劃分序列維度在兩個 GPU 上進行并行化訓練。随着設備數量的增長,計算和通信成本幾乎仍然是不變的。
因此,這使得 LongNet 可以在幾乎恒定的運行時間内有效地将序列長度擴展到 10 億 token(同時無需犧牲較短序列的性能)。
相比之下,普通 Transformer 還在受困于二次複雜度帶來的影響。
實驗評估
作者将 LongNet 與普通 Transformer 和稀疏 Transformer 進行了比較。
三者之間的體系結構差異隻體現在注意力層,模型的序列長度都從 2K 擴展到32K,同時減少 batch size 以保持每個 batch 的 token 數量不變。
對于 LongNet,作者使用 w={2048,4096,8192,16384,32768} 的分段長度,同時擴張比率爲 r={1,2,4,6,12},并實現了稀疏注意力的固定模式,再将稀疏比進行調整爲匹配 LongNet 的計算 flops,從而使實驗公平。
(由于計算限制,隻能将 LongNet 擴展到 32K 序列長度)。
下表爲以上三個模型在 Stack 數據集上的結果,衡量指标是困惑度,測試了每個模型不同的序列長度。
當輸入長度超過模型支持的最大長度時,作者就使用一種最先進的語言模型推理外推方法:分塊因果注意(BCA)。
此外,還去除了絕對位置編碼。
結果表明:
首先,在訓練過程中增加序列長度一般會得到效果更好的語言模型。
其次,在長度遠大于模型支持的情況下,序列長度外推法(推理時)并不适用。
最後,可以看到,LongNet 的每一項數據都優于其他兩個基線,證明了它在語言建模方面的有效性。
除此之外,作者還證明,在擴展語言模型上下文長度時,LongNet 也是一種更有效的方法。
網友:Memery is all you need
不少人看完這項成果總結道,說來說去,還是 "memery is all you need"(手動狗頭)
有點厲害!非常希望它是真的且可複現。
不過,也不乏争議。
比如有人吐槽實驗隻将 LongNet 擴展到了 32k 長度,離 10 億還差的遠呢。
還有不少人稱,方法不算很創新,其實就跟稀疏注意力模式差不多。
作者介紹
本論文作者 7 位,全部來自微軟亞研院。
兩位共同一作:
Jiayu Ding,微軟亞研院實習生,本碩畢業于北京郵電大學計算機科學專業;
馬樹銘,微軟亞研院自然語言計算組研究員,2019 年加入,本碩畢業于北京大學。
通訊作者爲Furu Wei,微軟亞研院自然語言計算組全球研究合夥人,博士畢業于武漢大學,曾任 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/