天天看點

BERT模型—7.BERT模型在句子分類任務上的微調(對抗訓練)

文章目錄

      • 引言
      • 二、項目環境配置
      • 二、資料集介紹
      • 三、代碼介紹
      • 四、測試
        • 1.代碼執行流程
  • 資料代碼見:https://gitee.com/lj857335332/bert_finetune_cls_adversarial_training

引言

  這一節學習BERT模型如何在句子分類任務上進行微調。項目代碼架構如下:

BERT模型—7.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資料,資料集由訓練集、驗證集組成

BERT模型—7.BERT模型在句子分類任務上的微調(對抗訓練)

mrpc.txt

檔案:每一行是一個文本,分别包括标簽、文本等

BERT模型—7.BERT模型在句子分類任務上的微調(對抗訓練)

intent_label.txt

檔案:每一行一個意圖示簽,一共有兩個,分别表示句子相似與句子不相似;這個檔案是由

vocab_process.py

檔案生成的意圖示簽統計檔案

三、代碼介紹

  • data_loader.py

    檔案:這個檔案的功能是将文本檔案轉化成InputExample類資料,并将輸入樣本轉化為bert能夠讀取的InputFeatures類資料,最後儲存至cache檔案中,友善下次快速加載。
  • 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
           

如果對您有幫助,麻煩點贊關注,這真的對我很重要!!!如果需要互關,請評論或者私信!

BERT模型—7.BERT模型在句子分類任務上的微調(對抗訓練)

繼續閱讀