国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

這篇具有很好參考價(jià)值的文章主要介紹了【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

論文信息

論文地址:https://arxiv.org/pdf/1905.05583.pdf

論文年份:2019年05月

論文代碼: https://github.com/xuyige/BERT4doc-Classification

論文引用量:1191 (截止2023-04-28)

論文閱讀前提:熟悉NLP、深度學(xué)習(xí)、Transformer、BERT、多任務(wù)學(xué)習(xí)等。

1. 論文內(nèi)容

現(xiàn)在NLP任務(wù)方式大多都是對(duì)BERT進(jìn)行微調(diào)。例如:我們要做一個(gè)電影評(píng)論情感分類的任務(wù),那就可以直接把BERT拿過來,換上自己的分類頭,然后使用電影評(píng)論的數(shù)據(jù)集進(jìn)行訓(xùn)練,最終就可以得到一個(gè)還不錯(cuò)的模型。(這個(gè)過程稱為微調(diào)(fine-tune)

然而,目前針對(duì)“如何對(duì)BERT進(jìn)行微調(diào)會(huì)比較好”的研究不多(例如學(xué)習(xí)率怎么選擇、應(yīng)該選擇怎樣的策略等等)。所以,該論文就使用分類任務(wù)對(duì)“如何微調(diào)BERT”進(jìn)行了研究,這也是論文的題目“ How to Fine-Tune BERT for Text Classification?”。

2. 論文結(jié)論

該論文通過實(shí)驗(yàn),得出了許多結(jié)論,可以供我們?cè)谑褂肂ERT做特定任務(wù)時(shí)進(jìn)行參考。

2.1 微調(diào)流程

作者通過實(shí)驗(yàn)得出最好的微調(diào)流程為:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?
最好的微調(diào)流程需要三步:

  1. Further Pre-training(更多的預(yù)訓(xùn)練):對(duì)BERT進(jìn)行更多的預(yù)訓(xùn)練。該步驟使用和BERT相同的無監(jiān)督任務(wù)MLM和NSP任務(wù)即可,但注意需要使用目標(biāo)任務(wù)領(lǐng)域的數(shù)據(jù)集。例如:我們的任務(wù)是“電影評(píng)論情感分類”,那么我們第一步應(yīng)該是收集大量的電影評(píng)論(無需帶標(biāo)簽),然后使用MLM和NSP任務(wù)對(duì)BERT進(jìn)行無監(jiān)督訓(xùn)練。
  2. Multi-Task Fine-Tuning(多任務(wù)微調(diào)):使用多任務(wù)對(duì)BERT進(jìn)行微調(diào),即把多個(gè)相關(guān)的任務(wù)放在一起同時(shí)讓BERT學(xué)習(xí)。例如:我們的任務(wù)是“電影評(píng)論情感分類”,為一個(gè)三分類任務(wù)(消極、中性和積極)。同時(shí)我們還有兩個(gè)相關(guān)的任務(wù)“電影類型分類(12個(gè)類別)”和“電影評(píng)分預(yù)測(5分類)”,此時(shí)我們的模型就為BERT加三個(gè)分類頭(分別為3/12/5分類),然后將這三個(gè)任務(wù)的數(shù)據(jù)混在一起同時(shí)給模型學(xué)習(xí)。學(xué)習(xí)過程中根據(jù)當(dāng)前數(shù)據(jù)選擇應(yīng)該用哪個(gè)分類頭。
  3. Single-Task Fine-Tuning(單任務(wù)微調(diào)):對(duì)BERT進(jìn)行單任務(wù)微調(diào)。就是直接使用最終的任務(wù)進(jìn)行有監(jiān)督學(xué)習(xí)。例如:我們的任務(wù)是“電影評(píng)論情感分類”,那么我們就使用帶標(biāo)簽的電影評(píng)論數(shù)據(jù)集對(duì)BERT進(jìn)行訓(xùn)練。

大多數(shù)人可能都忽略了前兩步,直接使用“單任務(wù)微調(diào)”的方式訓(xùn)練BERT,最終的結(jié)果總是差那么點(diǎn)意思。

