يحتوي هذا المستودع على كود لورقة ACL 2023، ContraCLM: التعلم المتباين لنموذج اللغة السببية.
العمل المنجز بواسطة: نيهال جاين*، ديجياو تشانغ*، واسي الدين أحمد*، زيجيان وانغ، فنغ نان، شياو بينج لي، مينغ تان، راميش نالباتي، بايشاخي راي، بارميندر بهاتيا، شياوفي ما، بينج شيانغ. (* تشير إلى المساهمة المتساوية ).
نقدم ContraCLM، وهو إطار تعليمي متباين جديد يعمل على مستوى الرمز المميز ومستوى التسلسل. تعمل ContraCLM على تعزيز التمييز بين التمثيلات من نموذج اللغة الخاص بوحدة فك التشفير فقط وسد الفجوة مع نماذج التشفير فقط، مما يجعل نماذج اللغة السببية أكثر ملاءمة للمهام التي تتجاوز توليد اللغة. نحن نشجعك على مراجعة ورقتنا لمزيد من التفاصيل.
يتضمن الإعداد تثبيت التبعيات الضرورية في بيئة ما ووضع مجموعات البيانات في الدليل المطلوب.
قم بتشغيل هذه الأوامر لإنشاء بيئة كوندا جديدة وتثبيت الحزم المطلوبة لهذا المستودع.
# create a new conda environment with python >= 3.8
conda create -n contraclm python=3.8.12
# install dependencies within the environment
conda activate contraclm
pip install -r requirements.txt
انظر هنا.
في هذا القسم، نوضح كيفية استخدام هذا المستودع للتدريب المسبق على (i) GPT2
على بيانات اللغة الطبيعية (NL)، و(ii) CodeGen-350M-Mono
على بيانات لغة البرمجة (PL).
يفترض هذا القسم أن لديك بيانات التدريب والتحقق المخزنة في TRAIN_DIR
و VALID_DIR
على التوالي، وأنك داخل بيئة تم تثبيت كافة التبعيات المذكورة أعلاه (راجع الإعداد).
يمكنك الحصول على نظرة عامة على جميع العلامات المرتبطة بالتدريب المسبق عن طريق تشغيل:
python pl_trainer.py --help
GPT2
على بيانات NL bash runscripts/run_wikitext.sh
CL_Config=$(eval echo ${options[1]})
داخل البرنامج النصي.CodeGen-350M-Mono
على بيانات PL قم بتكوين المتغيرات في الجزء العلوي من runscripts/run_code.sh
. هناك الكثير من الخيارات ولكن فقط خيارات التسرب موضحة هنا (والبعض الآخر لا يحتاج إلى شرح):
dropout_p
: قيمة احتمالية التسرب المستخدمة في torch.nn.Dropout
dropout_layers
: إذا كانت القيمة أكبر من 0، فسيؤدي ذلك إلى تنشيط آخر dropout_layers
مع احتمالية dropout_p
functional_dropout
: إذا تم تحديده، فسيتم استخدام طبقة التسرب الوظيفية أعلى تمثيلات الرمز المميز الناتجة من نموذج CodeGen
قم بتعيين المتغير CL
وفقًا لتكوين النموذج المطلوب. تأكد من ضبط المسارات إلى TRAIN_DIR, VALID_DIR
حسب الرغبة.
قم بتشغيل الأمر: bash runscripts/run_code.sh
راجع الدلائل ذات الصلة بالمهمة المحددة هنا.
إذا كنت تستخدم الكود الخاص بنا في بحثك، فيرجى ذكر عملنا على النحو التالي:
@inproceedings{jain-etal-2023-contraclm,
title = "{C}ontra{CLM}: Contrastive Learning For Causal Language Model",
author = "Jain, Nihal and
Zhang, Dejiao and
Ahmad, Wasi Uddin and
Wang, Zijian and
Nan, Feng and
Li, Xiaopeng and
Tan, Ming and
Nallapati, Ramesh and
Ray, Baishakhi and
Bhatia, Parminder and
Ma, Xiaofei and
Xiang, Bing",
booktitle = "Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)",
month = jul,
year = "2023",
address = "Toronto, Canada",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.acl-long.355",
pages = "6436--6459"
}
انظر المساهمة لمزيد من المعلومات.
تم ترخيص هذا المشروع بموجب ترخيص Apache-2.0.