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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

寫在前面

預(yù)訓(xùn)練(Pretraining)是一個(gè)非常消耗資源的工作,尤其在 LLM 時(shí)代。隨著LLama2的開源,越來越多人都開始嘗試在這個(gè)強(qiáng)大的英文基座模型上進(jìn)行中文增強(qiáng)。但,我們?nèi)绾尾拍鼙WC模型在既學(xué)到「中文知識(shí)」的情況下,又不丟掉原有的「英文知識(shí)」呢?

今天給大家?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.實(shí)驗(yàn)設(shè)定

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

論文中直接使用 Loss 作為評(píng)估指標(biāo),即 Loss 越小,說明在上游(或下游)任務(wù)中的效果越強(qiáng)。

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. 關(guān)鍵結(jié)論

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

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

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

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

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

2.2 學(xué)習(xí)率越大,下游任務(wù)越好,上游任務(wù)越差

為了探究學(xué)習(xí)率對(duì)學(xué)習(xí)效果的影響,作者使用了 4 種不同的最大學(xué)習(xí)率進(jìn)行對(duì)比實(shí)驗(yàn),

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

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

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

PS:解釋一下這里為什么這么關(guān)注訓(xùn)練前期,是因?yàn)樵谡鎸?shí)訓(xùn)練中,我們可能不一定會(huì)增強(qiáng)圖中所示的 250B 這么多的 tokens,尤其是在模型參數(shù)很大的情況中。所以,當(dāng)資源不允許充分訓(xùn)練的情況下,較小的學(xué)習(xí)率和較長(zhǎng)的 warmup 步數(shù)可能是一個(gè)不錯(cuò)的選擇。

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

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

2.3 在初始預(yù)訓(xùn)練中使用 Rewarmup 會(huì)損傷性能

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

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

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

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

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

3. 實(shí)驗(yàn)限制

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

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

因?yàn)閷?shí)驗(yàn)中選用的上游數(shù)據(jù)集 [Pile] 和下游數(shù)據(jù)集 [SlimPajama] 中存在一部分的數(shù)據(jù)重疊,

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

3.2 模型規(guī)模較小

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

不過該團(tuán)隊(duì)打算在接下來的工作中繼續(xù)在 3B 和 7B 的規(guī)模下進(jìn)行嘗試,期待他們最后的實(shí)驗(yàn)結(jié)論。



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

    關(guān)注

    1

    文章

    3073

    瀏覽量

    48587
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1199

    瀏覽量

    24594
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    254

    瀏覽量

    286

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

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【大語言模型:原理與工程實(shí)踐】大語言模型的預(yù)訓(xùn)練

    如此卓越的性能,就是通過其核心能力對(duì)海量數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,再進(jìn)行微調(diào)或?qū)ζ涫裁葱?b class='flag-5'>更好的根據(jù)人類的指令和偏好,發(fā)揮這些性能。隨著語言模型參數(shù)的不斷增加,模型完成各個(gè)任務(wù)的效果也得到了不同程度的提升原模型
    發(fā)表于 05-07 17:10

    新的預(yù)訓(xùn)練方法——MASS!MASS預(yù)訓(xùn)練幾大優(yōu)勢(shì)!

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

    預(yù)訓(xùn)練語言模型設(shè)計(jì)的理論化認(rèn)識(shí)

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

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

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

    Multilingual多語言預(yù)訓(xùn)練語言模型的套路

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

    利用視覺語言模型對(duì)檢測(cè)器進(jìn)行預(yù)訓(xùn)練

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

    什么是預(yù)訓(xùn)練 AI 模型?

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

    什么是預(yù)訓(xùn)練AI模型?

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

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

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

    基于一個(gè)完整的 LLM 訓(xùn)練流程

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

    KUKA機(jī)器人CONTINUE指令介紹

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

    基于生成模型的預(yù)訓(xùn)練方法

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

    預(yù)訓(xùn)練模型的基本原理和應(yīng)用

    預(yù)訓(xùn)練模型(Pre-trained Model)是深度學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域中的一個(gè)重要概念,尤其是在自然語言處理(NLP)和計(jì)算機(jī)視覺(CV)等領(lǐng)域中得到了廣泛應(yīng)用。預(yù)訓(xùn)練模型指的是在大
    的頭像 發(fā)表于 07-03 18:20 ?1861次閱讀

    大語言模型的預(yù)訓(xùn)練

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

    預(yù)訓(xùn)練和遷移學(xué)習(xí)的區(qū)別和聯(lián)系

    預(yù)訓(xùn)練和遷移學(xué)習(xí)是深度學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域中的兩個(gè)重要概念,它們?cè)谔岣吣P托阅?、減少訓(xùn)練時(shí)間和降低對(duì)數(shù)據(jù)量的需求方面發(fā)揮著關(guān)鍵作用。本文將從定義、原理、應(yīng)用、區(qū)別和聯(lián)系等方面詳細(xì)探討預(yù)
    的頭像 發(fā)表于 07-11 10:12 ?587次閱讀