2.2 微調(diào)策略(Fine-Tuning Strategies)

作者探究了微調(diào)BERT的一些基本的策略,例如學(xué)習(xí)率、長文本處理方式等。最終得出了以下結(jié)論:

  1. 最好的長文本的處理方式是“head+tail”。即當(dāng)輸入文本長度大于510時(shí),截取文本開頭128個(gè)字符和文本末尾382個(gè)字符效果最好。(BERT最多接收512個(gè)token,算上“開始”和“結(jié)束”標(biāo)記,最多接收510個(gè)token)
  2. 最好的特征表示就是最后一層的特征。BERT有12層Transformer Encoder,每層的特征都不太一樣,使用最后一層的特征效果最好。(這個(gè)結(jié)論不需要特別在意,正常BERT使用的就是最后一層的特征)
  3. 最好的學(xué)習(xí)率是 2 e ? 5 2e-5 2e?5,這樣可以有效的避免“災(zāi)難性遺忘(Catastrophic Forgetting)”。(batch_size為32)
  4. BERT越靠近輸入層的學(xué)習(xí)率應(yīng)該越低,反之應(yīng)該越高。衰減因子(decay factors)取0.95較好。即,對(duì)于第12層TransformerEncoder,學(xué)習(xí)率取 2 e ? 5 2e-5 2e?5,第11層取 ( 2 e ? 5 ) ? 0.95 (2e-5) * 0.95 (2e?5)?0.95,第10層取 ( 2 e ? 5 ) ? 0.9 5 2 (2e-5) * 0.95^2 (2e?5)?0.952,以此類推。

2.3 Further Pretrain

Further Pretain是指在正式使用目標(biāo)任務(wù)訓(xùn)練BERT前,先使用該領(lǐng)域(In-domain)的數(shù)據(jù)對(duì)BERT進(jìn)行無監(jiān)督訓(xùn)練(訓(xùn)練BERT時(shí)用的MLM任務(wù)和NSP任務(wù))。

例如:我們要訓(xùn)練一個(gè)電影評(píng)論情感分類模型,那么就是收集一堆無標(biāo)簽的電影評(píng)論數(shù)據(jù),然后使用MLM和NSP任務(wù)對(duì)BERT進(jìn)行無監(jiān)督訓(xùn)練。

作者的得出的結(jié)論如下:

  1. 訓(xùn)練10w個(gè)step效果最好。(更新一次參數(shù)算一個(gè)step)
  2. 選擇預(yù)訓(xùn)練數(shù)據(jù)集時(shí),選擇與目標(biāo)任務(wù)相同領(lǐng)域(In-domain)的數(shù)據(jù)。例如:你的任務(wù)是情感分類,那么預(yù)訓(xùn)練時(shí)就選一些情感分類的數(shù)據(jù)集。
  3. 選擇預(yù)訓(xùn)練數(shù)據(jù)集時(shí),選擇與目標(biāo)任務(wù)相同分布的數(shù)據(jù)。例如:你的任務(wù)是電影評(píng)論情感分類,那么就選電影評(píng)論數(shù)據(jù)。如果你用外賣評(píng)論數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,最終結(jié)果可能還不如不做預(yù)訓(xùn)練。
  4. 當(dāng)訓(xùn)練數(shù)據(jù)較小(few-shot)時(shí),使用Further Pretrain可以得到較好的結(jié)果。
  5. 對(duì)于BERT Large模型同樣能得到以上結(jié)論。

上述就是論文得出的所有結(jié)論,接下來講解論文中所做的實(shí)驗(yàn),若不感興趣,可以不看。

3. 論文實(shí)驗(yàn)介紹

3.1 實(shí)驗(yàn)數(shù)據(jù)集介紹

作者使用了7個(gè)數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),共三種類型,分別為:情感分類(Sentiment Analysis)、問題分類(Question Classification)和主題分類(Topic Classification)。數(shù)據(jù)集如下表:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

其中 IMDb 是二分類的電影評(píng)論情感分類, Yelp是商戶評(píng)論情感分類(類似大眾點(diǎn)評(píng)),Sogou News是中文數(shù)據(jù)集。

