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

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

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

文本分類任務(wù)的Bert微調(diào)trick大全

自然語言處理愛好者 ? 來源:ChallengeHub ? 作者: 致Great ? 2021-07-18 09:49 ? 次閱讀

1

前言

大家現(xiàn)在打比賽對預(yù)訓(xùn)練模型非常喜愛,基本上作為NLP比賽基線首選(圖像分類也有預(yù)訓(xùn)練模型)。預(yù)訓(xùn)練模型雖然很強(qiáng),可能通過簡單的微調(diào)就能給我們帶來很大提升,但是大家會發(fā)現(xiàn)比賽做到后期,bert等預(yù)訓(xùn)練模型煉丹一定程度的時候很難有所提升,分?jǐn)?shù)達(dá)到了瓶頸,這個時候需要針對具體的任務(wù)如何進(jìn)行微調(diào)使用,就涉及到了考經(jīng)驗積累的tricks。

這篇論文做了非常大的充足實驗,為我們提供了寶貴的BERT微調(diào)經(jīng)驗及方法論,當(dāng)需要應(yīng)用BERT到具體的現(xiàn)實任務(wù)上時,可以參照這篇論文提供的調(diào)參路線進(jìn)行優(yōu)化,我在NLP比賽中也屢試不爽,總有一個trick是你的菜,推薦大家讀一讀這篇論文!

2

論文摘要

這篇論文的主要目的在于在文本分類任務(wù)上探索不同的BERT微調(diào)方法并提供一種通用的BERT微調(diào)解決方法。這篇論文從三種路線進(jìn)行了探索:(1) BERT自身的微調(diào)策略,包括長文本處理、學(xué)習(xí)率、不同層的選擇等方法;(2) 目標(biāo)任務(wù)內(nèi)、領(lǐng)域內(nèi)及跨領(lǐng)域的進(jìn)一步預(yù)訓(xùn)練BERT;(3) 多任務(wù)學(xué)習(xí)。微調(diào)后的BERT在七個英文數(shù)據(jù)集及搜狗中文數(shù)據(jù)集上取得了當(dāng)前最優(yōu)的結(jié)果。有興趣的朋友可以點擊上面的實驗代碼,跑一跑玩一玩~

3

論文背景與研究動機(jī)

文本分了是NLP中非常經(jīng)典的任務(wù),就是判斷給定的一個文本所屬的具體類別,比如判斷文本情感是正向還是負(fù)向。盡管已經(jīng)有相關(guān)的系研究工作表明基于大語料預(yù)訓(xùn)練模型可以對文本分類以及其他NLP任務(wù)有非常不錯的效果收益和提升,這樣做的一個非常大的好處我們不需要從頭開始訓(xùn)練一個新的模型,節(jié)省了很大資源和時間。

一種常見的預(yù)訓(xùn)練模型就是我們常見的詞嵌入,比如Word2Vec,Glove向量,或者一詞多義詞向量模型Cove和ELMo,這些詞向量經(jīng)常用來當(dāng)做NLP任務(wù)的附加特征。另一種預(yù)訓(xùn)練模型是句子級別上的向量化表示,如ULMFiT。其他的還有OpenAI GPT及BERT。

雖然BERT在許多自然語言理解任務(wù)上取得了驚人的成績,但是它的潛力還尚未被完全探索出來。很少有研究來進(jìn)一步改進(jìn)BERT在目標(biāo)任務(wù)上的性能。這篇論文的主要目的就是通過探索多種方式最大化地利用BERT來增強(qiáng)其在文本分類任務(wù)上的性能。本篇論文的主要貢獻(xiàn)如下:

(1)提出了一個通用的解決方案來微調(diào)預(yù)訓(xùn)練的 BERT 模型,它包括三個步驟:(1)進(jìn)一步預(yù)訓(xùn)練 BERT任務(wù)內(nèi)訓(xùn)練數(shù)據(jù)或領(lǐng)域內(nèi)數(shù)據(jù);(2) 如果有多個相關(guān)任務(wù)可用,可選用多任務(wù)學(xué)習(xí)微調(diào) BERT;(3) 為目標(biāo)任務(wù)微調(diào)BERT。

