يحتوي هذا المستودع على رمز المصدر لورقة نتائج EMNLP 2020 لدينا: صقل نادي عدواني كمنظم فعال.
في هذا العمل ، نقترح نوعًا جديدًا من المنظم لعملية الضبط لنماذج اللغة المسبقة (LMS). نحدد فقدان تمثيلات المجال العام لـ LMS المسبق أثناء الضبط كشكل من أشكال النسيان الكارثي . يعمل المصطلح العدائي كمنظم يناسبي يحافظ على معظم المعرفة التي استولت عليها LM أثناء التدريب ، مما يمنع النسيان الكارثي.
لمعالجتها ، نقوم بتوسيع عملية الضبط القياسية للـ LMS المسبق مع هدف عدواني. يرتبط مصطلح الخسارة الإضافي هذا بمصنف خصوم ، والذي يميز بين تمثيلات النص داخل المجال .
في المجال : مجموعة البيانات المسمى للمهمة ( الرئيسية ) في متناول اليد
خارج المجال : بيانات غير مسماة من مجال مختلف ( مساعد )
نقوم بتقليل الخسارة الخاصة بالمهمة ، وفي الوقت نفسه تعظيم فقدان مصنف المجال باستخدام طبقة انعكاس التدرج.
وظيفة الخسارة التي نقترحها هي ما يلي:
L بعد = L الرئيسي - المجال λl
عندما يكون L الرئيسي هو الخسارة الخاصة بالمهمة ومجال L ، فقدان الخصومة الذي يفرض ثبات تمثيل النص عبر مجالات مختلفة ، أثناء ضبطه. λ هو مقياس فرط النفقات.

تجارب على 4 مجموعات بيانات غراء (COLA ، MRPC ، SST-2 و RTE) مع اثنين من LMS PRETRAINE (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 من مختلف المجالات. نحن نقدم البرامج النصية لتنزيل ومعالجة الشركات المستخدمة في تجاربنا ، في حين يمكن استخدام أي شركة أخرى أيضًا.
للركض بعد 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",
}