該存儲庫包含我們的EMNLP 2020發現論文的源代碼:作為有效的正規器的域名微調。
在這項工作中,我們建議一種新型的常規器,用於預審前的語言模型(LMS)。我們將驗證的LMS在微調過程中丟失是災難性遺忘的一種形式。對抗性術語充當正規化器,可保留LM在訓練過程中捕獲的大多數知識,從而阻止了災難性的遺忘。
為了解決這個問題,我們以對抗性目標擴展了預驗證的LMS的標準微調過程。該額外的損失項與對抗性分類器有關,該分類器區分域內和室外文本表示。
內域:手頭任務(主)的數據集
外域:來自不同域的未標記數據(輔助)
我們最大程度地減少了特定於任務的損失,同時使用梯度反轉層最大程度地提高了域分類器的損失。
我們提出的損失函數如下:
l after = l主-λl域
其中l主要是特定於任務的損失和l領域,具有對抗性損失,在微調的同時,在不同域中實現了文本表示的不變性。 λ是可調的超參數。

在4個膠水數據集(COLA,MRPC,SST-2和RTE)上進行的實驗Wιth兩個不同的LMS(BERT和XLNET)表明,與標準微調相比,性能提高了。我們從經驗上表明,對抗性術語充當正規器,可保留LM在預訓練期間捕獲的大多數知識,從而阻止了災難性的遺忘。
創建環境(可選):理想情況下,您應該為項目創建一個環境。
conda create -n after_env python=3.6
conda activate after_env
如果要使用GPU,則安裝帶有所需CUDA版本的Pytorch 1.1.0 :
conda install pytorch==1.1.0 torchvision -c pytorch
克隆項目:
git clone https://github.com/GeorgeVern/AFTERV1.0.git
cd AFTERV1.0
然後安裝其餘要求:
pip install -r requirements.txt
要下載主要數據集,我們從此處使用download_glue_data.py腳本。您可以通過運行以下命令來選擇論文中使用的數據集:
python download_glue_data.py --data_dir './Datasets' --tasks 'CoLA,SST,RTE,MRPC
數據集的默認路徑是afterv1.0/數據集,但可以使用任何其他路徑(應與sys_config腳本中指定的DATA_DIR路徑一致)
作為輔助數據,我們使用來自各個域的語料庫。我們提供腳本以下載和預處理我們實驗中使用的語料庫,而其他任何語料庫也可以使用。
要與Bert一起運行,您需要以下命令:
python after_fine-tune.py -i afterBert_finetune_cola_europarl --lambd 0.1
lambd是指我們使用的關節損失函數的重量。
在configs/中,您可以看到我們用於實驗的YAML文件列表,還可以更改其超參數。
如果您在研究中使用此倉庫,請引用論文:
@inproceedings{vernikos-etal-2020-domain,
title = "{D}omain {A}dversarial {F}ine-{T}uning as an {E}ffective {R}egularizer",
author = "Vernikos, Giorgos and
Margatina, Katerina and
Chronopoulou, Alexandra and
Androutsopoulos, Ion",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2020",
year = "2020",
url = "https://www.aclweb.org/anthology/2020.findings-emnlp.278",
doi = "10.18653/v1/2020.findings-emnlp.278",
pages = "3103--3112",
}