(2)本文研究了 BERT 在目標(biāo)任務(wù)上的微調(diào)方法,包括長文本預(yù)處理、逐層選擇、逐層學(xué)習(xí)率、災(zāi)難性遺忘

(3)我們在七個廣泛研究的英文文本分類數(shù)據(jù)集和一個中文新聞分類數(shù)據(jù)集上取得了SOTA成果

4

論文核心

Fine-Tuning Strategies:當(dāng)我們?yōu)槟繕?biāo)任務(wù)微調(diào) BERT 時,有很多方法可以使用 BERT。例如,BERT 的不同層捕獲不同級別的語義和句法信息,哪一層更適合目標(biāo)任務(wù)?我們?nèi)绾芜x擇更好的優(yōu)化算法和學(xué)習(xí)率?

Further Pre-training:BERT 在通用域中訓(xùn)練,其數(shù)據(jù)分布與目標(biāo)域不同。一個自然的想法是使用目標(biāo)域數(shù)據(jù)進(jìn)一步預(yù)訓(xùn)練 BERT。這個真的非常有效,在微調(diào)達(dá)到一定瓶頸之后,可以嘗試下在比賽語料上ITPT,也就是繼續(xù)預(yù)訓(xùn)練。在海華閱讀理解比賽以及基于文本挖掘的企業(yè)隱患排查質(zhì)量分析模型都得到了成功驗證~

Multi-Task Fine-Tuning:在沒有預(yù)先訓(xùn)練的 LM 模型的情況下,多任務(wù)學(xué)習(xí)已顯示出其利用多個任務(wù)之間共享知識優(yōu)勢的有效性。當(dāng)目標(biāo)域中有多個可用任務(wù)時,一個有趣的問題是,在所有任務(wù)上同時微調(diào) BERT 是否仍然帶來好處。

5

微調(diào)策略

1. 處理長文本我們知道BERT 的最大序列長度為 512,BERT 應(yīng)用于文本分類的第一個問題是如何處理長度大于 512 的文本。本文嘗試了以下方式處理長文章。

Truncation methods 截斷法文章的關(guān)鍵信息位于開頭和結(jié)尾。我們可以使用三種不同的截斷文本方法來執(zhí)行 BERT 微調(diào)。

head-only: keep the first 510 tokens 頭部510個字符,加上兩個特殊字符剛好是512 ;

tail-only: keep the last 510 tokens;尾部510個字符,同理加上兩個特殊字符剛好是512 ;

head+tail: empirically select the first 128and the last 382 tokens.:尾部結(jié)合

Hierarchical methods 層級法輸入的文本首先被分成k = L/510個片段,喂入 BERT 以獲得 k 個文本片段的表示向量。每個分?jǐn)?shù)的表示是最后一層的 [CLS] 標(biāo)記的隱藏狀態(tài),然后我們使用均值池化、最大池化和自注意力來組合所有分?jǐn)?shù)的表示。

上表的結(jié)果顯示,head+tail的截斷法在IMDb和Sogou數(shù)據(jù)集上表現(xiàn)最好。后續(xù)的實驗也是采用這種方式進(jìn)行處理。

2. 不同層的特征BERT 的每一層都捕獲輸入文本的不同特征。文本研究了來自不同層的特征的有效性, 然后我們微調(diào)模型并記錄測試錯誤率的性能。

我們可以看到:最后一層表征效果最好;最后4層進(jìn)行max-pooling效果最好3. 災(zāi)難性遺忘Catastrophic forgetting (災(zāi)難性遺忘)通常是遷移學(xué)習(xí)中的常見詬病,這意味著在學(xué)習(xí)新知識的過程中預(yù)先訓(xùn)練的知識會被遺忘。因此,本文還研究了 BERT 是否存在災(zāi)難性遺忘問題。我們用不同的學(xué)習(xí)率對 BERT 進(jìn)行了微調(diào),發(fā)現(xiàn)需要較低的學(xué)習(xí)率,例如 2e-5,才能使 BERT 克服災(zāi)難性遺忘問題。在 4e-4 的較大學(xué)習(xí)率下,訓(xùn)練集無法收斂。

