Repositori ini berisi kode untuk makalah ACL 2023, ContraCLM: Pembelajaran Kontrastif untuk Model Bahasa Kausal.
Pekerjaan dilakukan oleh: Nihal Jain*, Dejiao Zhang*, Wasi Uddin Ahmad*, Zijian Wang, Feng Nan, Xiaopeng Li, Ming Tan, Ramesh Nallapati, Baishakhi Ray, Parminder Bhatia, Xiaofei Ma, Bing Xiang. (* menunjukkan kontribusi yang sama ).
Kami menghadirkan ContraCLM, kerangka pembelajaran kontrastif baru yang beroperasi pada tingkat token dan tingkat urutan. ContraCLM meningkatkan diskriminasi representasi dari model bahasa khusus dekoder dan menjembatani kesenjangan dengan model khusus encoder, menjadikan model bahasa kausal lebih cocok untuk tugas-tugas di luar pembuatan bahasa. Kami mendorong Anda untuk memeriksa makalah kami untuk lebih jelasnya.
Penyiapannya melibatkan pemasangan dependensi yang diperlukan dalam suatu lingkungan dan menempatkan kumpulan data di direktori yang diperlukan.
Jalankan perintah ini untuk membuat lingkungan conda baru dan menginstal paket yang diperlukan untuk repositori ini.
# 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
Lihat di sini.
Di bagian ini, kami menunjukkan cara menggunakan repositori ini untuk melakukan pra-pelatihan (i) GPT2
pada data Natural Language (NL), dan (ii) CodeGen-350M-Mono
pada data Programming Language (PL).
Bagian ini mengasumsikan bahwa Anda memiliki data pelatihan dan validasi yang masing-masing disimpan di TRAIN_DIR
dan VALID_DIR
, dan berada dalam lingkungan dengan semua dependensi di atas terinstal (lihat Penyiapan).
Anda bisa mendapatkan gambaran umum tentang semua tanda yang terkait dengan prapelatihan dengan menjalankan:
python pl_trainer.py --help
GPT2
pada Data NL bash runscripts/run_wikitext.sh
CL_Config=$(eval echo ${options[1]})
di dalam skrip.CodeGen-350M-Mono
pada Data PL Konfigurasikan variabel di bagian atas runscripts/run_code.sh
. Ada banyak pilihan tetapi hanya pilihan dropout yang dijelaskan di sini (yang lain sudah cukup jelas):
dropout_p
: Nilai probabilitas dropout yang digunakan di torch.nn.Dropout
dropout_layers
: Jika > 0, ini akan mengaktifkan dropout_layers
terakhir dengan probabilitas dropout_p
functional_dropout
: Jika ditentukan, akan menggunakan lapisan dropout fungsional di atas output representasi token dari model CodeGen
Atur variabel CL
sesuai konfigurasi model yang diinginkan. Pastikan jalur ke TRAIN_DIR, VALID_DIR
disetel sesuai keinginan.
Jalankan perintah: bash runscripts/run_code.sh
Lihat direktori khusus tugas yang relevan di sini.
Jika Anda menggunakan kode kami dalam penelitian Anda, harap kutip karya kami sebagai:
@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"
}
Lihat KONTRIBUSI untuk informasi lebih lanjut.
Proyek ini dilisensikan di bawah Lisensi Apache-2.0.