0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何更好地繼續(xù)預訓練(Continue PreTraining)

深度學習自然語言處理 ? 來源:NLP工作站 ? 2023-09-11 16:28 ? 次閱讀

寫在前面

預訓練(Pretraining)是一個非常消耗資源的工作,尤其在 LLM 時代。隨著LLama2的開源,越來越多人都開始嘗試在這個強大的英文基座模型上進行中文增強。但,我們如何才能保證模型在既學到「中文知識」的情況下,又不丟掉原有的「英文知識」呢?

今天給大家?guī)硪黄?Continue Pretraining 的論文(來自何枝大佬,知乎@何枝),Continual Pre-Training of Large Language Models: How to (re)warm your model?

知乎:https://zhuanlan.zhihu.com/p/654463331
paper//arxiv.org/pdf/2308.04014.pdf

1.實驗設定

作者使用一個 410M 大小的模型 Pythia,已經(jīng)在 Pile數(shù)據(jù)上進行過預訓練,然后在下游數(shù)據(jù)集 SlimPajama 上進行微調。

論文中直接使用 Loss 作為評估指標,即 Loss 越小,說明在上游(或下游)任務中的效果越強。

Pythia:https://huggingface.co/EleutherAI/pythia-410m-v0
Pile:https://huggingface.co/datasets/EleutherAI/pile
SlimPajama:https://www.cerebras.net/blog/slimpajama-a-627b-token-cleaned-and-deduplicated-version-of-redpajama

2. 關鍵結論

2.1 warmup 的步數(shù)不會影響最終性能

warmup 是一種 finetune 中常用的策略,指學習率從一個很小的值慢慢上升到最大值。那么,這個「慢慢上升」的階段持續(xù)多久是最好的呢?

作者分別使用訓練步數(shù)的:0%, 0.5%, 1%, 2% 這 4 種不同預熱步數(shù)來進行實驗:9f4c7e86-5079-11ee-a25d-92fbcf53809c.png

從上圖中可以看到:當模型經(jīng)過「充分」訓練后,不管多長的預熱步數(shù)最后的性能都差不多。

但,這種前提是「充分訓練」,如果只看訓練前期的話,使用更長的預熱步數(shù)(黃色的線)。無論是「上游任務」還是「下游任務」,模型的 Loss 都要比其他預熱步數(shù)要低(下游學的快,上游忘的慢)。

2.2 學習率越大,下游任務越好,上游任務越差

為了探究學習率對學習效果的影響,作者使用了 4 種不同的最大學習率進行對比實驗,

此外,還比對了和從頭訓練(from scratch)模型的效果:9f759a78-5079-11ee-a25d-92fbcf53809c.png

9f8cd580-5079-11ee-a25d-92fbcf53809c.png

從圖中可以看到:經(jīng)過充分訓練后,學習率越大(紫色),下游性能最好,上游性能最差(忘得最多)。同樣,我們看前期訓練,盡管紫色線條在最后的 loss 是最低的,但在前期 loss 會增加的非常大,隨后下降。

PS:解釋一下這里為什么這么關注訓練前期,是因為在真實訓練中,我們可能不一定會增強圖中所示的 250B 這么多的 tokens,尤其是在模型參數(shù)很大的情況中。所以,當資源不允許充分訓練的情況下,較小的學習率和較長的 warmup 步數(shù)可能是一個不錯的選擇。

此外,圖中還能看出:未經(jīng)過預訓練的模型(藍色)無論是上游任務還是下游任務,都不如預訓練過的模型效果。

這鼓勵我們今天在進行訓練任務時,最好選擇一個已經(jīng)過預訓練的模型上繼續(xù)訓練(以利用其中的先驗知識)。

2.3 在初始預訓練中使用 Rewarmup 會損傷性能

盡管 warmup 策略在 Finetune 和 Continue Pretraining 中都起到了更好的效果(相較于常量學習率),但是,這建立在「切換了訓練數(shù)據(jù)集(數(shù)據(jù)分布)」的前提下。