3.2 實(shí)驗(yàn)超參數(shù)

Further Pretrain BERT的實(shí)驗(yàn)使用的相關(guān)超參數(shù)如下:

  • BERT:BERT-base(hidden_size:768,12層Transformer,12個(gè)attention head)
  • batch size: 32
  • 最大句子長度(max squence length):128
  • 學(xué)習(xí)率:5e-5
  • train step: 10w
  • warm-up step: 1w

fine-tune BERT的實(shí)驗(yàn)使用的相關(guān)超參數(shù)如下:

  • batch size: 24
  • dropout: 0.1
  • Adam: β 1 = 0.9 , β 2 = 0.999 \beta_1=0.9, \beta_2=0.999 β1?=0.9,β2?=0.999
  • 學(xué)習(xí)率策略:slanted triangular learning rates(一種warmup的學(xué)習(xí)率策略)
  • base learning-rate: 2e-5
  • warm-up proportion: 0.1
  • epoch: 4

3.3 Fine-Tuning策略探索

3.3.1 處理長文本

BERT一次能夠接收最長的token數(shù)量為512,算上開始結(jié)束這兩個(gè)特殊的token,相當(dāng)于一次能夠接收510個(gè)token。

因此,對(duì)于那些token數(shù)超過510的文本,需要對(duì)其進(jìn)行處理。作者實(shí)驗(yàn)了不同的處理方式,包括以下幾種:

  • head-only:只用文本的前510個(gè)token。
  • tail-only:只用文本末尾的510個(gè)token。
  • head+tail:文本的前128token和文本末尾382個(gè)token。(根據(jù)經(jīng)驗(yàn)選的)
  • Hierarchical methods:將長文本分成由510個(gè)token組成的小塊,然后對(duì)每一塊都喂給BERT,得到每一塊的向量表示。最后將這些向量表示融合起來。作者使用了三種融合方式:
    • hier. mean: 平均池化。
    • hier. max: 最大池化。
    • hier. self-attention:使用自注意力的方式融合。

最終的結(jié)果如下表:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

在IMDb和Sogou這兩個(gè)數(shù)據(jù)集上,均為“head+tail”的方式效果最好。

3.3.2 不同層的特征探索

眾所周知,BERT是由12層Transformer Encoder堆疊而成的,每一層的輸出都是輸入的特征向量表示,通常我們使用的是最后一層的輸出作為輸入的最終特征,然后將其送給分類頭進(jìn)行預(yù)測。

而作者在想,用最后一層的Transformer Encoder作為特征向量真的就最好嗎?所以它就使用每一層的特征向量進(jìn)行了實(shí)驗(yàn),最終得到如下表結(jié)果:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

實(shí)驗(yàn)代碼在codes/fine-tuning/modeling_last_concat_avg.py

最終實(shí)驗(yàn)表示使用最后一層的Transformer特征效果最好,這和預(yù)期的一樣。

TODO:論文中的 First/Last 4 Layers + concat/mean/max 表示什么意思我也不太清楚。論文沒有解釋,且提供的代碼里也沒有找到關(guān)于它們的影子。

3.3.3 學(xué)習(xí)率探索(災(zāi)難性遺忘探索)

災(zāi)難性遺忘(Catastrophic forgetting)是指預(yù)訓(xùn)練模型在學(xué)習(xí)新的知識(shí)后把過去老的知識(shí)給忘了。這是遷移學(xué)習(xí)中常見的一個(gè)問題。

通常該問題是因?yàn)閷W(xué)習(xí)率太大引起的。學(xué)習(xí)率太大會(huì)導(dǎo)致災(zāi)難性遺忘,學(xué)習(xí)率太小又會(huì)無法學(xué)會(huì)新的知識(shí),所以要學(xué)選擇一個(gè)合適的學(xué)習(xí)率。

作者在IMDb數(shù)據(jù)集上選擇不同學(xué)習(xí)率進(jìn)行了實(shí)驗(yàn):

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

