Llama架構(gòu)比不上GPT2?神奇token提升10倍記憶?
一個 7B 規(guī)模的語言模型 LLM 能存儲多少人類知識?如何量化這一數(shù)值?訓(xùn)練時間、模型架構(gòu)的不同將如何影響這一數(shù)值?浮點(diǎn)數(shù)壓縮 quantization、混合專家模型 MoE、以及數(shù)據(jù)質(zhì)量的差異 (百科知識 vs 網(wǎng)絡(luò)垃圾) 又將對 LLM 的知識容量產(chǎn)生何種影響?
近日,朱澤園 (Meta AI) 和李遠(yuǎn)志 (MBZUAI) 的最新研究《語言模型物理學(xué) Part 3.3:知識的 Scaling Laws》用海量實(shí)驗(yàn)(50,000 條任務(wù),總計 4,200,000 GPU 小時)總結(jié)了 12 條定律,為 LLM 在不同條件下的知識容量提供了較為精確的計量方法。
作者首先指出,通過開源模型在基準(zhǔn)數(shù)據(jù)集 (benchmark) 上的表現(xiàn)來衡量 LLM 的 scaling law 是不現(xiàn)實(shí)的。例如,LlaMA-70B 在知識數(shù)據(jù)集上的表現(xiàn)比 LlaMA-7B 好 30%,這并不能說明模型擴(kuò)大 10 倍僅僅能在容量上提高 30%。如果使用網(wǎng)絡(luò)數(shù)據(jù)訓(xùn)練模型,我們也將很難估計其中包含的知識總量。
再舉個例子,我們比較 Mistral 和 Llama 模型的好壞之時,到底是他們的模型架構(gòu)不同導(dǎo)致的區(qū)別,還是他們訓(xùn)練數(shù)據(jù)的制備不同導(dǎo)致的?
綜合以上考量,作者采用了他們《語言模型物理學(xué)》系列論文的核心思路,即制造人工合成數(shù)據(jù),通過控制數(shù)據(jù)中知識的數(shù)量和類型,來嚴(yán)格調(diào)控數(shù)據(jù)中的知識比特數(shù) (bits)。同時,作者使用不同大小和架構(gòu)的 LLM 在人工合成數(shù)據(jù)上進(jìn)行訓(xùn)練,并給出數(shù)學(xué)定理,來精確計算訓(xùn)練好的模型從數(shù)據(jù)中學(xué)到了多少比特的知識。
- 論文地址:https://arxiv.org/pdf/2404.05405.pdf
- 論文標(biāo)題:Physics of Language Models: Part 3.3, Knowledge Capacity Scaling Laws
對于這項研究,有人表示這個方向似乎是合理的。我們可以使用非常科學(xué)的方式對scaling law 進(jìn)行分析。
也有人認(rèn)為,這項研究將 scaling law 提升到了不同的層次。當(dāng)然,對于從業(yè)者來說是一篇必讀論文。
研究概覽
作者研究了三種類型的合成數(shù)據(jù):bioS、bioR、bioD。bioS 是使用英語模板編寫的人物傳記,bioR 是由 LlaMA2 模型協(xié)助撰寫的人物傳記(22GB 總量),bioD 則是一種虛擬但可以進(jìn)一步控制細(xì)節(jié)的知識數(shù)據(jù)(譬如可以控制知識的長度、詞匯量等等細(xì)節(jié))。作者重點(diǎn)研究了基于 GPT2、LlaMA、Mistral 的語言模型架構(gòu),其中 GPT2 采用了更新的 Rotary Position Embedding (RoPE) 技術(shù)。
左圖為訓(xùn)練時間充足,右圖為訓(xùn)練時間不足的 scaling laws
上圖 1 簡要概述了作者提出的前 5 條定律,其中左 / 右分別對應(yīng)了「訓(xùn)練時間充足」和 「訓(xùn)練時間不足」兩種情況,分別對應(yīng)了常見知識(如中國首都是北京)和較少出現(xiàn)的知識(如清華物理系成立于 1926 年)。
如果訓(xùn)練時間充足,作者發(fā)現(xiàn),不論使用何種模型架構(gòu),GPT2 或 LlaMA/Mistral,模型的存儲效率均可以達(dá)到 2bit/param—— 即平均每個模型參數(shù)可以存儲 2 比特的信息。這與模型的深度無關(guān),僅與模型大小有關(guān)。換言之,一個 7B 大小的模型,如果訓(xùn)練充足,可以存儲 14B 比特的知識,這超過了維基百科和所有英文教科書中人類知識的總和!
更令人驚訝的是,盡管傳統(tǒng)理論認(rèn)為 transformer 模型中的知識主要存儲在 MLP 層,但作者的研究反駁了這一觀點(diǎn),他們發(fā)現(xiàn)即便移除了所有 MLP 層,模型仍能達(dá)到 2bit/param 的存儲效率。
圖 2:訓(xùn)練時間不足情況下的 scaling laws
然而,當(dāng)我們觀察訓(xùn)練時間不足的情況時,模型間的差異就顯現(xiàn)出來了。如上圖 2 所示,在這種情況下,GPT2 模型能比 LlaMA/Mistral 存儲超過 30% 的知識,這意味著幾年前的模型在某些方面超越了今天的模型。為什么會這樣?作者通過在 LlaMA 模型上進(jìn)行架構(gòu)調(diào)整,將模型與 GPT2 的每個差異進(jìn)行增減,最終發(fā)現(xiàn)是 GatedMLP 導(dǎo)致了這 30% 的損失。
強(qiáng)調(diào)一下,GatedMLP 并不會導(dǎo)致模型的「最終」存儲率變化 —— 因?yàn)閳D 1 告訴我們?nèi)绻?xùn)練充足它們就不會有差。但是,GatedMLP 會導(dǎo)致訓(xùn)練不穩(wěn)定,因此對同樣的知識,需要更長的訓(xùn)練時間;換句話說,對于較少出現(xiàn)在訓(xùn)練集里的知識,模型的存儲效率就會下降。
圖 3:quantization 和 MoE 對模型 scaling laws 的影響
作者的定律 8 和定律 9 分別研究了 quantization 和 MoE 對模型 scaling law 的影響,結(jié)論如上圖 3 所示。其中一個結(jié)果是,將訓(xùn)練好的模型從 float32/16 壓縮到 int8,竟然對知識的存儲毫無影響,即便對已經(jīng)達(dá)到 2bit/param 存儲極限的模型也是如此。
這意味著,LLM 可以達(dá)到「信息論極限」的 1/4—— 因?yàn)?int8 參數(shù)只有 8 比特,但平均每個參數(shù)可以存儲 2 比特的知識。作者指出,這是一個普遍法則(universal law),和知識的表現(xiàn)形式無關(guān)。
最引人注目的結(jié)果來自于作者的定律 10-12(見圖 4)。如果我們的 (預(yù)) 訓(xùn)練數(shù)據(jù)中,有 1/8 來自高質(zhì)量知識庫(如百度百科),7/8 來自低質(zhì)量數(shù)據(jù)(如 common crawl 或論壇對話,甚至是完全隨機(jī)的垃圾數(shù)據(jù))。
那么,低質(zhì)量數(shù)據(jù)是否會影響 LLM 對高質(zhì)量知識的吸收呢?結(jié)果令人驚訝,即使對高質(zhì)量數(shù)據(jù)的訓(xùn)練時間保持一致,低質(zhì)量數(shù)據(jù)的「存在本身」,可能會讓模型對高質(zhì)量知識的存儲量下降 20 倍!即便將高質(zhì)量數(shù)據(jù)的訓(xùn)練時間延長 3 倍,知識儲量仍會降低 3 倍。這就像是將金子丟進(jìn)沙子里,高質(zhì)量數(shù)據(jù)被嚴(yán)重浪費(fèi)了。
有什么辦法修復(fù)呢?作者提出了一個簡單但極其有效的策略,只需給所有的 (預(yù)) 訓(xùn)練數(shù)據(jù)加上自己的網(wǎng)站域名 token 即可。例如,將 Wiki 百科數(shù)據(jù)統(tǒng)統(tǒng)加上 wikipedia.org。模型不需要任何先驗(yàn)知識來識別哪些網(wǎng)站上的知識是「金子」,而可以在預(yù)訓(xùn)練過程中,自動發(fā)現(xiàn)高質(zhì)量知識的網(wǎng)站,并自動為這些高質(zhì)量數(shù)據(jù)騰出存儲空間。
作者提出了一個簡單的實(shí)驗(yàn)來驗(yàn)證:如果高質(zhì)量數(shù)據(jù)都加上一個特殊 token(任何特殊 token 都行,模型不需要提前知道是哪個 token),那么模型的知識存儲量可以立即回升 10 倍,是不是很神奇?所以說對預(yù)訓(xùn)練數(shù)據(jù)增加域名 token,是一個極其重要的數(shù)據(jù)制備操作。
圖 4:預(yù)訓(xùn)練數(shù)據(jù)「知識質(zhì)量不齊」情形下的 scaling laws,模型缺陷以及如何修復(fù)
結(jié)語
作者認(rèn)為,通過合成數(shù)據(jù),計算模型在訓(xùn)練過程中獲得的知識總量的方法,可以為「評估模型架構(gòu)、訓(xùn)練方法和數(shù)據(jù)制備」提供了一套系統(tǒng)且精確的打分體系。這和傳統(tǒng)的 benchmark 比較完全不同,并且更可靠。他們希望這能幫助未來 LLM 的設(shè)計者做出更明智的決策。