文章目錄
-
-
- 引言
- 二、項目環境配置
- 二、資料集介紹
- 三、代碼介紹
- 四、測試
-
- 1.代碼執行流程
-
- 資料代碼見:https://gitee.com/lj857335332/bert_finetune_cls_adversarial_training
引言
這一節學習BERT模型如何在句子分類任務上進行微調。項目代碼架構如下:
争取做到每一行代碼都有注釋!!!
二、項目環境配置
- python>=3.6
- torch==1.6.0
- transformers==3.0.2
- seqeval==0.0.12
二、資料集介紹
該項目使用的是mrpc資料集,該資料集由微軟釋出,判斷兩個給定句子,是否具有相同的語義,屬于句子對的文本二分類任務;有的句子對是同義的,表示為1;有的是不同義的,表示為0。
Train | Dev | Labels | |
---|---|---|---|
MRPC | 4076 | 1725 | 2 |
我們這一節使用mrpc資料,資料集由訓練集、驗證集組成
mrpc.txt
檔案:每一行是一個文本,分别包括标簽、文本等
intent_label.txt
檔案:每一行一個意圖示簽,一共有兩個,分别表示句子相似與句子不相似;這個檔案是由
vocab_process.py
檔案生成的意圖示簽統計檔案
三、代碼介紹
-
檔案:這個檔案的功能是将文本檔案轉化成InputExample類資料,并将輸入樣本轉化為bert能夠讀取的InputFeatures類資料,最後儲存至cache檔案中,友善下次快速加載。data_loader.py
-
檔案:封裝了很多實用程式,友善統一調用utils.py
-
檔案:定義了任務的訓練與評估以及儲存模型與加載模型trainer.py
-
檔案:用于模型的訓練與評估main.py
-
檔案:用于模型的預測predict.py
-
檔案:對抗訓練代碼實作,詳情可見:對抗訓練原理與代碼實作adversarial_training.py
四、測試
1.代碼執行流程
在指令行輸入,
如果使用對抗訓練,則
python bert_finetune_cls/main.py --data_dir bert_finetune_cls/data/ --task mrpc --model_type bert --model_dir bert_finetune_cls/experiments/outputs/clsbert_0 --do_train --do_eval --train_batch_size 8 --num_train_epochs 2 --linear_learning_rate 5e-4 --at_method fgm
如果對您有幫助,麻煩點贊關注,這真的對我很重要!!!如果需要互關,請評論或者私信!