作者做了一個實驗,不切換數(shù)據(jù)集,而是繼續(xù)在之前的「預訓練數(shù)據(jù)集(The Pile)」上繼續(xù)訓練:9f9f60e2-5079-11ee-a25d-92fbcf53809c.png

從圖中結果可以發(fā)現(xiàn):無論使用多大學習率的 warmup 策略,效果都不如使用常量學習率。

這進一步證明,在原數(shù)據(jù)集上使用 warmup 接著訓練會造成性能損傷,學習率越大則損傷越大,且這種損傷是無法在后續(xù)的訓練中被找回的。

PS:這里提示我們,當預訓練中遇到了訓練中斷需要繼續(xù)訓練時,我們應該在重新開始訓練時將學習率恢復到中斷之前的狀態(tài)(無論是數(shù)值還是衰減率)。

3. 實驗限制

作者在論文的最后貼出了得出上述結論的一些局限性。

3.1 上下游數(shù)據(jù)分布類似

因為實驗中選用的上游數(shù)據(jù)集 [Pile] 和下游數(shù)據(jù)集 [SlimPajama] 中存在一部分的數(shù)據(jù)重疊,

所以導致上下游數(shù)據(jù)的分布是比較相似的,但在我們真實的訓練任務中,上下游數(shù)據(jù)的差異可能會比這大的多。

3.2 模型規(guī)模較小

論文中所使用的模型規(guī)模為 410M,這和今天人們 7B 起步的 LLM 規(guī)模相差甚遠。

不過該團隊打算在接下來的工作中繼續(xù)在 3B 和 7B 的規(guī)模下進行嘗試,期待他們最后的實驗結論。



聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模型
    +關注

    關注

    1

    文章

    3116

    瀏覽量

    48660
  • 數(shù)據(jù)集

    關注

    4

    文章

    1200

    瀏覽量

    24621
  • LLM
    LLM
    +關注

    關注

    0

    文章

    264

    瀏覽量

    297

原文標題:如何更好地繼續(xù)預訓練(Continue PreTraining)