最終作者得出結(jié)論:當(dāng)學(xué)習(xí)率為2e-5時(shí),模型收斂最好,且不容易出現(xiàn)災(zāi)難性遺忘問題。

3.3.4 不同層使用不同學(xué)習(xí)率

通常,越靠近輸出層的網(wǎng)絡(luò)應(yīng)使用較高的學(xué)習(xí)率,所以作者探索了一下應(yīng)該如何為BERT的每一層設(shè)計(jì)學(xué)習(xí)學(xué)習(xí)率。

作者使用的方式為根據(jù)衰減因子 ξ \xi ξ 進(jìn)行學(xué)習(xí)率逐層衰減。例如,學(xué)習(xí)率取2e-5,衰減因子取0.95,則第12層的Transformer使用 2e-5 的學(xué)習(xí)率,第11層學(xué)習(xí)率為 (2e-5)*0.95 ,第10層為 (2e-5)*0.952,第9層為 (2e-5)*0.953,依次類推。

作者的實(shí)驗(yàn)結(jié)果如下:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

實(shí)驗(yàn)結(jié)論為:學(xué)習(xí)率取2e-5,衰減因子為0.95時(shí)效果最好。

3.2 Further Pretraining探索

作者探索了如何進(jìn)行Further Pretrain效果最好。

3.2.1 step次數(shù)

既然要對(duì)BERT進(jìn)行更多的預(yù)訓(xùn)練,那訓(xùn)練多少次合適呢?作者在IMDb數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn):

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

結(jié)果顯示,當(dāng)step數(shù)為10w時(shí),效果最好。

BERT-ITPT-FiT為“BERT +withIn-Task Pre-Training + Fine-Tuning”,意思是使用原始的BERT進(jìn)行Further Pretraining,然后再進(jìn)行fine-tune。

3.2.2 使用交叉領(lǐng)域(Cross-Domain)數(shù)據(jù)進(jìn)行Further Pretrain

作者嘗試了若Further Pretrain時(shí)使用交叉領(lǐng)域的數(shù)據(jù)會(huì)不會(huì)好一點(diǎn)呢?

作者的數(shù)據(jù)集有三種任務(wù):情感分類、問題分類和主題分類。他將這三種看做是不同領(lǐng)域(different domain)然后進(jìn)行實(shí)驗(yàn)。

實(shí)驗(yàn)結(jié)果如下表:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?
該表的意思如下:

  • 數(shù)字表示錯(cuò)誤率,錯(cuò)誤率越低表示模型表現(xiàn)越好。
  • 第1行第1列的“4.37”表示使用IMDb數(shù)據(jù)進(jìn)行Further Pretain后在IMDb數(shù)據(jù)集上的表現(xiàn)。
  • 第2行第1列的“5.24”表示使用Yelp P.數(shù)據(jù)集進(jìn)行Further Pretrain后在IMDb數(shù)據(jù)集上的表現(xiàn)
  • 第4行第1列的“4.88”表示在所有的情感分類數(shù)據(jù)集(IMDb+Yelp P.+Yelp F.)上進(jìn)行Further Pretrain后在IMDb上的表現(xiàn)
  • 第11行第1列的“5.18”表示使用所有數(shù)據(jù)集進(jìn)行Further Pretrain后在IMDb上的表現(xiàn)
  • 最后一行第1列的“5.40”不進(jìn)行Further Pretrain,在IMDb上的表現(xiàn)。
  • 其他數(shù)據(jù)同理

從上表可以得出如下結(jié)論:

  1. 使用同一領(lǐng)域(In-domain)的數(shù)據(jù)集對(duì)BERT進(jìn)行Further Pretrain效果會(huì)變好。(圖上的加粗字體基本都在對(duì)角線上)。
  2. 使用交叉領(lǐng)域(Cross-domain)的數(shù)據(jù)集Further Pretrain效果不佳。
  3. 進(jìn)行Further Pretraining時(shí)盡量選擇數(shù)據(jù)是同一分布的。例如:使用Yelp數(shù)據(jù)進(jìn)行Further Pretraining后用在IMDb上的效果比較差,原因可能就是因?yàn)樗麄円粋€(gè)是商戶評(píng)論,一個(gè)是電影評(píng)論,數(shù)據(jù)分布差的比較大。

