Repositori ini berisi kode resmi yang digunakan untuk eksperimen pemodelan bahasa dalam makalah:
Secara lebih umum, ini dapat digunakan sebagai alat pemodelan bahasa di Pytorch untuk bereksperimen dengan:
Transformer standar
Transformer-xl
Pemrogram berat cepat dengan aturan pembaruan yang berbeda dan fungsi perhatian linier :
misalnya beberapa kombinasi menghasilkan model yang terkenal:
Repositori ini berisi dua implementasi bobot cepat.
torch.autograd.Function (lihat utils/fast_weight.py) Sementara kami hanya menggunakan implementasi CUDA untuk semua percobaan akhir kami (pemanfaatan GPU yang lebih cepat/jauh lebih baik), torch.autograd.Function Versi fungsi dapat berguna untuk pembuatan prototipe cepat dengan ekstensi baru.
Toolkit ini membutuhkan pytorch torch dan ninja (untuk mengkompilasi kernel cuda).
Eksperimen untuk kertas dilakukan dengan Python 3.6 dan Pytorch 1.4.0 (catatan pada 24 Agustus 2023: Kode ini juga bekerja dengan Python 3.11 dan Pytorch 2.0.1+Cu117).
Versi Pytorch yang lebih baru belum didukung dengan baik oleh toolkit ini yang masih menggunakan torch.nn.DataParallel untuk pelatihan multi-GPU. Jika Anda benar -benar perlu menggunakan versi Pytorch yang lebih baru, periksa dokumentasi untuk menggunakan torch.nn.parallel.DistributedDataParallel sebagai gantinya. Semoga kami akan segera memperbaikinya, tetapi kami tidak bisa mengetahui dengan tepat kapan.
Toolkit mendukung bobot & bias untuk memantau pekerjaan. Jika Anda menggunakannya, juga instal wandb .
Repositas ini berisi banyak baris kode yang diambil dan diadaptasi dari sumber -sumber berikut:
Silakan periksa file di bawah example_scripts untuk instruksi umum dan contoh untuk melatih dan mengevaluasi model.
@inproceedings{schlag2021linear,
title={Linear Transformers Are Secretly Fast Weight Programmers},
author={Imanol Schlag and Kazuki Irie and J"urgen Schmidhuber},
booktitle={Proc. Int. Conf. on Machine Learning (ICML)},
address = {Virtual only},
month = jul,
year={2021}
}
@article{irie2021going,
title={Going Beyond Linear Transformers with Recurrent Fast Weight Programmers},
author={Kazuki Irie and Imanol Schlag and R'obert Csord'as and J"urgen Schmidhuber},
journal={Preprint arXiv:2106.06295},
year={2021}
}