Fairseq(-py) adalah perangkat pemodelan urutan yang memungkinkan peneliti dan pengembang melatih model khusus untuk penerjemahan, peringkasan, pemodelan bahasa, dan tugas pembuatan teks lainnya.
Kami menyediakan implementasi referensi dari berbagai makalah pemodelan urutan:
Jaringan Neural Konvolusional (CNN)
Pemodelan Bahasa dengan Gated Convolutional Networks (Dauphin et al., 2017)
Urutan Konvolusional ke Pembelajaran Urutan (Gehring et al., 2017)
Kerugian Prediksi Terstruktur Klasik untuk Pembelajaran Sequence to Sequence (Edunov et al., 2018)
Pembuatan Cerita Neural Hierarki (Fan et al., 2018)
wav2vec: Pra-pelatihan Tanpa Pengawasan untuk Pengenalan Ucapan (Schneider dkk., 2019)
Model LightConv dan DynamicConv
Kurangi Perhatian dengan Konvolusi Ringan dan Dinamis (Wu et al., 2019)
Jaringan Memori Jangka Pendek Panjang (LSTM).
Pendekatan Efektif untuk Terjemahan Mesin Neural Berbasis Perhatian (Luong et al., 2015)
Jaringan transformator (perhatian diri).
Yang Anda Butuhkan Hanya Perhatian (Vaswani dkk., 2017)
Penskalaan Terjemahan Mesin Neural (Ott dkk., 2018)
Memahami Terjemahan Balik dalam Skala Besar (Edunov et al., 2018)
Representasi Input Adaptif untuk Pemodelan Bahasa Neural (Baevski dan Auli, 2018)
Penguraian kode yang dibatasi secara leksikal dengan alokasi berkas dinamis (Post & Vilar, 2018)
Transformer-XL: Model Bahasa Penuh Perhatian yang Melampaui Konteks Panjang Tetap (Dai dkk., 2019)
Rentang Perhatian Adaptif pada Transformers (Sukhbaatar et al., 2019)
Model Campuran untuk Beragam Terjemahan Mesin: Trik Perdagangan (Shen et al., 2019)
RoBERTa: Pendekatan Pra-pelatihan BERT yang Dioptimalkan dengan Kuat (Liu et al., 2019)
Penyerahan Tugas Penerjemahan Berita WMT19 Facebook FAIR (Ng et al., 2019)
Belajar Bersama Menyelaraskan dan Menerjemahkan dengan Model Transformer (Garg et al., 2019)
Pra-pelatihan Denoising Multibahasa untuk Terjemahan Mesin Neural (Liu et at., 2020)
Terjemahan Mesin Neural dengan Subkata Tingkat Byte (Wang et al., 2020)
Estimasi Kualitas Tanpa Pengawasan untuk Terjemahan Mesin Neural (Fomicheva et al., 2020)
wav2vec 2.0: Kerangka Kerja untuk Pembelajaran Representasi Ucapan yang Diawasi Sendiri (Baevski et al., 2020)
Menghasilkan Laporan Medis dari Percakapan Pasien-Dokter Menggunakan Model Sequence-to-Sequence (Enarvi et al., 2020)
Linformer: Perhatian Diri dengan Kompleksitas Linier (Wang et al., 2020)
Pengambilan Lintas Bahasa untuk Pelatihan Iteratif yang Diawasi Sendiri (Tran et al., 2020)
Transformer Dalam dengan Kedalaman Laten (Li dkk., 2020)
Pembelajaran Representasi Lintas Bahasa Tanpa Pengawasan untuk Pengenalan Ucapan (Conneau et al., 2020)
Pelatihan mandiri dan Pra-pelatihan merupakan Pelengkap untuk Pengenalan Ucapan (Xu et al., 2020)
Wav2vec 2.0 yang Kuat: Menganalisis Pergeseran Domain dalam Pra-Pelatihan yang Diawasi Sendiri (Hsu, dkk., 2021)
Pengenalan Ucapan Tanpa Pengawasan (Baevski, dkk., 2021)
Pengenalan Fonem Lintas Bahasa Zero-shot yang Sederhana dan Efektif (Xu et al., 2021)
VideoCLIP: Pra-pelatihan Kontrasif untuk Pemahaman Teks Video Zero-shot (Xu et. al., 2021)
VLM: Pra-pelatihan Model Bahasa Video Tugas-agnostik untuk Pemahaman Video (Xu dkk., 2021)
NormFormer: Peningkatan Pra-Pelatihan Transformator dengan Normalisasi Ekstra (Shleifer et. al, 2021)
Transformer Non-autoregresif
Terjemahan Mesin Neural Non-Autoregresif (Gu dkk., 2017)
Pemodelan Urutan Neural Non-Autoregresif deterministik dengan Penyempurnaan Iteratif (Lee dkk. 2018)
Trafo Penyisipan: Pembuatan Urutan Fleksibel melalui Operasi Penyisipan (Stern dkk. 2019)
Mask-Predict: Decoding Paralel Model Bahasa Bertopeng Bersyarat (Ghazvininejad et al., 2019)
Transformator Levenshtein (Gu dkk., 2019)
Penyempurnaan
Penyempurnaan yang Lebih Baik dengan Mengurangi Keruntuhan Representasi (Aghajanyan dkk. 2020)
Mei 2023 Merilis model untuk Menskalakan Teknologi Ucapan ke 1.000+ Bahasa (Pratap, dkk., 2023)
Juni 2022 Merilis kode untuk wav2vec-U 2.0 dari Menuju Pengenalan Ucapan Tanpa Pengawasan End-to-end (Liu, dkk., 2022)
Mei 2022 Integrasi dengan xFormers
Desember 2021 Dirilis Kode terjemahan ucapan-ke-ucapan langsung
Oktober 2021 Merilis model VideoCLIP dan VLM
Oktober 2021 Merilis model XLSR-53 multibahasa yang disempurnakan
Cabang master
September 2021 berganti nama menjadi main
.
Juli 2021 Merilis kode DrNMT
Juli 2021 Merilis model wav2vec 2.0 yang kuat
Juni 2021 Dirilis model XLMR-XL dan XLMR-XXL
Mei 2021 Merilis kode Pengenalan Ucapan Tanpa Pengawasan
Maret 2021 Menambahkan parameter lengkap dan sharding status pengoptimal + pembongkaran CPU
Februari 2021 Menambahkan kode pelatihan LASER
Desember 2020: Menambahkan kode Rentang Perhatian Adaptif
Desember 2020: Model dan kode GottBERT dirilis
November 2020: Mengadopsi kerangka konfigurasi Hydra
lihat dokumentasi yang menjelaskan cara menggunakannya untuk proyek baru dan yang sudah ada
November 2020: fairseq 0.10.0 dirilis
Oktober 2020: Menambahkan kode R3F/R4F (Penyempurnaan Lebih Baik).
Oktober 2020: Deep Transformer dengan kode Kedalaman Laten dirilis
Oktober 2020: Menambahkan model dan kode CRISS
September 2020: Menambahkan kode Linformer
September 2020: Menambahkan jaringan generator penunjuk
Agustus 2020: Menambahkan decoding yang dibatasi secara leksikal
Agustus 2020: model dan kode wav2vec2 dirilis
Juli 2020: Kode Estimasi Kualitas Tanpa Pengawasan dirilis
Mei 2020: Ikuti fairseq di Twitter
April 2020: Kode Monotonic Multihead Attention dirilis
April 2020: Kode Quant-Noise dirilis
April 2020: Dukungan paralel model awal dan parameter 11B LM searah dirilis
Maret 2020: Kode BPE tingkat byte dirilis
Februari 2020: model dan kode mBART dirilis
Februari 2020: Menambahkan tutorial untuk terjemahan kembali
Desember 2019: fairseq 0.9.0 dirilis
November 2019: VizSeq dirilis (perangkat analisis visual untuk mengevaluasi model fairseq)
November 2019: Model dan kode CamemBERT dirilis
November 2019: Model dan kode BART dirilis
November 2019: Model dan kode XLM-R dirilis
September 2019: Kode terjemahan nonautoregresif dirilis
Agustus 2019: Model WMT'19 dirilis
Juli 2019: fairseq dilisensikan kembali di bawah lisensi MIT
Juli 2019: Model dan kode RoBERTa dirilis
Juni 2019: model dan kode wav2vec dirilis
pelatihan multi-GPU pada satu mesin atau di beberapa mesin (data dan model paralel)
generasi cepat pada CPU dan GPU dengan penerapan beberapa algoritma pencarian:
pencarian sinar
Pencarian Sinar Beragam (Vijayakumar dkk., 2016)
pengambilan sampel (tidak dibatasi, top-k dan top-p/inti)
decoding yang dibatasi secara leksikal (Post & Vilar, 2018)
akumulasi gradien memungkinkan pelatihan dengan mini-batch besar bahkan pada satu GPU
pelatihan presisi campuran (berlatih lebih cepat dengan lebih sedikit memori GPU pada inti tensor NVIDIA)
dapat diperluas: dengan mudah mendaftarkan model, kriteria, tugas, pengoptimal, dan penjadwal kecepatan pembelajaran baru
konfigurasi fleksibel berdasarkan Hydra memungkinkan kombinasi kode, baris perintah, dan konfigurasi berbasis file
parameter penuh dan sharding status pengoptimal
membongkar parameter ke CPU
Kami juga menyediakan model terlatih untuk terjemahan dan pemodelan bahasa dengan antarmuka torch.hub
yang nyaman:
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')en2de.translate('Halo dunia', beam=5)# 'Halo Welt'
Lihat tutorial PyTorch Hub untuk terjemahan dan RoBERTa untuk contoh lainnya.
Versi PyTorch >= 1.10.0
Versi Python >= 3.8
Untuk melatih model baru, Anda juga memerlukan GPU NVIDIA dan NCCL
Untuk menginstal fairseq dan mengembangkan secara lokal:
git clone https://github.com/pytorch/fairseqcd fairseq pip install --editable ./# di MacOS:# CFLAGS="-stdlib=libc++" pip install --editable ./# untuk menginstal rilis stabil terbaru (0.10.x)# pip install fairseq
Untuk pelatihan yang lebih cepat, instal perpustakaan apex NVIDIA:
git clone https://github.com/NVIDIA/apexcd apex instalasi pip -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" --global-option="--deprecated_fused_adam" --global-option="--xentropy" --global-option="--fast_multihead_attn" ./
Untuk kumpulan data besar, instal PyArrow: pip install pyarrow
Jika Anda menggunakan Docker pastikan untuk meningkatkan ukuran memori bersama dengan --ipc=host
atau --shm-size
sebagai opsi baris perintah ke nvidia-docker run
.
Dokumentasi lengkap berisi instruksi untuk memulai, melatih model baru, dan memperluas fairseq dengan jenis dan tugas model baru.
Kami menyediakan model terlatih dan set pengujian biner yang telah diproses sebelumnya untuk beberapa tugas yang tercantum di bawah, serta contoh perintah pelatihan dan evaluasi.
Terjemahan: model konvolusional dan transformator tersedia
Pemodelan Bahasa: tersedia model konvolusional dan transformator
Kami juga memiliki README yang lebih rinci untuk mereproduksi hasil dari makalah tertentu:
XLS-R: Pembelajaran Representasi Pidato Lintas Bahasa dengan Pengawasan Mandiri dalam Skala Besar (Babu dkk., 2021)
Pengambilan Lintas Bahasa untuk Pelatihan Iteratif yang Diawasi Sendiri (Tran et al., 2020)
wav2vec 2.0: Kerangka Kerja untuk Pembelajaran Representasi Ucapan yang Diawasi Sendiri (Baevski et al., 2020)
Estimasi Kualitas Tanpa Pengawasan untuk Terjemahan Mesin Neural (Fomicheva et al., 2020)
Pelatihan dengan Kebisingan Kuantisasi untuk Kompresi Model Ekstrim ({Fan*, Stock*} dkk., 2020)
Terjemahan Mesin Neural dengan Subkata Tingkat Byte (Wang et al., 2020)
Pra-pelatihan Denoising Multibahasa untuk Terjemahan Mesin Neural (Liu et at., 2020)
Mengurangi Kedalaman Transformator Sesuai Permintaan dengan Dropout Terstruktur (Fan et al., 2019)
Belajar Bersama Menyelaraskan dan Menerjemahkan dengan Model Transformer (Garg et al., 2019)
Transformator Levenshtein (Gu dkk., 2019)
Penyerahan Tugas Penerjemahan Berita WMT19 Facebook FAIR (Ng et al., 2019)
RoBERTa: Pendekatan Pra-pelatihan BERT yang Dioptimalkan dengan Kuat (Liu et al., 2019)
wav2vec: Pra-pelatihan Tanpa Pengawasan untuk Pengenalan Ucapan (Schneider dkk., 2019)
Model Campuran untuk Beragam Terjemahan Mesin: Trik Perdagangan (Shen et al., 2019)
Kurangi Perhatian dengan Konvolusi Ringan dan Dinamis (Wu et al., 2019)
Memahami Terjemahan Balik dalam Skala Besar (Edunov et al., 2018)
Kerugian Prediksi Terstruktur Klasik untuk Pembelajaran Sequence to Sequence (Edunov et al., 2018)
Pembuatan Cerita Neural Hierarki (Fan et al., 2018)
Penskalaan Terjemahan Mesin Neural (Ott dkk., 2018)
Urutan Konvolusional ke Pembelajaran Urutan (Gehring et al., 2017)
Pemodelan Bahasa dengan Gated Convolutional Networks (Dauphin et al., 2017)
Twitter: https://twitter.com/fairseq
Halaman Facebook: https://www.facebook.com/groups/fairseq.users
Grup Google: https://groups.google.com/forum/#!forum/fairseq-users
fairseq(-py) berlisensi MIT. Lisensi ini juga berlaku untuk model terlatih.
Silakan kutip sebagai:
@inproceedings{ott2019fairseq, title = {fairseq: Perangkat yang Cepat dan Dapat Diperluas untuk Pemodelan Urutan}, author = {Myle Ott dan Sergey Edunov dan Alexei Baevski dan Angela Fan dan Sam Gross dan Nathan Ng dan David Grangier dan Michael Auli}, judul buku = {Prosiding NAACL-HLT 2019: Demonstrasi}, tahun = {2019}, }