3.2.3 比較不同的模型與BERT微調(diào)策略

作者比較了一些其他模型和使用不同BERT訓(xùn)練策略的結(jié)果,如下表:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

數(shù)字表示錯(cuò)誤率,越低越好。Avg為相比BERT-Feat,錯(cuò)誤率下降的平均比率。

其他模型就不介紹了,不是重點(diǎn)。作者使用的BERT策略如下:

  • BERT-FeatBERT as Features. 應(yīng)該是指不訓(xùn)練BERT,只訓(xùn)練后面的分類頭。
  • BERT-FiTBERT+FineTuning. 對(duì)BERT進(jìn)行微調(diào)。應(yīng)該是直接使用目標(biāo)任務(wù)的數(shù)據(jù)進(jìn)行單任務(wù)訓(xùn)練
  • BERT-ITPT-FiTBERT+withIn-Task Pre-Training+Fine-Tuning。首先對(duì)BERT使用目標(biāo)任務(wù)的數(shù)據(jù)進(jìn)行Further Pretrain,然后再使用目標(biāo)任務(wù)進(jìn)行微調(diào)。例如:IMDb先使用IMDb的數(shù)據(jù)進(jìn)行Further Pretrain,再使用IMDb數(shù)據(jù)進(jìn)行FineTune。
  • BERT-IDPT-FiTBERT + In-Domain Pre-Training + Fine-Tuning。先使用In-Domain的數(shù)據(jù)集進(jìn)行Further Pretrain,然后再使用目標(biāo)任務(wù)數(shù)據(jù)進(jìn)行單任務(wù)訓(xùn)練。例如:IMDb先使用情感分類任務(wù)的數(shù)據(jù)(IMDb+Yelp P+Yelp F)進(jìn)行Further Pretraining,然后在使用IMDb數(shù)據(jù)進(jìn)行FineTune.
  • BERT-CDPT-FiTBERT + Cross-Domain Pre-Training + Fine-Tuning。先使用Cross-Domain的數(shù)據(jù)進(jìn)行Further Pretrain,然后再使用目標(biāo)任務(wù)數(shù)據(jù)進(jìn)行單任務(wù)訓(xùn)練。例如:IMDb先使用問題分類的數(shù)據(jù)(TREC+Yah A+AG)的數(shù)據(jù)進(jìn)行Further Pretraining,然后在使用IMDb數(shù)據(jù)集進(jìn)行FineTune。

最終的出的結(jié)論為:BERT-IDPT-FiT效果最好。這和上面的實(shí)驗(yàn)結(jié)論也一致。

3.3 多任務(wù)微調(diào)探索

通常,多任務(wù)訓(xùn)練可以讓模型學(xué)會(huì)更加通用的特征表示,使模型的泛化性更強(qiáng),提高模型的性能。

作者也對(duì)多任務(wù)進(jìn)行了探索。作者使用IMDb、Yelp P、AG、DBP四個(gè)數(shù)據(jù)集進(jìn)行多任務(wù)學(xué)習(xí)。

多任務(wù)就是同時(shí)學(xué)習(xí)多個(gè)任務(wù)。對(duì)于作者的實(shí)驗(yàn)來說,就是使用一個(gè)BERT,但為四個(gè)數(shù)據(jù)集分別使用不同的分類頭(它們的類別數(shù)不一樣,當(dāng)然就算一樣也肯定是不同的分類頭),然后將四個(gè)數(shù)據(jù)集的數(shù)據(jù)混到一塊進(jìn)行學(xué)習(xí)。

