How to Fine-Tune BERT for Text Classification 論文筆記
論文地址:How to Fine-Tune BERT for Text Classification?
BERT在NLP任務中效果十分優秀,這篇文章對於BERT在文本分類的應用上做了非常豐富的實驗,介紹了一些調參以及改進的經驗,進一步挖掘BERT的潛力。
實驗主要在8個被廣泛研究的數據集上進行,在BERT-base模型上做了驗證。
文章的主要結論如下:
1.微調(fin-tune)策略
- 對於長文本,嘗試了(1)取頭部510 tokens,(2)尾部510 tokens,(3)頭部128 tokens+尾部382 tokens,(4)分片並進行最大池化、平均池化、attention,發現方法(3)最好。因爲文章的關鍵信息一般在開頭和結尾。
- 分層訓練,上層對文本分類更加重要。
- 災難性遺忘:在下游finetune可能會遺忘預訓練的知識。需要設置較小的學習率,如2e-5.
- 分層衰減學習率(Layer-wise Decreasing Layer Rate),對下層設置更小的學習率可以得到更高的準確率,在lr=2e-5,衰減率=0.95
2. 繼續預訓練(Further Pretraining)
任務內(within-task) 和同領域(in-domain)的繼續預訓練可以大大提高準確率。
In-domain比within-task要好。
3. 多任務微調(Multi-task Finetuning)
在單任務微調之前的多任務微調有幫助,但是提升效果小於Further pretraining。
4. 小數據集
BERT對小數據集提升很大,這個大家都知道的。Further pretraining對小數據集也有幫助。