Fairseq(-py) ist ein Sequenzmodellierungs-Toolkit, mit dem Forscher und Entwickler benutzerdefinierte Modelle für Übersetzung, Zusammenfassung, Sprachmodellierung und andere Textgenerierungsaufgaben trainieren können.
Wir bieten Referenzimplementierungen verschiedener Sequenzmodellierungspapiere:
Faltungs-Neuronale Netze (CNN)
Sprachmodellierung mit Gated Convolutional Networks (Dauphin et al., 2017)
Faltungssequenz-zu-Sequenz-Lernen (Gehring et al., 2017)
Klassische strukturierte Vorhersageverluste für das Sequenz-zu-Sequenz-Lernen (Edunov et al., 2018)
Hierarchische neuronale Story-Generierung (Fan et al., 2018)
wav2vec: Unbeaufsichtigtes Vortraining zur Spracherkennung (Schneider et al., 2019)
LightConv- und DynamicConv-Modelle
Schenken Sie weniger Aufmerksamkeit bei leichten und dynamischen Faltungen (Wu et al., 2019)
Netzwerke mit langem Kurzzeitgedächtnis (LSTM).
Effektive Ansätze zur aufmerksamkeitsbasierten neuronalen maschinellen Übersetzung (Luong et al., 2015)
Transformer-Netzwerke (Selbstaufmerksamkeit).
Aufmerksamkeit ist alles, was Sie brauchen (Vaswani et al., 2017)
Skalierung neuronaler maschineller Übersetzung (Ott et al., 2018)
Rückübersetzung im großen Maßstab verstehen (Edunov et al., 2018)
Adaptive Eingabedarstellungen für die Modellierung neuronaler Sprache (Baevski und Auli, 2018)
Lexikalisch eingeschränkte Dekodierung mit dynamischer Strahlzuweisung (Post & Vilar, 2018)
Transformer-XL: Aufmerksame Sprachmodelle jenseits eines Kontexts fester Länge (Dai et al., 2019)
Adaptive Aufmerksamkeitsspanne bei Transformern (Sukhbaatar et al., 2019)
Mischungsmodelle für vielfältige maschinelle Übersetzung: Tricks of the Trade (Shen et al., 2019)
RoBERTa: Ein robust optimierter BERT-Pretraining-Ansatz (Liu et al., 2019)
Einreichung der WMT19-Nachrichtenübersetzungsaufgabe von Facebook FAIR (Ng et al., 2019)
Gemeinsam lernen, sich mit Transformer-Modellen auszurichten und zu übersetzen (Garg et al., 2019)
Mehrsprachiges Denoising-Vortraining für neuronale maschinelle Übersetzung (Liu et al., 2020)
Neuronale maschinelle Übersetzung mit Unterwörtern auf Byte-Ebene (Wang et al., 2020)
Unbeaufsichtigte Qualitätsschätzung für neuronale maschinelle Übersetzung (Fomicheva et al., 2020)
wav2vec 2.0: Ein Rahmen für selbstüberwachtes Lernen von Sprachdarstellungen (Baevski et al., 2020)
Erstellen medizinischer Berichte aus Patienten-Arzt-Gesprächen mithilfe von Sequenz-zu-Sequenz-Modellen (Enarvi et al., 2020)
Linformer: Selbstaufmerksamkeit mit linearer Komplexität (Wang et al., 2020)
Sprachübergreifender Abruf für iteratives selbstüberwachtes Training (Tran et al., 2020)
Deep Transformers mit latenter Tiefe (Li et al., 2020)
Unüberwachtes sprachübergreifendes Repräsentationslernen zur Spracherkennung (Conneau et al., 2020)
Selbsttraining und Vortraining ergänzen die Spracherkennung (Xu et al., 2020)
Robustes wav2vec 2.0: Analyse der Domänenverschiebung im selbstüberwachten Vortraining (Hsu, et al., 2021)
Unbeaufsichtigte Spracherkennung (Baevski, et al., 2021)
Einfache und effektive Zero-Shot-Sprachübergreifende Phonemerkennung (Xu et al., 2021)
VideoCLIP: Kontrastives Vortraining für das Verständnis von Zero-Shot-Videotext (Xu et. al., 2021)
VLM: Aufgabenunabhängiges Video-Sprachmodell-Vortraining für Videoverständnis (Xu et. al., 2021)
NormFormer: Verbessertes Transformer-Pretraining mit zusätzlicher Normalisierung (Shleifer et. al, 2021)
Nicht-autoregressive Transformatoren
Nicht-autoregressive neuronale maschinelle Übersetzung (Gu et al., 2017)
Deterministische nicht-autoregressive Modellierung neuronaler Sequenzen durch iterative Verfeinerung (Lee et al. 2018)
Insertion Transformer: Flexible Sequenzgenerierung über Insertion Operations (Stern et al. 2019)
Mask-Predict: Parallele Dekodierung bedingter maskierter Sprachmodelle (Ghazvininejad et al., 2019)
Levenshtein-Transformator (Gu et al., 2019)
Feinabstimmung
Bessere Feinabstimmung durch Reduzierung des Repräsentationskollapses (Aghajanyan et al. 2020)
Im Mai 2023 veröffentlichte Modelle zur Skalierung der Sprachtechnologie auf über 1.000 Sprachen (Pratap et al., 2023)
Juni 2022 Veröffentlichter Code für wav2vec-U 2.0 von Towards End-to-end Unsupervised Speech Recognition (Liu, et al., 2022)
Mai 2022 Integration mit xFormers
Dezember 2021: Direkter Sprache-zu-Sprache-Übersetzungscode veröffentlicht
Im Oktober 2021 erschienene VideoCLIP- und VLM-Modelle
Im Oktober 2021 wurde das mehrsprachige, fein abgestimmte XLSR-53-Modell veröffentlicht
Im September 2021 wurde master
in main
umbenannt.
Juli 2021 DrNMT-Code veröffentlicht
Juli 2021: Robustes wav2vec 2.0-Modell veröffentlicht
Im Juni 2021 wurden die Modelle XLMR-XL und XLMR-XXL veröffentlicht
Im Mai 2021 wurde der Code für die unbeaufsichtigte Spracherkennung veröffentlicht
März 2021 Vollständiges Parameter- und Optimierer-Status-Sharding + CPU-Offloading hinzugefügt
Februar 2021 LASER-Schulungscode hinzugefügt
Dezember 2020: Adaptive Attention Span-Code hinzugefügt
Dezember 2020: GottBERT-Modell und Code veröffentlicht
November 2020: Übernahme des Hydra-Konfigurationsframeworks
Sehen Sie sich die Dokumentation an, in der erklärt wird, wie Sie es für neue und bestehende Projekte verwenden können
November 2020: fairseq 0.10.0 veröffentlicht
Oktober 2020: R3F/R4F-Code (bessere Feinabstimmung) hinzugefügt
Oktober 2020: Deep Transformer mit Latent Depth-Code veröffentlicht
Oktober 2020: CRISS-Modelle und -Code hinzugefügt
September 2020: Linformer-Code hinzugefügt
September 2020: Zeigergenerator-Netzwerke hinzugefügt
August 2020: Lexikalisch eingeschränkte Dekodierung hinzugefügt
August 2020: wav2vec2-Modelle und Code veröffentlicht
Juli 2020: Code für unbeaufsichtigte Qualitätsschätzung veröffentlicht
Mai 2020: Folgen Sie fairseq auf Twitter
April 2020: Monotonic Multihead Attention-Code veröffentlicht
April 2020: Quant-Noise-Code veröffentlicht
April 2020: Erste modellparallele Unterstützung und 11B-Parameter unidirektionales LM veröffentlicht
März 2020: BPE-Code auf Byte-Ebene veröffentlicht
Februar 2020: mBART-Modell und Code veröffentlicht
Februar 2020: Tutorial zur Rückübersetzung hinzugefügt
Dezember 2019: fairseq 0.9.0 veröffentlicht
November 2019: VizSeq veröffentlicht (ein visuelles Analyse-Toolkit zur Bewertung von Fairseq-Modellen)
November 2019: CamemBERT-Modell und Code veröffentlicht
November 2019: BART-Modell und Code veröffentlicht
November 2019: XLM-R-Modelle und Code veröffentlicht
September 2019: Nichtautoregressiver Übersetzungscode veröffentlicht
August 2019: WMT'19-Modelle veröffentlicht
Juli 2019: Fairseq wird unter MIT-Lizenz neu lizenziert
Juli 2019: RoBERTa-Modelle und -Code veröffentlicht
Juni 2019: wav2vec-Modelle und Code veröffentlicht
Multi-GPU-Training auf einer Maschine oder über mehrere Maschinen hinweg (Daten und Modell parallel)
schnelle Generierung auf CPU und GPU mit mehreren implementierten Suchalgorithmen:
Strahlsuche
Diverse Strahlsuche (Vijayakumar et al., 2016)
Probenahme (unbeschränkt, Top-k und Top-p/Kern)
lexikalisch eingeschränkte Dekodierung (Post & Vilar, 2018)
Die Gradientenakkumulation ermöglicht das Training mit großen Mini-Batches sogar auf einer einzelnen GPU
Training mit gemischter Präzision (trainiert schneller mit weniger GPU-Speicher auf NVIDIA-Tensorkernen)
erweiterbar: Einfache Registrierung neuer Modelle, Kriterien, Aufgaben, Optimierer und Lernratenplaner
Flexible Konfiguration auf Basis von Hydra, die eine Kombination aus Code-, Befehlszeilen- und dateibasierter Konfiguration ermöglicht
Vollständiges Parameter- und Optimierer-Status-Sharding
Auslagern von Parametern auf die CPU
Wir bieten auch vorab trainierte Modelle für die Übersetzung und Sprachmodellierung mit einer praktischen torch.hub
-Schnittstelle:
en2de = Torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')en2de.translate('Hello world', beam=5)# 'Hallo Welt'
Weitere Beispiele finden Sie in den PyTorch Hub-Tutorials zur Übersetzung und in RoBERTa.
PyTorch-Version >= 1.10.0
Python-Version >= 3.8
Zum Trainieren neuer Modelle benötigen Sie außerdem eine NVIDIA-GPU und NCCL
So installieren Sie fairseq und entwickeln lokal:
Git-Klon https://github.com/pytorch/fairseqcd fairseq pip install --editable ./# unter MacOS:# CFLAGS="-stdlib=libc++" pip install --editable ./# zum Installieren der neuesten stabilen Version (0.10.x)# pip install fairseq
Für ein schnelleres Training installieren Sie die Apex-Bibliothek von NVIDIA:
Git-Klon 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" ./
Für große Datensätze installieren Sie PyArrow: pip install pyarrow
Wenn Sie Docker verwenden, stellen Sie sicher, dass Sie die Größe des gemeinsam genutzten Speichers entweder mit --ipc=host
oder --shm-size
als Befehlszeilenoptionen für nvidia-docker run
erhöhen.
Die vollständige Dokumentation enthält Anleitungen für den Einstieg, das Training neuer Modelle und die Erweiterung von fairseq um neue Modelltypen und Aufgaben.
Wir stellen vorab trainierte Modelle und vorverarbeitete, binarisierte Testsätze für mehrere der unten aufgeführten Aufgaben sowie Beispiel-Trainings- und Evaluierungsbefehle bereit.
Übersetzung: Faltungs- und Transformatormodelle sind verfügbar
Sprachmodellierung: Faltungs- und Transformatormodelle sind verfügbar
Wir haben auch detailliertere READMEs, um Ergebnisse aus bestimmten Artikeln zu reproduzieren:
XLS-R: Selbstüberwachtes sprachübergreifendes Sprachrepräsentationslernen im Maßstab (Babu et al., 2021)
Sprachübergreifender Abruf für iteratives selbstüberwachtes Training (Tran et al., 2020)
wav2vec 2.0: Ein Rahmen für selbstüberwachtes Lernen von Sprachdarstellungen (Baevski et al., 2020)
Unbeaufsichtigte Qualitätsschätzung für neuronale maschinelle Übersetzung (Fomicheva et al., 2020)
Training mit Quantisierungsrauschen für extreme Modellkomprimierung ({Fan*, Stock*} et al., 2020)
Neuronale maschinelle Übersetzung mit Unterwörtern auf Byte-Ebene (Wang et al., 2020)
Mehrsprachiges Denoising-Vortraining für neuronale maschinelle Übersetzung (Liu et al., 2020)
Reduzierung der Transformatortiefe bei Bedarf mit strukturiertem Dropout (Fan et al., 2019)
Gemeinsam lernen, sich mit Transformer-Modellen auszurichten und zu übersetzen (Garg et al., 2019)
Levenshtein-Transformator (Gu et al., 2019)
Einreichung der WMT19-Nachrichtenübersetzungsaufgabe von Facebook FAIR (Ng et al., 2019)
RoBERTa: Ein robust optimierter BERT-Pretraining-Ansatz (Liu et al., 2019)
wav2vec: Unbeaufsichtigtes Vortraining zur Spracherkennung (Schneider et al., 2019)
Mischungsmodelle für vielfältige maschinelle Übersetzung: Tricks of the Trade (Shen et al., 2019)
Schenken Sie weniger Aufmerksamkeit bei leichten und dynamischen Faltungen (Wu et al., 2019)
Rückübersetzung im großen Maßstab verstehen (Edunov et al., 2018)
Klassische strukturierte Vorhersageverluste für das Sequenz-zu-Sequenz-Lernen (Edunov et al., 2018)
Hierarchische neuronale Story-Generierung (Fan et al., 2018)
Skalierung neuronaler maschineller Übersetzung (Ott et al., 2018)
Faltungssequenz-zu-Sequenz-Lernen (Gehring et al., 2017)
Sprachmodellierung mit Gated Convolutional Networks (Dauphin et al., 2017)
Twitter: https://twitter.com/fairseq
Facebook-Seite: https://www.facebook.com/groups/fairseq.users
Google-Gruppe: https://groups.google.com/forum/#!forum/fairseq-users
fairseq(-py) ist MIT-lizenziert. Die Lizenz gilt auch für die vorab trainierten Modelle.
Bitte zitieren als:
@inproceedings{ott2019fairseq, Titel = {fairseq: Ein schnelles, erweiterbares Toolkit für die Sequenzmodellierung}, Autor = {Myle Ott und Sergey Edunov und Alexei Baevski und Angela Fan und Sam Gross und Nathan Ng und David Grangier und Michael Auli}, Buchtitel = {Proceedings of NAACL-HLT 2019: Demonstrationen}, Jahr = {2019}, }