最終的結(jié)果如下表:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

  • BERT-MFiT-FiTBERT+Multi-task Fine-Tuning+FineTuning。即先使用Multi-task對(duì)模型進(jìn)行FineTune,然后再使用目標(biāo)任務(wù)對(duì)模型進(jìn)行FineTune。例如:對(duì)于IMDb來說,就是先使用“IMDb+Yelp P+AG+DBP”數(shù)據(jù)集進(jìn)行MultiTask訓(xùn)練,然后再使用IMDb數(shù)據(jù)集進(jìn)行FineTune。
  • BERT-CDPT-MFiT-FiTBERT + Cross-Domain Pre-Training +Multi-task Fine-Tuning+ Fine-Tuning。即先進(jìn)行Cross-Domain的Further Pretrain,在進(jìn)行MultiTask訓(xùn)練,最后再進(jìn)行單任務(wù)訓(xùn)練。例如,對(duì)于IMDb來說,就是先使用“IMDb+Yelp P+AG+DBP”數(shù)據(jù)集對(duì)BERT進(jìn)行Further Pretraining,然后再使用“IMDb+Yelp P+AG+DBP”對(duì)模型進(jìn)行MultiTask訓(xùn)練,最后在使用IMDb數(shù)據(jù)集進(jìn)行FineTune。

這里為什么沒有“BERT-IDPT-MFiT-FiT”?這是因?yàn)樽髡哌x用的這四個(gè)數(shù)據(jù)集屬于Cross-Domain的,如果要做In-Domain的實(shí)驗(yàn),就不是這組數(shù)據(jù)了。作者沒做相應(yīng)的實(shí)驗(yàn)。

作者相應(yīng)的部分實(shí)驗(yàn)代碼如下(codes/fine-tuning/modeling_multitask.py):

class BertForSequenceClassification(nn.Module):
	...
    def __init__(self, config, num_labels):
        super(BertForSequenceClassification, self).__init__()
        self.bert = BertModel(config)
        self.dropout = nn.Dropout(config.hidden_dropout_prob)
        self.classifier_1 = nn.Linear(config.hidden_size, 2)  # IMDb數(shù)據(jù)的分類頭
        self.classifier_2 = nn.Linear(config.hidden_size, 2)  # Yelp數(shù)據(jù)的分類頭
        self.classifier_3 = nn.Linear(config.hidden_size, 4)  # AG數(shù)據(jù)的分類頭
        self.classifier_4 = nn.Linear(config.hidden_size, 14) # DBP數(shù)據(jù)的分類頭
        ...

    def forward(self, input_ids, token_type_ids, attention_mask, labels=None, dataset_labels=None):
    	# 訓(xùn)練過程中,每個(gè)step過來的一批數(shù)據(jù)是IMDb、Yelp P、AG、DBP的其中一個(gè)。
        _, pooled_output = self.bert(input_ids, token_type_ids, attention_mask)
        pooled_output = self.dropout(pooled_output)
        # 若數(shù)據(jù)是IMDb,則使用classifier_1分類頭
        if dataset_labels[0].item()==1:logits = self.classifier_1(pooled_output)
        # 若數(shù)據(jù)是Yelp,則使用classifier_2分類頭
        if dataset_labels[0].item()==2:logits = self.classifier_2(pooled_output)
        # 若數(shù)據(jù)是AG,則使用classifier_3分類頭
        if dataset_labels[0].item()==3:logits = self.classifier_3(pooled_output)
        # 若數(shù)據(jù)是DBP,則使用classifier_4分類頭
        if dataset_labels[0].item()==4:logits = self.classifier_4(pooled_output)
        if labels is not None:
            loss_fct = CrossEntropyLoss()
            loss = loss_fct(logits, labels)
            return loss, logits
        else:
            return logits

3.4 小樣本探索

通常我們的目標(biāo)任務(wù)的訓(xùn)練數(shù)據(jù)集都是比較少的,作者針對(duì)這種情況做了對(duì)比實(shí)驗(yàn)。

作者的實(shí)驗(yàn)為:只使用IMDb數(shù)據(jù)集的一部分(例如10%),然后進(jìn)行BERT-FiTBERT-ITPT-FiT的對(duì)比實(shí)驗(yàn)。

結(jié)果如下圖:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

從結(jié)果中可以看到,但只取0.4%的IMDb數(shù)據(jù)集時(shí),做withIn-task Pretraining和不做差距還是挺大的。不過隨著數(shù)據(jù)集的增大,差距越來越小,不過總歸是有差距。

