最強(qiáng)LLaMA突然來(lái)襲!只改一個(gè)超參數(shù),實(shí)現(xiàn)上下文3.2萬(wàn)token,多個(gè)任務(wù)打敗ChatGPT、Claude 2

悄無(wú)聲息,羊駝家族“最強(qiáng)版”來(lái)了!
與GPT-4持平,上下文長(zhǎng)度達(dá)3.2萬(wàn)token的LLaMA 2 Long,正式登場(chǎng)。

在性能上全面超越LLaMA 2。

和競(jìng)爭(zhēng)對(duì)手相比,在指令微調(diào)MMLU (5-shot)等測(cè)試集上,表現(xiàn)超過(guò)ChatGPT。

在人類評(píng)估(human evaluation)上甚至優(yōu)于10萬(wàn)token的Claude 2,這個(gè)話題還在Reddit上引發(fā)了討論。

要知道,這些對(duì)比版本中,LLaMA 2 Long使用的最大版本也只有70B,遠(yuǎn)小于其他大模型。
這讓人不禁感慨:Meta確實(shí)還是有兩下子的。

也有人覺(jué)得,這才是最近Meta發(fā)布會(huì)的最大新聞啊,比Meta版ChatGPT要更令人興奮。

論文介紹,LLaMA 2 Long使用了4000億token語(yǔ)料加持下,并進(jìn)行位置編碼修改。
所以LLaMA 2 Long究竟是如何誕生的?
只對(duì)位置編碼進(jìn)行了一個(gè)非常小的改動(dòng)
與LLaMA 2相比,LLaMA 2 Long的變化并不多。
一是訓(xùn)練參數(shù)上,采用了高達(dá)4000億token的數(shù)據(jù)源。
——相反,原始LLaMA 2包含多個(gè)變體,但最多的版本也只有700億。
二是架構(gòu)上,與LLaMA 2保持不變,但對(duì)位置編碼進(jìn)行了一個(gè)非常小的必要修改,以此完成高達(dá)3.2億token的上下文窗口支持。
在LLaMA 2中,它的位置編碼采用的是旋轉(zhuǎn)編碼RoPE方法。
它是目前大模型中應(yīng)用最廣的一種相對(duì)位置編碼,通過(guò)旋轉(zhuǎn)矩陣來(lái)實(shí)現(xiàn)位置編碼的外推。
本質(zhì)上來(lái)說(shuō),RoPE就是將表示單詞、數(shù)字等信息的token embeddings映射到3D圖表上,給出它們相對(duì)于其他token的位置——即使在旋轉(zhuǎn)時(shí)也如此。
這就能夠使模型產(chǎn)生準(zhǔn)確且有效的響應(yīng),并且比其他方法需要的信息更少,因此占用的計(jì)算存儲(chǔ)也更小。
在此,Meta的研究人員通過(guò)對(duì)70億規(guī)模的LLaMA 2進(jìn)行實(shí)驗(yàn),確定了LLaMA 2中的RoPE方法的一個(gè)關(guān)鍵限制:
即,阻止注意力模塊聚集遠(yuǎn)處token的信息。
為此,Meta想出了一個(gè)非常簡(jiǎn)單的破解辦法:
減少每個(gè)維度的旋轉(zhuǎn)角度。
具體而言就是將超參數(shù)“基頻(base frequency) b”從10000增加到500000。
這一改動(dòng)立刻奏效,縮小了RoPE對(duì)遠(yuǎn)端token的衰減效應(yīng),并且在擴(kuò)展LLAMA的上下文長(zhǎng)度上優(yōu)于一項(xiàng)類似的名為“位置插值”的方法(如下圖所示,RoPE PI,衰減效果較為“隱含”)。

Ps. 圖中RoPE表示基線方法,RoPE ABF為Meta此次發(fā)明的新方法,xPos是另一種應(yīng)用了該方法的旋轉(zhuǎn)編碼變體。
一個(gè)問(wèn)題是,通過(guò)上面這個(gè)可視化結(jié)果,Meta觀察到RoPE在長(zhǎng)程區(qū)域出現(xiàn)了較大的“振蕩”,這對(duì)于語(yǔ)言建模來(lái)說(shuō)可能不是個(gè)好消息。
不過(guò),通過(guò)報(bào)告幾種方法在長(zhǎng)序列困惑度和FIRST-SENTENCE-RETRIEVAL兩個(gè)任務(wù)上的表現(xiàn)來(lái)看,問(wèn)題不大。

而且,尤其在后者任務(wù)上,他們提出的RoPE ABF是唯一一個(gè)可以始終保持性能的變體。

在附錄中,Meta還通過(guò)可視化為螺旋圖這一非常有趣的方式,將RoPE ABF與RoPE PI的差異進(jìn)行了理論分析。
結(jié)果是,與RoPE PI相比,RoPE ABF的優(yōu)勢(shì)主要體現(xiàn)在它能以更大的粒度分配嵌入向量(the embedded vectors),從而使模型更容易區(qū)分位置。

此外,他們還觀察到,嵌入向量之間的相對(duì)距離既對(duì)RoPE PI的關(guān)鍵參數(shù)有線性依賴性,也對(duì)RoPE ABF的關(guān)鍵參數(shù)也有對(duì)數(shù)依賴性。
這也就是為什么我們可以很容易地對(duì)基頻這一超參數(shù)“下手”。
最終,LLaMA 2 Long憑借著這一改動(dòng),達(dá)成了3.2萬(wàn)的上下文token,并通過(guò)長(zhǎng)下文連續(xù)預(yù)訓(xùn)練的共同作用,獲得了開(kāi)頭所示的好成績(jī):
除了全面超越LLaMA 2、在特定任務(wù)上超越Claude 2和ChatGPT,Meta也給出了它和一些開(kāi)源長(zhǎng)下文模型的對(duì)比。
結(jié)果也相當(dāng)不賴。

One More Thing
值得一提的是,這個(gè)最新的版本,是用LLaMA2生成的文本內(nèi)容來(lái)進(jìn)行訓(xùn)練的。

官方會(huì)不會(huì)正式發(fā)布這一版本,現(xiàn)在還沒(méi)有更明確的消息,模型的網(wǎng)址也還沒(méi)有找到。
不過(guò)已經(jīng)有人提前興奮起來(lái)了:
這對(duì)可商用微調(diào)大模型來(lái)說(shuō)太有用了!

而在此之前,已經(jīng)有非官方版本實(shí)現(xiàn)了3.2萬(wàn)token上下文,也是開(kāi)源可商用。
“長(zhǎng)頸鹿(Giraffe)”基于13B版本的LLaMA2打造。
研究團(tuán)隊(duì)提出了一種稱為“截?cái)?span>(truncation)”的方法,對(duì)原始RoPE編碼進(jìn)行變換。

llama-2-7b-32k-instruct也可以支持3.2萬(wàn)上下文,模型規(guī)模是7B。
論文:https://arxiv.org/pdf/2309.16039.pdf。
參考鏈接:
[1]https://venturebeat.com/ai/meta-quietly-releases-llama-2-long-ai-that-outperforms-gpt-3-5-and-claude-2-on-some-tasks/。
[2]https://twitter.com/_akhaliq/status/1707569241191285207。
[3]https://www.reddit.com/r/LocalLLaMA/comments/16v0onb/meta_has_released_a_new_paper_llama_2_long_beats/。
[4]https://news.ycombinator.com/item?id=37698604。















 
 
 















 
 
 
 