Rilis kode resmi dari pekerjaan NAACL 2021 kami, pra-pelatihan terpadu untuk pemahaman dan pembuatan program.
***** Pertunjukan Plbart pada tugas hilir direkam dalam spreadsheet ini. *****
Berita • Pengaturan • Pra-Pelatihan • Menyetranya • FAQ • Pengakuan • Lisensi • Kutipan
Input bising | Urutan asli |
---|---|
Apakah 0 The [mask] fibonacci [topeng] ? | |
Public Static Main (String args []) {date = date (); Sistem. keluar . (String. Format ("Tanggal Saat Ini: % TC",)); } | |
Def AddThreenumbers (x, y, z): new_line indent return [mask] | |
Kami dapat mengatur lingkungan Conda untuk menjalankan eksperimen plbart, langkah pertama adalah mengunduh dependensi. Kami menganggap Anaconda diinstal. Persyaratan tambahan (dicatat dalam persyaratan.txt) dapat diinstal dengan menjalankan skrip berikut:
bash install_env.sh
Buka data/github
Directory dan ikuti instruksi.
Buka data/stackoverflow
Directory dan ikuti instruksi.
cd pretrain
bash binarize.sh
bash pretrain.sh GPU_IDS
[CATATAN] Kami pra-terlatih plbart pada 8 GeForce RTX 2080
(11GB) GPU (membutuhkan ~ 11,5 hari). Jika Anda ingin pra-pelatihan plbart menggunakan lebih banyak GPU atau GPU dengan lebih banyak memori, sesuaikan MAX_SENTENCES
, MAX_TOKENS
, UPDATE_FREQ
sesuai untuk mempertahankan ukuran batch yang efektif 2048. Menurut Fairseq, ukuran batch yang efektif sama dengan:
Per_gpu_train_batch_size * num_gpu * update_freq
Perhatikan bahwa, MAX_TOKENS
mengacu pada ukuran setiap mini-batch, dalam hal jumlah token. Selama percobaan kami, kami perhatikan bahwa dalam GPU 11GB, maksimum 2048 token dapat ditampung yang setara dengan 4-5 contoh. Oleh karena itu, kami mengatur UPDATE_FREQ
ke 60, sehingga kami dapat mencapai ukuran batch yang efektif ~ 2048.
Kami menyempurnakan dan mengevaluasi PLBART pada tiga jenis tugas hilir.
Jenis | Tugas | Bahasa | Data | Skrip | Pos pemeriksaan |
---|---|---|---|---|---|
Kode ke Teks | Rangkuman kode | Python, Jawa, Ruby, PHP, Javascript, Jalankan | [LINK] | [LINK] | [LINK] |
Teks ke kode | Pembuatan kode | Jawa | [LINK] | [LINK] | [LINK] |
Kode ke kode | Terjemahan kode | Jawa, C# | [LINK] | [LINK] | [LINK] |
Penyempurnaan Kode | Jawa | [LINK] | [LINK] | ||
Deteksi Klon | Jawa | [LINK] | [LINK] | ||
Deteksi Cacat | C/C++ | [LINK] | [LINK] |
cd pretrain
bash download.sh
cd ..
cd data/codeXglue
bash download.sh
cd ../..
cd evaluation/CodeBLEU/parser
bash build.sh
cd ../../..
Misalnya, kami ingin menyempurnakan plbart pada tugas Text-to-Code
. Kemudian,
cd scripts/text_to_code
bash prepare.sh
bash run.sh GPU_IDS
cd ../..
Catatan. Kami fine-tuned plbart pada 1 GeForce RTX 2080
(11GB) GPU.
[Catatan] Kami menyajikan struktur file repositori ini di sini.
Bagaimana cara mengunduh data github dari Google BigQuery?
Kami memberikan panduan terperinci di sini.
Ketidaksesuaian kinerja yang dilaporkan di koran dan dicapai dengan menggunakan pos pemeriksaan yang dirilis.
Ada perbedaan antara kinerja PLBART yang disebutkan dalam makalah dan kinerja yang dicapai dengan pelepasan pos pemeriksaan. Kami mencatat mereka di sini. Perhatikan bahwa, tidak ada perubahan dalam pengaturan hyper-parameter. Kami memberikan nilai yang sama persis dengan yang kami gunakan di skrip bash. Perbedaan kinerja yang kami amati mungkin karena menjalankan eksperimen pada titik waktu yang berbeda. Meskipun kami tidak, tetapi kami merekomendasikan untuk menyempurnakan plbart dengan beberapa biji berbeda dan melaporkan skor rata-rata.
Tugas mbart_base
tidak ada di fairseq==0.9.0
rilis resmi.
Meskipun kami menggunakan fairseq==0.9.0
tetapi kami menggunakan komit berbeda yang terdiri dari tugas mbart_base
. Anda dapat melakukan yang berikut ini yang seharusnya berhasil.
git clone https://github.com/pytorch/fairseq
cd fairseq
git checkout 698e3b91ffa832c286c48035bdff78238b0de8ae
pip install .
Jika tidak, Anda dapat mempertimbangkan untuk menginstal fairseq==0.10.0
. Silakan merujuk masalah ini untuk membuat penyesuaian lainnya.
Apa yang bisa menjadi input maksimum dan panjang output untuk plbart?
Panjang maksimum adalah 512.
PlBart menggunakan Fairseq, Codexglue, dan Transcoder dan berterima kasih kepada penulis karya -karya ini atas kontribusinya.
Isi repositori ini berada di bawah lisensi MIT. Lisensi ini juga berlaku untuk model yang telah dilatih sebelumnya dan telah disempurnakan.
@inproceedings{ahmad-etal-2021-unified,
title = "Unified Pre-training for Program Understanding and Generation",
author = "Ahmad, Wasi and
Chakraborty, Saikat and
Ray, Baishakhi and
Chang, Kai-Wei",
booktitle = "Proceedings of the 2021 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies",
month = jun,
year = "2021",
address = "Online",
publisher = "Association for Computational Linguistics",
url = "https://www.aclweb.org/anthology/2021.naacl-main.211",
pages = "2655--2668"
}