Meta科學家最新採訪揭秘Llama 3.1是如何煉成的
最近,Latent Space發布的播客節目中邀請了Meta的AI科學家Thomas Scialom。他在節目中揭露了Llama 3.1的一些研發思路,並透露了後續Llama 4的更新方向。剛發布的開源「巨無霸」Llama 3.1雖然自備論文,但依舊激起了廣大網友強烈的好奇心和求知欲。
Llama 3.1都使用了哪些數據?其中有多少合成數據?為什麼不使用MoE架構?
後訓練與RLHF流程是如何進行的?模型評估是如何進行的?
我們什麼時候可以見到Llama 4? Meta是否會發展agent?
恰逢Llama 3.1剛發布,Meta科學家就現身播客節目Latent Space,秉持著開源分享的精神,對以上問題都作出了清晰的回答。
受訪者Thomas Scialom現任Meta的人工智慧研究科學家,領導了Llama 2和Llama 3的後訓練,並參與了CodeLlama、Toolformer、Bloom、GAIA等多個計畫。
以下是訪談內容的節錄。
Llama 3.1研發思路
如何決定參數規模
其實LLM的參數規模的選擇需要考慮多種因素,包括scaling law、訓練時間、GPU和硬體的限制等等。
而且,不能只考慮Meta所使用的硬件,還有整個AI社區,並不是每個人都在使用H100,還有很多不同的GPU型號和顯存大小。
再加上,目前廣泛應用於推理階段的量化技術,例如可以用FP16或FP8精度,這會改變推理和訓練/微調成本的比重。
以上這些限制因素,都讓模型規模的選擇成為一個非常具有挑戰性的問題。
整體而言,著重考慮的是目前已有的算力,在Scaling Law和訓練token總量的限制內,我們進行了一些權衡,找到了一個有合適推理效率的平衡點。
之所以做到405B這麼大規模,其實原因很簡單──我們想做最好的模型,一個真正與GPT-4比肩的開源模型。 (現在是GPT-4o了)雖然目前還沒有完全達到目標,但差距正在逐漸縮小。
正如小扎之前宣布的,Meta囤積了越來越多的GPU,因此下一代模型將繼續擴展。
對於網友所說的,無法在家裡運行Llama 3.1,這很有可能是事實。但如果進行FP8量化,依舊可以用128k的上下文視窗在單一節點上運作。
從另一個角度來看,我們還是要寄望開源社群的力量。 Llama 1和Llama 2剛發佈時,大家同樣認為模型太大了,但兩週後它就能在樹莓派上運行了。
雖然不能確定Llama 3.1也會和以前一樣,但透過將模型開源,我們希望可以看到類似的趨勢。
重新審視Scaling Law
我們所熟知的Scaling Law主要關注兩個維度,即模型權重和訓練量,包括訓練時的step、epoch和token總量等等。
基本上,論文的發現就是,模型規模才是重要因素。因此,GPT-3犯了一個錯誤-模型參數量遠遠超出了token總量的要求。
論文網址:https://arxiv.org/pdf/2001.08361
這也正是之後的Chinchilla所發現和強調的,相較於最初的Scaling Law,他們更強調了訓練資料token總量的重要性。
論文網址:https://arxiv.org/pdf/2203.15556
Chinchilla論文想要找到「算力最優化」的訓練方式,認為在有限算力的前提下,存在一個模型參數量和訓練token數的最佳比率。
如果你希望在論文的基準測試中得到最優模型,那麼Chinchilla本身沒有問題;但Meta要發布的旗艦模型還需要更高的推理效率。
因此,我們選擇增加訓練的token數,並增加訓練時長,讓模型達到「過度訓練」的狀態。
這不符合Chinchilla定律,也會付出額外的算力,但我們希望讓模型有更好的推理表現,從而更多地應用於開源社區,因此需要做出一些超越Chinchilla定律的選擇。
事實上,這也是Llama 1的研發人員所做的事。我所說的「不要陷入Chinchilla陷阱」就是這個意思。
模型架構
相較於Llama 2, Llama 3的架構沒有太多變化,但是在擴展資料的規模和品質方面,我們做了許多努力,資料集從2T token增加到15T token。
架構方面,我認為將來會有更多改進,甚至不僅限於Transformer。
目前的Tranformer架構仍然缺乏彈性,例如,我認為對每個token使用等量的算力是沒有意義的,因此還有很多研究的空間。
關於“為什麼不使用MoE架構”,這是我經常聽到的質疑,其中的原因有多個方面。
我認為,稠密模型只是MoE的一個特定變體,你可以把它看作只有一個專家的MoE,因此這只是一個還沒有優化的超參數而已。
但我們目前正在進行一些工作,未來可能會在這個超參數上繼續探索。
關於合成數據
關於數據,我的直覺是,公開網路上充斥著太多文字垃圾,用這些token訓練模型是對算力的浪費。
在為Llama 2抓取資料時,我們就使用Llama作為分類器,用於過濾出高質量的token,並打上主題標籤,例如這段文本是和數學、法律還是政治有關,這樣可以實現主題的均衡和多樣性。
Llama 3的後訓練過程完全沒有使用人工書寫的答案,僅依靠從Llama 2獲得的合成資料。
我非常看好合成數據,而且隨著模型效能提升,情況也會變得更好。
LLM的評估與改進
目前的模型研發有一個趨勢,就是針對基準分數進行模型的後訓練改進。
模型評估是一個開放的研究問題,目前還沒有很好的答案,尤其是面對同一個模型有這麼多的功能。
當你試圖提升模型在某個基準上的分數時,這就不再是一個好的基準了,因為可能會存在過擬合,分數提升未必可以遷移成為相似的能力。
因此,語言模型的評估,尤其是訓練後評估,是一個非常困難的問題。我們嘗試過很多方法,包括使用獎勵模型,model-as-a-judge、使用多樣化的提示、多樣化的基準測試…
我感覺為Llama 2進行評估要比今天容易多了,當時的模型性能比現在相差很多。現在的模型變得如此好,以至於很難找到能擊潰模型的合適prompt,進行性能比較並查看邊界情況。
比較模型的其中一個好方法就是進行多輪RLHF。每次上傳新模型時,只需在所有標註的prompt上進行取樣,讓新舊模型分別回答,再自動計算勝率。
Llama 4與Agent
Meta已經在6月開始訓練Llama 4模型,而且重點可能圍繞著agent技術,並且已經在Toolformer等agent工具上進行了一些工作。
論文網址:https://arxiv.org/pdf/2302.04761
但同時也要意識到,如果沒有一個優秀的指令模型,Toolformer擴充和未來能力也會大大受限,因此我們研發了Llama 2和Llama 3。
此外,Meta也曾在一年前發布GAIA基準,用於評估模型解決現實世界問題的能力。
在這個基準的排行榜上,基於GPT-3的agent系統得分幾乎接近零,但GPT-4驅動的系統就有很好的成績,例如30%~40%,這其中就體現出模型的智力差距。
在我看來,agent的各種能力,例如函數呼叫、遵循複雜指令、預先規劃、多步驟推理等等,和模型的這種智力差距是類似的。
論文地址:https://arxiv.org/pdf/2311.12983
現在有了足夠強大的Llama 3,我將重新專注於agent的構建。如果能實現良好的模型互聯,形成一個複雜的agnent系統,將獲得幾個數量級的擴展,從而實現規劃、回溯、網頁導航、程式碼執行等多種功能。