Fairseq(-py) est une boîte à outils de modélisation de séquences qui permet aux chercheurs et aux développeurs de former des modèles personnalisés pour la traduction, le résumé, la modélisation du langage et d'autres tâches de génération de texte.
Nous fournissons des implémentations de référence de divers articles de modélisation de séquence :
Réseaux de neurones convolutifs (CNN)
Modélisation du langage avec des réseaux convolutionnels fermés (Dauphin et al., 2017)
Séquence convolutive en apprentissage de séquence (Gehring et al., 2017)
Pertes de prédiction structurées classiques pour l’apprentissage séquence à séquence (Edunov et al., 2018)
Génération d'histoires neuronales hiérarchiques (Fan et al., 2018)
wav2vec : Pré-formation non supervisée pour la reconnaissance vocale (Schneider et al., 2019)
Modèles LightConv et DynamicConv
Soyez moins attentif aux convolutions légères et dynamiques (Wu et al., 2019)
Réseaux de mémoire à long terme et à court terme (LSTM)
Approches efficaces de la traduction automatique neuronale basée sur l'attention (Luong et al., 2015)
Réseaux de transformateurs (auto-attention)
L'attention est tout ce dont vous avez besoin (Vaswani et al., 2017)
Mise à l'échelle de la traduction automatique neuronale (Ott et al., 2018)
Comprendre la rétro-traduction à grande échelle (Edunov et al., 2018)
Représentations d'entrée adaptatives pour la modélisation du langage neuronal (Baevski et Auli, 2018)
Décodage lexicalement contraint avec allocation dynamique de faisceaux (Post & Vilar, 2018)
Transformer-XL : modèles de langage attentifs au-delà d'un contexte de longueur fixe (Dai et al., 2019)
Durée d'attention adaptative chez les transformateurs (Sukhbaatar et al., 2019)
Modèles de mélange pour diverses traductions automatiques : astuces du métier (Shen et al., 2019)
RoBERTa : une approche de pré-formation BERT robustement optimisée (Liu et al., 2019)
Soumission de tâches de traduction d'actualités WMT19 de Facebook FAIR (Ng et al., 2019)
Apprendre conjointement à s'aligner et à traduire avec les modèles de transformateur (Garg et al., 2019)
Pré-formation au débruitage multilingue pour la traduction automatique neuronale (Liu et at., 2020)
Traduction automatique neuronale avec sous-mots au niveau octet (Wang et al., 2020)
Estimation de la qualité non supervisée pour la traduction automatique neuronale (Fomicheva et al., 2020)
wav2vec 2.0 : Un cadre pour l'apprentissage auto-supervisé des représentations vocales (Baevski et al., 2020)
Génération de rapports médicaux à partir de conversations patient-médecin à l'aide de modèles séquence à séquence (Enarvi et al., 2020)
Linformer : Auto-attention avec complexité linéaire (Wang et al., 2020)
Récupération multilingue pour la formation itérative auto-supervisée (Tran et al., 2020)
Transformateurs profonds avec profondeur latente (Li et al., 2020)
Apprentissage de représentation multilingue non supervisé pour la reconnaissance vocale (Conneau et al., 2020)
L'auto-formation et la pré-formation sont complémentaires pour la reconnaissance vocale (Xu et al., 2020)
Wav2vec 2.0 robuste : analyse du changement de domaine dans la pré-formation auto-supervisée (Hsu, et al., 2021)
Reconnaissance vocale non supervisée (Baevski, et al., 2021)
Reconnaissance de phonèmes multilingues Zero-shot simple et efficace (Xu et al., 2021)
VideoCLIP : Pré-formation contrastive pour la compréhension du texte vidéo sans prise de vue (Xu et. al., 2021)
VLM : pré-formation sur un modèle de langage vidéo indépendant des tâches pour la compréhension de la vidéo (Xu et al., 2021)
NormFormer : préentraînement amélioré des transformateurs avec normalisation supplémentaire (Shleifer et. al, 2021)
Transformateurs non autorégressifs
Traduction automatique neuronale non autorégressive (Gu et al., 2017)
Modélisation déterministe non autorégressive de séquences neuronales par raffinement itératif (Lee et al. 2018)
Transformateur d'insertion : génération de séquences flexible via des opérations d'insertion (Stern et al. 2019)
Mask-Predict : décodage parallèle de modèles de langage masqué conditionnel (Ghazvininejad et al., 2019)
Transformateur Levenshtein (Gu et al., 2019)
Réglage fin
Meilleur réglage en réduisant l'effondrement de la représentation (Aghajanyan et al. 2020)
Mai 2023 Publication de modèles pour étendre la technologie vocale à plus de 1 000 langues (Pratap, et al., 2023)
Juin 2022 Publication du code pour wav2vec-U 2.0 de Towards End-to-end Unsupervised Speech Recognition (Liu, et al., 2022)
Mai 2022 Intégration avec xFormers
Sortie en décembre 2021 du code de traduction parole-parole directe
Sortie des modèles VideoCLIP et VLM en octobre 2021
Octobre 2021 Sortie du modèle XLSR-53 multilingue optimisé
Branche master
de septembre 2021 renommée main
.
Juillet 2021 Sortie du code DrNMT
Sortie en juillet 2021 du modèle robuste wav2vec 2.0
Juin 2021 Sortie des modèles XLMR-XL et XLMR-XXL
Sortie en mai 2021 du code de reconnaissance vocale non supervisée
Mars 2021 Ajout du partage complet des paramètres et de l'état de l'optimiseur + déchargement du processeur
Février 2021 Ajout du code de formation LASER
Décembre 2020 : ajout du code Adaptive Attention Span
Décembre 2020 : publication du modèle et du code GottBERT
Novembre 2020 : Adoption du framework de configuration Hydra
voir la documentation expliquant comment l'utiliser pour des projets nouveaux et existants
Novembre 2020 : sortie de fairseq 0.10.0
Octobre 2020 : ajout du code R3F/R4F (Better Fine-Tuning)
Octobre 2020 : publication du code Deep Transformer avec Latent Depth
Octobre 2020 : ajout des modèles et du code CRISS
Septembre 2020 : Ajout du code Linformer
Septembre 2020 : ajout de réseaux de générateurs de pointeurs
Août 2020 : ajout du décodage lexicalement contraint
Août 2020 : sortie des modèles et du code wav2vec2
Juillet 2020 : publication du code d'estimation de la qualité non supervisée
Mai 2020 : suivez fairseq sur Twitter
Avril 2020 : publication du code Monotonic Multihead Attention
Avril 2020 : publication du code Quant-Noise
Avril 2020 : prise en charge initiale du modèle parallèle et publication des paramètres 11B unidirectionnels LM
Mars 2020 : publication du code BPE au niveau octet
Février 2020 : publication du modèle et du code mBART
Février 2020 : Ajout d'un tutoriel pour la rétro-traduction
Décembre 2019 : sortie de fairseq 0.9.0
Novembre 2019 : sortie de VizSeq (une boîte à outils d'analyse visuelle pour évaluer les modèles fairseq)
Novembre 2019 : publication du modèle et du code CamemBERT
Novembre 2019 : publication du modèle et du code BART
Novembre 2019 : sortie des modèles et du code XLM-R
Septembre 2019 : publication du code de traduction non autorégressif
Août 2019 : sortie des modèles WMT'19
Juillet 2019 : licence fairseq sous licence MIT
Juillet 2019 : sortie des modèles et du code RoBERTa
Juin 2019 : publication des modèles et du code wav2vec
formation multi-GPU sur une machine ou sur plusieurs machines (données et modèles parallèles)
génération rapide sur CPU et GPU avec plusieurs algorithmes de recherche implémentés :
recherche de faisceau
Recherche de faisceaux diversifiés (Vijayakumar et al., 2016)
échantillonnage (sans contrainte, top-k et top-p/noyau)
décodage lexicalement contraint (Post & Vilar, 2018)
l'accumulation de gradient permet l'entraînement avec de grands mini-lots, même sur un seul GPU
entraînement de précision mixte (entraînement plus rapide avec moins de mémoire GPU sur les cœurs tenseurs NVIDIA)
extensible : enregistrez facilement de nouveaux modèles, critères, tâches, optimiseurs et planificateurs de taux d'apprentissage
configuration flexible basée sur Hydra permettant une combinaison de configuration basée sur le code, la ligne de commande et les fichiers
partitionnement complet des paramètres et de l'état de l'optimiseur
décharger les paramètres sur le processeur
Nous fournissons également des modèles pré-entraînés pour la traduction et la modélisation linguistique avec une interface torch.hub
pratique :
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')en2de.translate('Hello world', beam=5)# 'Hallo Welt'
Consultez les didacticiels PyTorch Hub pour la traduction et RoBERTa pour plus d'exemples.
Version PyTorch >= 1.10.0
Version Python >= 3.8
Pour entraîner de nouveaux modèles, vous aurez également besoin d'un GPU NVIDIA et d'un NCCL
Pour installer fairseq et développer localement :
clone git https://github.com/pytorch/fairseqcd fairseq pip install --editable ./# sur MacOS :# CFLAGS="-stdlib=libc++" pip install --editable ./# pour installer la dernière version stable (0.10.x)# pip install fairseq
Pour une formation plus rapide, installez la bibliothèque apex de NVIDIA :
clone git https://github.com/NVIDIA/apexcd apex pip install -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" ./
Pour les grands ensembles de données, installez PyArrow : pip install pyarrow
Si vous utilisez Docker, assurez-vous d'augmenter la taille de la mémoire partagée avec --ipc=host
ou --shm-size
comme options de ligne de commande pour nvidia-docker run
.
La documentation complète contient des instructions pour démarrer, former de nouveaux modèles et étendre fairseq avec de nouveaux types et tâches de modèles.
Nous fournissons des modèles pré-entraînés et des ensembles de tests binarisés et prétraités pour plusieurs tâches répertoriées ci-dessous, ainsi que des exemples de commandes de formation et d'évaluation.
Traduction : des modèles convolutifs et transformateurs sont disponibles
Modélisation du langage : des modèles convolutifs et transformateurs sont disponibles
Nous disposons également de fichiers README plus détaillés pour reproduire les résultats d'articles spécifiques :
XLS-R : Apprentissage auto-supervisé de la représentation vocale multilingue à grande échelle (Babu et al., 2021)
Récupération multilingue pour la formation itérative auto-supervisée (Tran et al., 2020)
wav2vec 2.0 : Un cadre pour l'apprentissage auto-supervisé des représentations vocales (Baevski et al., 2020)
Estimation de la qualité non supervisée pour la traduction automatique neuronale (Fomicheva et al., 2020)
Entraînement avec le bruit de quantification pour une compression extrême du modèle ({Fan*, Stock*} et al., 2020)
Traduction automatique neuronale avec sous-mots au niveau octet (Wang et al., 2020)
Pré-formation au débruitage multilingue pour la traduction automatique neuronale (Liu et at., 2020)
Réduire la profondeur du transformateur à la demande avec un abandon structuré (Fan et al., 2019)
Apprendre conjointement à s'aligner et à traduire avec les modèles de transformateur (Garg et al., 2019)
Transformateur Levenshtein (Gu et al., 2019)
Soumission de tâches de traduction d'actualités WMT19 de Facebook FAIR (Ng et al., 2019)
RoBERTa : une approche de pré-formation BERT robustement optimisée (Liu et al., 2019)
wav2vec : Pré-formation non supervisée pour la reconnaissance vocale (Schneider et al., 2019)
Modèles de mélange pour diverses traductions automatiques : astuces du métier (Shen et al., 2019)
Soyez moins attentif aux convolutions légères et dynamiques (Wu et al., 2019)
Comprendre la rétro-traduction à grande échelle (Edunov et al., 2018)
Pertes de prédiction structurées classiques pour l’apprentissage séquence à séquence (Edunov et al., 2018)
Génération d'histoires neuronales hiérarchiques (Fan et al., 2018)
Mise à l'échelle de la traduction automatique neuronale (Ott et al., 2018)
Séquence convolutive en apprentissage de séquence (Gehring et al., 2017)
Modélisation du langage avec des réseaux convolutionnels fermés (Dauphin et al., 2017)
Twitter : https://twitter.com/fairseq
Page Facebook : https://www.facebook.com/groups/fairseq.users
Groupe Google : https://groups.google.com/forum/#!forum/fairseq-users
fairseq(-py) est sous licence MIT. La licence s'applique également aux modèles pré-entraînés.
Veuillez citer comme suit :
@inproceedings{ott2019fairseq, title = {fairseq : Une boîte à outils rapide et extensible pour la modélisation de séquences}, auteur = {Myle Ott et Sergey Edunov et Alexei Baevski et Angela Fan et Sam Gross et Nathan Ng et David Grangier et Michael Auli}, titre du livre = {Actes de NAACL-HLT 2019 : Démonstrations}, année = {2019}, }