這個也深有體會,當(dāng)預(yù)訓(xùn)練模型失效不能夠收斂的時候多檢查下超參數(shù)是否設(shè)置有問題。4. Layer-wise Decreasing Layer Rate 逐層降低學(xué)習(xí)率下表 顯示了不同基礎(chǔ)學(xué)習(xí)率和衰減因子在 IMDb 數(shù)據(jù)集上的性能。我們發(fā)現(xiàn)為下層分配較低的學(xué)習(xí)率對微調(diào) BERT 是有效的,比較合適的設(shè)置是 ξ=0.95 和 lr=2.0e-5

為不同的BERT設(shè)置不同的學(xué)習(xí)率及衰減因子,BERT的表現(xiàn)如何?把參數(shù)θ hetaθ劃分成{ θ 1 , … , θ L } { heta^1,dots, heta^L}{θ1,…,θL},其中θ l heta^lθl

6

ITPT:繼續(xù)預(yù)訓(xùn)練

Bert是在通用的語料上進(jìn)行預(yù)訓(xùn)練的,如果要在特定領(lǐng)域應(yīng)用文本分類,數(shù)據(jù)分布一定是有一些差距的。這時候可以考慮進(jìn)行深度預(yù)訓(xùn)練。

Within-task pre-training:Bert在訓(xùn)練語料上進(jìn)行預(yù)訓(xùn)練In-domain pre-training:在同一領(lǐng)域上的語料進(jìn)行預(yù)訓(xùn)練Cross-domain pre-training:在不同領(lǐng)域上的語料進(jìn)行預(yù)訓(xùn)練

Within-task pretraining

BERT-ITPT-FiT 的意思是“BERT + with In-Task Pre-Training + Fine-Tuning”,上圖表示IMDb 數(shù)據(jù)集上進(jìn)行不同步數(shù)的繼續(xù)預(yù)訓(xùn)練是有收益的。2 In-Domain 和 Cross-Domain Further Pre-Training

我們發(fā)現(xiàn)幾乎所有進(jìn)一步的預(yù)訓(xùn)練模型在所有七個數(shù)據(jù)集上的表現(xiàn)都比原始 BERT 基礎(chǔ)模型。一般來說,域內(nèi)預(yù)訓(xùn)練可以帶來比任務(wù)內(nèi)預(yù)訓(xùn)練更好的性能。在小句子級 TREC 數(shù)據(jù)集上,任務(wù)內(nèi)預(yù)訓(xùn)練會損害性能,而在使用 Yah 的領(lǐng)域預(yù)訓(xùn)練中。Yah. A.語料庫可以在TREC上取得更好的結(jié)果。

這篇論文與其他模型進(jìn)行了比較,結(jié)果如下表所示:

我們可以看到ITPT和IDPT以及CDPT的錯誤率相比其他模型在不同數(shù)據(jù)集有不同程度下降。

7

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

所有任務(wù)都會共享BERT層及Embedding層,唯一不共享的層就是最終的分類層,每個任務(wù)都有各自的分類層。

上表表明對于基于BERT多任務(wù)微調(diào),效果有所提升,但是對于CDPT的多任務(wù)微調(diào)是有所下降的,所以說多任務(wù)學(xué)習(xí)對于改進(jìn)對相關(guān)文本分類子任務(wù)的泛化可能不是必要的。

8

小樣本學(xué)習(xí) Few-Shot Learning

實驗表明:BERT能夠為小規(guī)模數(shù)據(jù)帶來顯著的性能提升。

9

BERT Large模型上進(jìn)一步預(yù)訓(xùn)練

實驗結(jié)果表明:在特定任務(wù)上微調(diào)BERT Large模型能夠獲得當(dāng)前最優(yōu)的結(jié)果。

接下來給大家?guī)砀韶洸糠郑翰煌瑢W(xué)習(xí)率策略的使用

不同學(xué)習(xí)率策略

Constant Schedule

Constant Schedule with Warmup

Cosine with Warmup

Cosine With Hard Restarts

Linear Schedule with Warmup

Polynomial Decay with Warmup

參考資料

一起讀論文 | 文本分類任務(wù)的BERT微調(diào)方法論

NLP重鑄篇之BERT如何微調(diào)文本分類

【論文解析】如何將Bert更好地用于文本分類(How to Fine-Tune BERT for Text Classification?)