文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【大語言模型:原理與工程實踐】大語言模型的訓練

    如此卓越的性能,就是通過其核心能力對海量數(shù)據(jù)進行訓練,再進行微調或對其什么型更好的根據(jù)人類的指令和偏好,發(fā)揮這些性能。隨著語言模型參數(shù)的不斷增加,模型完成各個任務的效果也得到了不同程度的提升原模型
    發(fā)表于 05-07 17:10

    新的訓練方法——MASS!MASS訓練幾大優(yōu)勢!

    專門針對序列到序列的自然語言生成任務,微軟亞洲研究院提出了新的訓練方法:屏蔽序列到序列訓練(MASS: Masked Sequence to Sequence Pre-traini
    的頭像 發(fā)表于 05-11 09:34 ?7051次閱讀
    新的<b class='flag-5'>預</b><b class='flag-5'>訓練</b>方法——MASS!MASS<b class='flag-5'>預</b><b class='flag-5'>訓練</b>幾大優(yōu)勢!

    訓練語言模型設計的理論化認識

    Language Model)統(tǒng)一到一個框架中,并且基于它們的優(yōu)勢和缺點,取長補短,提出了一個新的訓練語言模型----MPNet,其混合了MLM和PLM各自的優(yōu)勢,達到了比兩者更好的效果,在Natural
    的頭像 發(fā)表于 11-02 15:09 ?2652次閱讀

    小米在訓練模型的探索與優(yōu)化

    導讀:訓練模型在NLP大放異彩,并開啟了訓練-微調的NLP范式時代。由于工業(yè)領域相關業(yè)務的復雜性,以及工業(yè)應用對推理性能的要求,大規(guī)模
    的頭像 發(fā)表于 12-31 10:17 ?2543次閱讀
    小米在<b class='flag-5'>預</b><b class='flag-5'>訓練</b>模型的探索與優(yōu)化

    Multilingual多語言訓練語言模型的套路

    Facebook在Crosslingual language model pretraining(NIPS 2019)一文中提出XLM訓練多語言模型,整體思路基于BERT,并提出了針對多語言
    的頭像 發(fā)表于 05-05 15:23 ?2909次閱讀

    利用視覺語言模型對檢測器進行訓練

    訓練通常被用于自然語言處理以及計算機視覺領域,以增強主干網(wǎng)絡的特征提取能力,達到加速訓練和提高模型泛化性能的目的。該方法亦可以用于場景文本檢測當中,如最早的使用ImageNet
    的頭像 發(fā)表于 08-08 15:33 ?1337次閱讀

    什么是訓練 AI 模型?

    訓練 AI 模型是為了完成特定任務而在大型數(shù)據(jù)集上訓練的深度學習模型。這些模型既可以直接使用,也可以根據(jù)不同行業(yè)的應用需求進行自定義。 如果要教一個剛學會走路的孩子什么是獨角獸,那么我們首先應
    的頭像 發(fā)表于 04-04 01:45 ?1391次閱讀

    什么是訓練AI模型?

    訓練 AI 模型是為了完成特定任務而在大型數(shù)據(jù)集上訓練的深度學習模型。這些模型既可以直接使用,也可以根據(jù)不同行業(yè)的應用需求進行自定義。
    的頭像 發(fā)表于 05-25 17:10 ?971次閱讀

    PyTorch教程-15.9。訓練 BERT 的數(shù)據(jù)集

    15.9。訓練 BERT 的數(shù)據(jù)集? Colab [火炬]在 Colab 中打開筆記本 Colab [mxnet] Open the notebook in Colab Colab
    的頭像 發(fā)表于 06-05 15:44 ?764次閱讀

    基于一個完整的 LLM 訓練流程

    進群,作者答疑、不錯過直播 1.訓練階段(Pretraining Stage) 工欲善其事,必先利其器。 當前,不少工作選擇在一個較強的基座模型上進行微調,且通常效果不錯(如:[alpaca
    的頭像 發(fā)表于 06-29 10:08 ?1875次閱讀
    基于一個完整的 LLM <b class='flag-5'>訓練</b>流程

    KUKA機器人CONTINUE指令介紹

    CONTINUE 可防止將在下面的程序行中出現(xiàn)的進停止。
    發(fā)表于 07-31 17:32 ?2386次閱讀

    基于生成模型的訓練方法

    with Deep Generative Models,我認為是個挺強挺有趣的自監(jiān)督方面的工作。DreamTeacher 用于從訓練的生成網(wǎng)絡向目標圖像 Backbone 進行知識蒸餾,作為一種通用的
    的頭像 發(fā)表于 08-11 09:38 ?1189次閱讀
    基于生成模型的<b class='flag-5'>預</b><b class='flag-5'>訓練</b>方法

    訓練模型的基本原理和應用

    訓練模型(Pre-trained Model)是深度學習和機器學習領域中的一個重要概念,尤其是在自然語言處理(NLP)和計算機視覺(CV)等領域中得到了廣泛應用。訓練模型指的是在大
    的頭像 發(fā)表于 07-03 18:20 ?2132次閱讀

    大語言模型的訓練

    能力,逐漸成為NLP領域的研究熱點。大語言模型的訓練是這一技術發(fā)展的關鍵步驟,它通過在海量無標簽數(shù)據(jù)上進行訓練,使模型學習到語言的通用知識,為后續(xù)的任務微調奠定基礎。本文將深入探討大語言模型
    的頭像 發(fā)表于 07-11 10:11 ?365次閱讀

    訓練和遷移學習的區(qū)別和聯(lián)系

    訓練和遷移學習是深度學習和機器學習領域中的兩個重要概念,它們在提高模型性能、減少訓練時間和降低對數(shù)據(jù)量的需求方面發(fā)揮著關鍵作用。本文將從定義、原理、應用、區(qū)別和聯(lián)系等方面詳細探討
    的頭像 發(fā)表于 07-11 10:12 ?722次閱讀