Danqi Chen 在最新提交在Arxiv上的文章 [1] MeCO指出,如Fig 1所示,只需要在預訓練數據的起始位置加上一個來源信息(URL),然后在最后10%的預訓練中除去這個URL信息進行常規的預訓練,這么一個簡單的操作,對比常規的預訓練過程就能獲得下游任務的性能提升,并且訓練加速33%。
Fig 1. 對于標準的預訓練流程,只需要在預訓練數據中加入該條數據對應的URL信息,然后在最后10%的訓練中『冷卻』,就能取得下游業務的性能收益,并且訓練加速33%。
作者通過實驗發現,這個提升能夠穩定地在多個尺寸的LLM(600M、1.6B、3B、8B)中保持,有理由相信是一個普適的方法。整個方法也很簡單,分為兩個階段:
- 在預訓練前面的90%的訓練過程中,在所有預訓練數據中,在其起始處拼接上
URL:xxxx \n\n
的模板,其中的xxxx
被稱之為源信息(source infomation),是具體表示該數據來自于哪個URL的信息,可以是原始的URL,比如en.wikipedia.org
,也可以是URL hash,甚至可以是第三方模型對該數據的分類信息, 后面的消融實驗中驗證不同源信息方式的效果。注意,在loss計算過程中,只計算原始的文檔token的損失,而對新增的源信息進行掩膜。 - 為了讓預訓練模型能在不帶有源信息的情況下使用,在最后訓練量的10%中,作者將源信息去掉,然后進行常規的預訓練操作,這個過程被稱之為『冷卻』(cooldown)。
作者做了一些試驗驗證該方法的有效性,為了充分驗證,作者選取了10個下游任務數據集,如Fig 2所示,MeCo表示本文提出的方法,采用了160B的token訓練量(比起Standard的240B的訓練量,減少了33%),其中Standard表示采用DCLM預訓練數據集的常規預訓練過程,+Data sel
表示采用了數據篩選方法(采用fastText文本分類器進行文本質量過濾,只選取前70%的樣本,保留約160B的token),而+80B tokens
表示對齊Standard的訓練量,也就是在做了數據篩選的前提下進行繼續訓練,補齊訓練量(筆者注:我個人的理解,文章里面并沒有描述的很清楚)。
從結果來看,如果從預訓練本身的維度,觀察困惑度(PPL)指標,那么+80B tokens
的效果是最好的,但是有趣的是,困惑度指標和下游任務指標并不是強相關的,這個從采用Standard
和+Data sel
的對比上也能看出來。在下游任務中,表現最好的是本文提出的MeCo方法,平均獲得了1個點的提升,而且對比基線采用的240B的訓練量,只需要160B的訓練量,節省了33%的訓練成本。
Fig 2. 作者對在DCLM的160B個token上預訓練一個1.6B參數量的語言模型的主要實驗結果。MeCo顯著優于標準預訓練,并且在使用數據量少33%的情況下,達到了與240B token基線相當的平均性能。有趣的是,驗證困惑度(PPL)與下游性能并不相關。
數據Scaling試驗:
我們再看到Fig 3, 具體看到對比標準預訓練方式和MeCo方式,訓練量和各個數據集下游表現(作者只挑了表現正向的數據集),能看出是隨著訓練量的提升,下游效果也是持續提升的,且MeCo的性能持續優于標準方法,這個證實了這個方法的穩定性,即是不依賴與特定的訓練量后才能發揮效果,而是持續生效。
Fig 3. MeCo在DCLM上的1.6B參數模型訓練過程中下游任務性能表現如下。MeCo的每個checkpoint在末尾都包含了一個使用16B token訓練的冷卻階段。為了公平比較,基線和相應的MeCo checkpoint所使用的總token數是相同的。
模型Scaling試驗:
作者還對比了不同尺度模型的表現,如Fig 4.所示,從結果中能發現在不同尺度的模型(600M、1.6B、3B、8B)上,MeCo這種訓練方式均提供了一致的正收益趨勢。
Fig 4. MeCo在不同模型規模下的結果(除8B模型外,其他模型均在DCLM的160B token上訓練,8B模型由于資源限制在80B token上訓練)。
由于以上的試驗均采用的是DCLM這個預訓練語料,為了探究MeCo是否在其他語料上也能同樣生效,如圖Fig 5所示,作者在C4、RefinedWeb上補充了這個試驗,同樣都能發現MeCo帶來的下游任務的收益。
Fig 5. 在不同預訓練語料庫上應用MeCo的結果(1.6B參數模型,160B token),MeCo在不同預訓練來源上均提供了一致趨勢的收益。
有趣的是,采用了MeCo與訓練后,模型還具有所謂“條件推理”(conditional inference)的能力,如Fig 6所示,只需要在特定的任務下,添加一個適當的URL前綴(這個URL并不需要是一個真實的URL,只需要在語義上能提供一些問題的分類或者需求信息),就能提升下游任務的效果。如Fig 7所示,一個合適的URL能帶來大幅度的下游任務提升,但是一個不合適的url,則會帶來大幅度的性能折損,筆者理解,從某種意義上說,這是一種meta prompt,對整個prompt的調性和類別、需求等進行了約束。
Fig 6. 條件推理的示例:我們可以通過在提示前添加一個URL來對模型進行條件設置。這個URL不需要是一個真實的網址。
Fig 7. MeCo(1.6B參數,160B DCLM token)的零樣本評估,使用不同URL展示了無條件推理與使用URL之間的差異。
作者還做了消融試驗去探討URL前綴的選擇方式,如Fig 8所示,最后發現采用URL是最合適的,采用Full URL會帶來輸入長度的增長,效果沒有明顯變化,而采用了hash的URL則是性能持平(不過如果采用hash的話,條件推理的能力應該就沒有了)。
Fig 8. 對MeCo使用不同元數據的消融實驗。平均結果涵蓋了所有10個任務。
筆者看下來,整篇文章的方法是很簡單的,主要是做了很多試驗去證實這個方法的有效性。從方法本身去看,也從某種意義上說明了對預訓練數據進行某種標簽體系分類的重要性,當然之前很多工作可能會嘗試顯式地進行數據打標簽,并且通過數據配比的方式去影響預訓練,而本文是一種隱式的方式去增加數據的類別信息,也即是增加一個來源信息,嘗試讓模型自己發現某些來源(比如維基百科)的信息可能更為靠譜。這里作者還舉了一個例子,這說明了對于同一個主體Tim Cook
,不同來源的數據差別很大,有些可能是非嚴肅的梗圖,有些可能是新聞信息,如果混淆在一起進行預訓練,會對下游業務帶來困擾(比如下游模型可能會迷惑Tim Cook到底是不是會做飯)。從這個角度去思考,這個方法就是非常合理的,因為來自不同站點的信息調性會有很大差別,作為一種元信息,有必要作為預訓練輸入的一部分參與訓練。
例如,關于蘋果公司首席執行官蒂姆·庫克的網絡文檔,從表情包“蒂姆不再做飯了(Tim doesn’t cook anymore )” 到傳記“蒂姆·庫克是蘋果公司的首席執行官”(Tim Cook is the CEO of Apple )都有。
Reference
[1]. Gao, Tianyu, Alexander Wettig, Luxi He, Yihe Dong, Sadhika Malladi, and Danqi Chen. "Metadata Conditioning Accelerates Language Model Pre-training." arXiv preprint arXiv:2501.01956 (2025). Aka MeCO