How to Fine-Tune BERT for Text Classification 論文筆記

Bert微調(diào)技巧實驗大全

論文閱讀筆記:這篇文章教你在文本分類任務(wù)上微調(diào)BERT

How to Fine-Tune BERT for Text Classification?讀論文-如何讓Bert在finetune小數(shù)據(jù)集時更“穩(wěn)”一點

論文標(biāo)題:How to Fine-Tune BERT for Text Classification?中文

中文標(biāo)題:如何微調(diào) BERT 進(jìn)行文本分類?

論文作者:復(fù)旦大學(xué)邱錫鵬老師課題組

實驗代碼:https://github.com/xuyige/BERT4doc-Classification

編輯:jq

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

    關(guān)注

    0

    文章

    18

    瀏覽量

    7279

原文標(biāo)題:文本分類上分利器: Bert微調(diào)trick大全

文章出處:【微信號:NLP_lover,微信公眾號:自然語言處理愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    雷達(dá)的基本分類方法

    電子發(fā)燒友網(wǎng)站提供《雷達(dá)的基本分類方法.pdf》資料免費下載
    發(fā)表于 09-11 09:09 ?4次下載

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實現(xiàn)Yolov5分類檢測

    : NPU幫助機(jī)器完成更高效的翻譯、文本分類和情感分析,推動了自然語言處理技術(shù)的發(fā)展。 實例分享:Yolov5分類檢測 在RK3588處理器上,不僅可以基于Linux系統(tǒng)使用NPU,也可以
    發(fā)表于 08-20 11:13

    利用TensorFlow實現(xiàn)基于深度神經(jīng)網(wǎng)絡(luò)的文本分類模型

    要利用TensorFlow實現(xiàn)一個基于深度神經(jīng)網(wǎng)絡(luò)(DNN)的文本分類模型,我們首先需要明確幾個關(guān)鍵步驟:數(shù)據(jù)預(yù)處理、模型構(gòu)建、模型訓(xùn)練、模型評估與調(diào)優(yōu),以及最終的模型部署(盡管在本文中,我們將重點放在前四個步驟上)。下面,我將詳細(xì)闡述這些步驟,并給出一個具體的示例。
    的頭像 發(fā)表于 07-12 16:39 ?462次閱讀

    大模型為什么要微調(diào)?大模型微調(diào)的原理

    在人工智能(AI)領(lǐng)域,特別是自然語言處理(NLP)領(lǐng)域,大模型(如BERT、GPT系列等)的出現(xiàn)為許多復(fù)雜任務(wù)提供了強(qiáng)大的解決方案。然而,這些預(yù)訓(xùn)練的大模型雖然具有廣泛的適用性,但在特定任務(wù)上往往
    的頭像 發(fā)表于 07-10 10:43 ?1949次閱讀

    llm模型有哪些格式

    Representations from Transformers):BERT是一種雙向預(yù)訓(xùn)練模型,通過大量文本數(shù)據(jù)進(jìn)行預(yù)訓(xùn)練,可以用于各種NLP任務(wù),如文本分類、問答、命名實體識別
    的頭像 發(fā)表于 07-09 09:59 ?337次閱讀

    llm模型和chatGPT的區(qū)別

    LLM(Large Language Model)是指大型語言模型,它們是一類使用深度學(xué)習(xí)技術(shù)構(gòu)建的自然語言處理(NLP)模型。LLM模型可以處理各種語言任務(wù),如文本生成、文本分類、機(jī)器翻譯等。目前
    的頭像 發(fā)表于 07-09 09:55 ?459次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)在文本分類領(lǐng)域的應(yīng)用

    顯著成就后,也逐漸被引入到文本分類任務(wù)中。卷積神經(jīng)網(wǎng)絡(luò)通過模擬人類視覺系統(tǒng)的信息處理方式,能夠有效地提取文本中的局部特征,進(jìn)而實現(xiàn)高精度的文本分類。本文將對卷積神經(jīng)網(wǎng)絡(luò)在
    的頭像 發(fā)表于 07-01 16:25 ?381次閱讀

    集成芯片類型大全

    集成芯片的大全會包括各種類型的集成電路,它們根據(jù)功能、結(jié)構(gòu)和應(yīng)用領(lǐng)域進(jìn)行分類。
    的頭像 發(fā)表于 03-25 14:24 ?989次閱讀

    了解如何使用PyTorch構(gòu)建圖神經(jīng)網(wǎng)絡(luò)

    圖神經(jīng)網(wǎng)絡(luò)直接應(yīng)用于圖數(shù)據(jù)集,您可以訓(xùn)練它們以預(yù)測節(jié)點、邊緣和與圖相關(guān)的任務(wù)。它用于圖和節(jié)點分類、鏈路預(yù)測、圖聚類和生成,以及圖像和文本分類。
    發(fā)表于 02-21 12:19 ?601次閱讀
    了解如何使用PyTorch構(gòu)建圖神經(jīng)網(wǎng)絡(luò)

    教您如何精調(diào)出自己的領(lǐng)域大模型

    BERT和 GPT-3 等語言模型針對語言任務(wù)進(jìn)行了預(yù)訓(xùn)練。微調(diào)使它們適應(yīng)特定領(lǐng)域,如營銷、醫(yī)療保健、金融。在本指南中,您將了解 LLM 架構(gòu)、微調(diào)過程以及如何為 NLP
    的頭像 發(fā)表于 01-19 10:25 ?928次閱讀
    教您如何精調(diào)出自己的領(lǐng)域大模型

    四種微調(diào)大模型的方法介紹

    微調(diào)(Full Fine-tuning):全微調(diào)是指對整個預(yù)訓(xùn)練模型進(jìn)行微調(diào),包括所有的模型參數(shù)。在這種方法中,預(yù)訓(xùn)練模型的所有層和參數(shù)都會被更新和優(yōu)化,以適應(yīng)目標(biāo)任務(wù)的需求。
    發(fā)表于 01-03 10:57 ?2.2w次閱讀
    四種<b class='flag-5'>微調(diào)</b>大模型的方法介紹

    人工智能中文本分類的基本原理和關(guān)鍵技術(shù)

    在本文中,我們?nèi)嫣接懥?b class='flag-5'>文本分類技術(shù)的發(fā)展歷程、基本原理、關(guān)鍵技術(shù)、深度學(xué)習(xí)的應(yīng)用,以及從RNN到Transformer的技術(shù)演進(jìn)。文章詳細(xì)介紹了各種模型的原理和實戰(zhàn)應(yīng)用,旨在提供對文本分類技術(shù)深入理解的全面視角。
    的頭像 發(fā)表于 12-16 11:37 ?991次閱讀
    人工智能中<b class='flag-5'>文本分類</b>的基本原理和關(guān)鍵技術(shù)

    任務(wù)微調(diào)框架MFTCoder詳細(xì)技術(shù)解讀

    MFTCoder具備高效訓(xùn)練特征,包括提供高效的數(shù)據(jù)Tokenization模式和支持PEFT微調(diào),能有效提升微調(diào)訓(xùn)練速度并降低對資源的需求。
    的頭像 發(fā)表于 11-17 17:17 ?851次閱讀
    多<b class='flag-5'>任務(wù)</b><b class='flag-5'>微調(diào)</b>框架MFTCoder詳細(xì)技術(shù)解讀

    基于BERT算法搭建一個問答搜索引擎

    鼎鼎大名的 Bert 算法相信大部分同學(xué)都聽說過,它是Google推出的NLP領(lǐng)域“王炸級”預(yù)訓(xùn)練模型,其在NLP任務(wù)中刷新了多項記錄,并取得state of the art的成績。 但是有很多深度
    的頭像 發(fā)表于 10-30 11:46 ?507次閱讀
    基于<b class='flag-5'>BERT</b>算法搭建一個問答搜索引擎

    華為云 API 自然語言處理的魅力—AI 情感分析、文本分

    云服務(wù)、API、SDK,調(diào)試,查看,我都行? 閱讀短文您可以學(xué)習(xí)到:人工智能 AI 自言語言的情感分析、文本分詞、文本翻譯 IntelliJ?IDEA?之 API 插件介紹 API 插件支持?VS
    的頭像 發(fā)表于 10-12 11:02 ?357次閱讀
    華為云 API 自然語言處理的魅力—AI 情感分析、<b class='flag-5'>文本分</b>析