이 저장소에는 EMNLP 2020 결과 소스 코드가 포함되어 있습니다.
이 작업에서 우리는 사전에 걸린 언어 모델 (LMS)의 미세 조정 과정을위한 새로운 유형의 정규화를 제안합니다. 우리는 미세 조정 중에 미세 조정하는 동안 사전 각인 LM의 일반 도메인 표현의 상실을 치명적인 잊어 버린 형태로 식별합니다. 대적 용어는 사전 여지가있는 동안 LM이 포착 한 대부분의 지식을 보존하는 정규화 역할을합니다.
이를 해결하기 위해, 우리는 적대적인 목표를 가진 사전 각인 LM의 표준 미세 조정 과정을 확장합니다. 이 추가 손실 항은 대형 분류기와 관련이 있으며, 이는 도메인 과 도메인 외 텍스트 표현을 구별합니다.
in-domain : 작업의 라벨링 된 데이터 세트 ( 메인 )
도메인 외부 : 다른 도메인의 표지되지 않은 데이터 ( 보조 )
작업 별 손실을 최소화 하고 동시에 구배 역전 계층을 사용하여 도메인 분류기의 손실을 최대화합니다 .
우리가 제안한 손실 함수는 다음과 같습니다.
l 후 = l main -λl 도메인
여기서 L 메인은 작업 별 손실이며 L 도메인은 미세 조정하면서 다른 도메인에서 텍스트 표현의 불변성을 시행하는 적대적 손실입니다. λ는 조정 가능한 하이퍼 파라미터입니다.

4 개의 접착제 데이터 세트 (COLA, MRPC, SST-2 및 RTE)에 대한 실험은 2 개의 다른 사전 상인 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/DataSets이지만 다른 경로를 사용할 수 있습니다 ( sys_config 스크립트에 지정된 DATA_DIR 경로에 동의해야합니다).
보조 데이터로서 우리는 다양한 도메인의 Corpora를 사용합니다. 우리는 실험에 사용 된 Corpora를 다운로드하고 전제 할 수있는 스크립트를 제공하는 반면, 다른 Corpora도 사용할 수 있습니다.
Bert와 함께 실행하려면 다음 명령이 필요합니다.
python after_fine-tune.py -i afterBert_finetune_cola_europarl --lambd 0.1
lambd 우리가 사용하는 관절 손실 기능의 중량 인 Lambda를 말합니다.
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",
}