พื้นที่เก็บข้อมูลนี้มีซอร์สโค้ดสำหรับ EMNLP 2020 ผลการวิจัยของเรา: การปรับจูนการปรับแต่งของโดเมนเป็นแบบปกติที่มีประสิทธิภาพ
ในงานนี้เราเสนอประเภทใหม่สำหรับกระบวนการปรับแต่งของแบบจำลองภาษาที่ผ่านการฝึกอบรม (LMS) เราระบุการสูญเสียการเป็นตัวแทนของโดเมนทั่วไปของ LMS ที่ได้รับการฝึกฝนในระหว่างการปรับแต่งเป็นรูปแบบของ การลืมหายนะ คำศัพท์ที่เป็นปฏิปักษ์ทำหน้าที่เป็นตัวสม่ำเสมอที่รักษาความรู้ส่วนใหญ่ที่จับโดย LM ในระหว่างการผ่าตัดป้องกันภัยพิบัติที่ลืมไป
ในการแก้ไขปัญหาเราได้ขยายกระบวนการปรับแต่งมาตรฐานของ LMS ที่ได้รับการฝึกฝนด้วยวัตถุประสงค์ของฝ่ายตรงข้าม ระยะเวลาการสูญเสียเพิ่มเติมนี้เกี่ยวข้องกับตัวจําแนกที่เป็นปฏิปักษ์ซึ่งแยกแยะระหว่างการแสดงข้อความ ในโดเมน และ นอกโดเมน
ในโดเมน : ชุดข้อมูลที่มีป้ายกำกับของงาน ( หลัก ) อยู่ในมือ
นอกโดเมน : ข้อมูลที่ไม่มีป้ายกำกับ จากโดเมนที่แตกต่างกัน ( เสริม )
เรา ลด การสูญเสียเฉพาะงานและในเวลาเดียวกัน เพิ่ม การสูญเสียของตัวจําแนกโดเมนโดยใช้เลเยอร์การย้อนกลับแบบไล่ระดับสี
ฟังก์ชั่นการสูญเสียที่เราเสนอมีดังต่อไปนี้:
l หลังจาก = l main - λl โดเมน
ในกรณีที่ l main คือการสูญเสียเฉพาะงานและ l โดเมน การสูญเสียที่เป็นปฏิปักษ์ที่บังคับใช้ความแปรปรวนของการเป็นตัวแทนข้อความในโดเมนที่แตกต่างกันในขณะที่การปรับจูน λเป็นพารามิเตอร์ hyperparameter ที่ปรับได้

การทดลองในชุดข้อมูลกาว 4 ชุด (COLA, MRPC, SST-2 และ RTE) WιTHสอง LMS (BERT และ XLNET) ที่แตกต่างกันแสดงให้เห็นถึงประสิทธิภาพที่ดีขึ้นกว่าการปรับแต่งมาตรฐาน เราแสดงให้เห็นว่าคำศัพท์ที่เป็นปฏิปักษ์ทำหน้าที่เป็นตัวสม่ำเสมอที่รักษาความรู้ส่วนใหญ่ที่จับโดย LM ในระหว่างการผ่าตัดป้องกันหายนะ
สร้างสภาพแวดล้อม (เป็นทางเลือก): โดยหลักแล้วคุณควรสร้างสภาพแวดล้อมสำหรับโครงการ
conda create -n after_env python=3.6
conda activate after_env
ติดตั้ง Pytorch 1.1.0 ด้วยรุ่น CUDA ที่ต้องการหากคุณต้องการใช้ GPU:
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/ชุดข้อมูล แต่สามารถใช้พา ธ อื่น ๆ ได้ (ควรเห็นด้วยกับพา ธ DATA_DIR ที่ระบุไว้ในสคริปต์ sys_config )
ในฐานะข้อมูล เสริม เราใช้ Corpora จากโดเมนต่าง ๆ เราให้สคริปต์เพื่อดาวน์โหลดและประมวลผลล่วงหน้า corpora ที่ใช้ในการทดลองของเราในขณะที่ corpora อื่น ๆ สามารถใช้งานได้เช่นกัน
ในการรันกับเบิร์ตคุณต้องใช้คำสั่งต่อไปนี้:
python after_fine-tune.py -i afterBert_finetune_cola_europarl --lambd 0.1
lambd หมายถึงแลมบ์ดาน้ำหนักของฟังก์ชั่นการสูญเสียร่วมที่เราใช้
ใน configs/ คุณสามารถดูรายการไฟล์ YAML ที่เราใช้สำหรับการทดลองและยังสามารถเปลี่ยนพารามิเตอร์ hyperparameters ของพวกเขา
หากคุณใช้ repo นี้ในการวิจัยของคุณโปรดอ้างอิงกระดาษ:
@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",
}