實(shí)驗(yàn)結(jié)論為:當(dāng)訓(xùn)練數(shù)據(jù)較小(few-shot)時(shí),使用Further Pretrain可以得到較好的結(jié)果。

3.5 對(duì)BERT-Large使用Further Pretraining

上面的實(shí)驗(yàn)已經(jīng)證明了對(duì)BERT-base使用Further Pretraining是有效果的,但對(duì)BERT-Large是否還有同樣的效果呢?作者也做了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如下表:

【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?

從實(shí)驗(yàn)結(jié)果看,BERT-Large增加ITPT后同樣可以減小錯(cuò)誤率。

4. 總結(jié)

作者中了一系列實(shí)驗(yàn)總結(jié)出微調(diào)BERT的一套方法論,即先進(jìn)行In-Domain的Further Pretraining,然后進(jìn)行多任務(wù)學(xué)習(xí),最后再使用目標(biāo)任務(wù)進(jìn)行單任務(wù)微調(diào)。并且作者還對(duì)這些步驟的長文本處理、學(xué)習(xí)率選擇等做了一些實(shí)驗(yàn)指導(dǎo)。文章來源地址http://www.zghlxwxcb.cn/news/detail-464874.html

到了這里,關(guān)于【論文解讀】(如何微調(diào)BERT?) How to Fine-Tune BERT for Text Classification?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 對(duì)Stable Diffusion做fine-tune時(shí)遇見的bug

    ?由于我的顯卡比較垃圾(3050),加載模型時(shí)都用的 ?后來用下列方式保存模型: 報(bào)了錯(cuò): 在網(wǎng)上查到的各種方法都無法解決,折騰了一天后(想紫砂),又審視了一下這句話,意思是\\\"dtype\\\"這種類型不能JSON序列化,我的理解是,因?yàn)槲业哪P偷膁type=float16,因此不能用這種方式

    2024年02月12日
    瀏覽(23)
  • OpenAI LLM 應(yīng)用最佳實(shí)踐:提示詞工程、Fine-Tune、RAG

    OpenAI LLM 應(yīng)用最佳實(shí)踐:提示詞工程、Fine-Tune、RAG

    一、背景 本文介紹了 2023 年 11 月 OpenAI DevDay 中的一個(gè)演講,演講者為 John Allard 和 Colin Jarvis。演講中,作者對(duì) LLM 應(yīng)用落地過程中遇到的問題和相關(guān)改進(jìn)方案進(jìn)行了總結(jié)。雖然其中用到的都是已知的技術(shù),但是進(jìn)行了很好的總結(jié)和串聯(lián),并探索了一條改進(jìn) LLM 應(yīng)用的切實(shí)可行

    2024年03月11日
    瀏覽(29)
  • 使用 Docker 和 Alpaca LoRA 對(duì) LLaMA 65B 大模型進(jìn)行 Fine-Tune

    使用 Docker 和 Alpaca LoRA 對(duì) LLaMA 65B 大模型進(jìn)行 Fine-Tune

    這篇文章中,我們來聊聊如何使用兩張顯卡來進(jìn)行 LLaMA 65B 大模型的微調(diào)工作,以及如何在一張普通的 4090 家用顯卡上,只花幾個(gè)小時(shí),就能夠完成 7B 模型的微調(diào)。 在之前的幾篇文章里,我們介紹過三種方式運(yùn)行 Meta 開源模型 LLaMA 的 7B、13B 版本: 《模型雜談:使用 IN8 量化

    2023年04月23日
    瀏覽(24)
  • Windows10上使用llama-recipes(LoRA)來對(duì)llama-2-7b做fine-tune

    Windows10上使用llama-recipes(LoRA)來對(duì)llama-2-7b做fine-tune

    剛剛在Windows10上搭建環(huán)境來對(duì)llama2做finetune,里面坑還是挺多的,這里把印象中的坑整理了一下以作備忘。 llama-recipes是meta的開源項(xiàng)目,Github地址為:GitHub - facebookresearch/llama-recipes: Examples and recipes for Llama 2 model llama2同樣也是meta的開源LLM模型,因此用此項(xiàng)目做finetune應(yīng)該是正確

    2024年02月10日
    瀏覽(22)
  • ChatGPT fine tune微調(diào)+prompt介紹

    ChatGPT fine tune微調(diào)+prompt介紹

    首先我們需要安裝openai 安裝好openai以及獲得API key后,我們就可以調(diào)用接口了,首先我們來看下openai能夠提供的模型有什么: 我們可以看出,目前提供的模型有如下: 接下來大概介紹一下我們應(yīng)該怎樣去調(diào)用接口,獲取我們想要的結(jié)果。 prompt=‘a(chǎn) delicious dessert’ , 其中返回

    2024年02月08日
    瀏覽(22)
  • AI大模型預(yù)先學(xué)習(xí)筆記二:prompt提問大模型、langchain使用大模型框架、fine tune微調(diào)大模型

    AI大模型預(yù)先學(xué)習(xí)筆記二:prompt提問大模型、langchain使用大模型框架、fine tune微調(diào)大模型

    1)環(huán)境準(zhǔn)備 ①安裝OpenAI庫 附加 安裝來源 ②生成API key ③設(shè)定本地的環(huán)境變量 ④代碼的準(zhǔn)備工作 ⑤在代碼運(yùn)用prompt(簡單提問和返回) 2)交互代碼的參數(shù)備注 temperature:隨機(jī)性(從0到2可以調(diào)節(jié),回答天馬行空變化大可以選2) model:跟什么類型的model互動(dòng) role:(定義交互

    2024年01月17日
    瀏覽(33)
  • 自然語言基礎(chǔ) IMDB下的 MLM (掩碼模型) & Bert Fine-tuning (模型微調(diào))

    本文是Hugging Face 上 NLP的一篇代碼教程,通過imdb數(shù)據(jù)集, Fine-tuning微調(diào) Bert預(yù)訓(xùn)練模型。 涉及包括: MLM, Bert, Fine-tuning, IMDB, Huggingface Repo 微調(diào)的方式是通過調(diào)整訓(xùn)練模型的學(xué)習(xí)率來重新訓(xùn)練模型,這個(gè)來自 早期 ACL 2018的一篇paper: 《Universal Language Model Fine-tuning for Text

    2024年02月15日
    瀏覽(26)
  • BERT論文解讀及實(shí)現(xiàn)(一)

    BERT論文解讀及實(shí)現(xiàn)(一)

    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding There are two steps in our framework: pre-training and fine-tuning . bert由預(yù)訓(xùn)練模型+微調(diào)模型組成。 ① pre-training , the model is trained on unlabeled data over different pre-training tasks. 預(yù)訓(xùn)練模型是在無標(biāo)注數(shù)據(jù)上訓(xùn)練的 ② For fine-tuning, th

    2024年02月13日
    瀏覽(24)
  • 論文解讀:Bert原理深入淺出

    摘取于https://www.jianshu.com/p/810ca25c4502 任務(wù)1:Masked Language Model Maked LM 是為了解決單向信息問題,現(xiàn)有的語言模型的問題在于,沒有同時(shí)利用雙向信息,如 ELMO 號(hào)稱是雙向LM,但實(shí)際上是兩個(gè)單向 RNN 構(gòu)成的語言模型的拼接,由于時(shí)間序列的關(guān)系,RNN模型預(yù)測當(dāng)前詞只依賴前面出

    2024年02月11日
    瀏覽(21)
  • 論文解讀: 2023-Lost in the Middle: How Language Models Use Long Contexts

    論文解讀: 2023-Lost in the Middle: How Language Models Use Long Contexts

    大模型使用的關(guān)鍵在于Prompt,然而大模型存在幻覺現(xiàn)象,如何減少這種現(xiàn)象的發(fā)生成為迫切解決的問題。外部知識(shí)庫+LLM的方法可以緩解大模型幻覺,但是如何撰寫Prompt才能發(fā)揮LLM的性能。下面介紹這篇論文說明上下文信息出現(xiàn)在Prompt什么位置使模型表現(xiàn)最佳,以及上下文文本

    2024年02月17日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包