Fairseq(-py) 是一個序列建模工具包,可讓研究人員和開發人員訓練用於翻譯、摘要、語言建模和其他文字生成任務的自訂模型。
我們提供各種序列建模論文的參考實作:
卷積神經網路 (CNN)
使用門控卷積網路進行語言建模(Dauphin 等人,2017)
卷積序列到序列學習(Gehring et al., 2017)
序列到序列學習的經典結構化預測損失(Edunov 等人,2018)
分層神經故事生成(Fan 等人,2018)
wav2vec:語音辨識的無監督預訓練(Schneider 等人,2019)
LightConv 和 DynamicConv 模型
透過輕量級和動態卷積減少注意力(Wu et al., 2019)
長短期記憶 (LSTM) 網絡
基於注意力的神經機器翻譯的有效方法(Luong et al., 2015)
Transformer(自註意)網絡
專注就是你所需要的(Vaswani 等人,2017)
縮放神經機器翻譯(Ott 等人,2018)
大規模理解反向翻譯(Edunov 等人,2018)
神經語言建模的自適應輸入表示(Baevski 和 Auli,2018)
具有動態波束分配的詞法約束解碼(Post & Vilar,2018)
Transformer-XL:超越固定長度情境的專注語言模型(Dai 等人,2019)
變形金剛中的自適應注意力廣度(Sukhbaatar 等人,2019)
多樣化機器翻譯的混合模型:交易技巧(Shen 等人,2019)
RoBERTa:一種穩健最佳化的 BERT 預訓練方法(Liu 等人,2019)
Facebook FAIR 的 WMT19 新聞翻譯任務提交(Ng 等人,2019)
聯合學習與 Transformer 模型對齊和翻譯(Garg et al., 2019)
神經機器翻譯的多語言去雜訊預訓練(Liu et at.,2020)
具有位元組級子詞的神經機器翻譯(Wang 等人,2020)
神經機器翻譯的無監督品質估計(Fomicheva 等人,2020)
wav2vec 2.0:語音表示自監督學習架構(Baevski 等人,2020)
使用序列到序列模型從病人與醫生的對話產生醫療報告(Enarvi 等人,2020)
Linformer:具有線性複雜性的自註意力(Wang 等人,2020)
用於迭代自我監督訓練的跨語言檢索(Tran 等人,2020)
具有潛在深度的深度變壓器(Li et al., 2020)
用於語音辨識的無監督跨語言表示學習(Conneau 等人,2020)
自訓練和預訓練是語音辨識的補充(Xu et al., 2020)
穩健的 wav2vec 2.0:分析自我監督預訓練中的域轉移(Hsu 等人,2021)
無監督語音辨識(Baevski 等人,2021)
簡單有效的零樣本跨語言音素辨識(Xu et al., 2021)
VideoCLIP:零樣本視訊文字理解的對比預訓練(Xu 等人,2021)
VLM:用於視訊理解的任務無關視訊語言模型預訓練(Xu 等人,2021)
NormFormer:透過額外標準化來改善 Transformer 預訓練(Shleifer 等人,2021)
非自回歸變壓器
非自回歸神經機器翻譯(Gu et al., 2017)
透過迭代細化進行確定性非自回歸神經序列建模(Lee et al. 2018)
插入變壓器:透過插入操作產生靈活的序列(Stern 等人,2019)
Mask-Predict:條件掩碼語言模型的平行解碼(Ghazvininejad 等人,2019)
Levenshtein Transformer(Gu 等人,2019)
微調
透過減少表徵崩潰來更好地進行微調(Aghajanyan 等人,2020)
2023 年 5 月發布了將語音技術擴展到 1,000 多種語言的模型(Pratap 等人,2023 年)
2022 年 6 月 從 Towards End-to-end Unsupervised Speech Recognition 發布了 wav2vec-U 2.0 代碼(Liu 等人,2022)
2022 年 5 月 與 xFormers 集成
2021年12月發布直接語音轉語音翻譯代碼
2021年10月發布VideoCLIP和VLM模型
2021年10月發布多語言微調XLSR-53模型
2021 年 9 月master
分支更名為main
。
2021年7月發布DrNMT代碼
2021年7月發表Robust wav2vec 2.0模型
2021年6月發布XLMR-XL和XLMR-XXL型號
2021年5月發布無監督語音辨識代碼
2021 年 3 月 新增全參數和優化器狀態分片 + CPU 卸載
2021 年 2 月 新增雷射培訓代碼
2020 年 12 月:新增了自適應注意力跨度程式碼
2020 年 12 月:GottBERT 模型與程式碼發布
2020年11月:採用Hydra配置框架
請參閱解釋如何將其用於新項目和現有項目的文檔
2020 年 11 月:fairseq 0.10.0 發布
2020 年 10 月:新增了 R3F/R4F(更好的微調)程式碼
2020 年 10 月:發布具有潛在深度程式碼的 Deep Transformer
2020 年 10 月:新增了 CRISS 模型和程式碼
2020 年 9 月:新增了 Linformer 程式碼
2020 年 9 月:新增了指標產生器網絡
2020 年 8 月:新增了詞法約束解碼
2020 年 8 月:wav2vec2 模型與程式碼發布
2020 年 7 月:發布無監督品質估計代碼
2020 年 5 月:在 Twitter 上關注 fairseq
2020 年 4 月:單調多頭注意力代碼發布
2020 年 4 月:發布 Quant-Noise 代碼
2020年4月:初始模型並行支援和11B參數單向LM發布
2020 年 3 月:發布位元組級 BPE 程式碼
2020年2月:mBART模型與程式碼發布
2020 年 2 月:新增了反向翻譯教程
2019 年 12 月:fairseq 0.9.0 發布
2019年11月:VizSeq發布(用於評估fairseq模型的可視化分析工具包)
2019 年 11 月:CamemBERT 模型與程式碼發布
2019 年 11 月:BART 模型與程式碼發布
2019 年 11 月:XLM-R 模型與程式碼發布
2019 年 9 月:發布非自回歸翻譯程式碼
2019 年 8 月:WMT'19 模型發布
2019 年 7 月:fairseq 根據 MIT 許可重新獲得許可
2019 年 7 月:RoBERTa 模型和程式碼發布
2019 年 6 月:wav2vec 模型與程式碼發布
在一台機器或多台機器上進行多 GPU 訓練(資料和模型並行)
在 CPU 和 GPU 上快速生成,並實作多種搜尋演算法:
波束搜尋
多樣化波束搜尋(Vijayakumar 等人,2016)
採樣(無約束、top-k 和 top-p/nucleus)
詞法約束解碼(Post & Vilar,2018)
即使在單一 GPU 上,梯度累積也能實現大批量訓練
混合精度訓練(在 NVIDIA 張量核心上使用更少的 GPU 記憶體訓練得更快)
可擴展:輕鬆註冊新模型、標準、任務、優化器和學習率調度器
基於 Hydra 的靈活配置,允許組合程式碼、命令列和基於檔案的配置
全參數和優化器狀態分片
將參數卸載到 CPU
我們也透過方便的torch.hub
介面提供用於翻譯和語言建模的預訓練模型:
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model')en2de.translate('Hello world', beam=5)# 'Hallo Welt'
請參閱 PyTorch Hub 翻譯教學和 RoBERTa 以了解更多範例。
PyTorch 版本 >= 1.10.0
Python 版本 >= 3.8
為了訓練新模型,您還需要 NVIDIA GPU 和 NCCL
安裝 fairseq並在本地開發:
git 克隆 https://github.com/pytorch/fairseqcd fairseq pip install --editable ./# 在 MacOS 上:# CFLAGS="-stdlib=libc++" pip install --editable ./# 安裝最新的穩定版本 (0.10.x)# pip install fairseq
為了更快訓練,請安裝 NVIDIA 的 apex 函式庫:
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" ./
對於大型資料集,安裝 PyArrow: pip install pyarrow
如果您使用 Docker,請確保使用--ipc=host
或--shm-size
作為nvidia-docker run
的命令列選項來增加共享記憶體大小。
完整的文檔包含入門、訓練新模型以及使用新模型類型和任務擴展 fairseq 的說明。
我們為下面列出的多項任務提供預訓練模型和預處理的二值化測試集,以及範例訓練和評估命令。
翻譯:卷積和變壓器模型可用
語言建模:提供卷積和變壓器模型
我們也有更詳細的自述文件來重現特定論文的結果:
XLS-R:大規模自監督跨語言語音表示學習(Babu 等人,2021)
用於迭代自我監督訓練的跨語言檢索(Tran 等人,2020)
wav2vec 2.0:語音表示自監督學習架構(Baevski 等人,2020)
神經機器翻譯的無監督品質估計(Fomicheva 等人,2020)
使用量化噪音進行極限模型壓縮訓練({Fan*, Stock*} 等人,2020)
具有位元組級子詞的神經機器翻譯(Wang 等人,2020)
神經機器翻譯的多語言去雜訊預訓練(Liu et at.,2020)
透過結構化壓降按需減少變壓器深度(Fan 等人,2019)
聯合學習與 Transformer 模型對齊和翻譯(Garg et al., 2019)
Levenshtein Transformer(Gu 等人,2019)
Facebook FAIR 的 WMT19 新聞翻譯任務提交(Ng 等人,2019)
RoBERTa:一種穩健最佳化的 BERT 預訓練方法(Liu 等人,2019)
wav2vec:語音辨識的無監督預訓練(Schneider 等人,2019)
多樣化機器翻譯的混合模型:交易技巧(Shen 等人,2019)
透過輕量級和動態卷積減少注意力(Wu et al., 2019)
大規模理解反向翻譯(Edunov 等人,2018)
序列到序列學習的經典結構化預測損失(Edunov 等人,2018)
分層神經故事生成(Fan 等人,2018)
縮放神經機器翻譯(Ott 等人,2018)
卷積序列到序列學習(Gehring et al., 2017)
使用門控卷積網路進行語言建模(Dauphin 等人,2017)
推特:https://twitter.com/fairseq
Facebook 專頁:https://www.facebook.com/groups/fairseq.users
Google群組:https://groups.google.com/forum/#!forum/fairseq-users
fairseq(-py) 是 MIT 授權的。該許可證也適用於預先訓練的模型。
請引用為:
@inproceedings{ott2019fairseq,標題= {fairseq:用於序列建模的快速、可擴展工具包},作者= {Myle Ott 和Sergey Edunov 和Alexei Baevski 和Angela Fan 和Sam Gross 和Nathan Ng 和David Grangier 和Michael Auli },書名 = {NAACL-HLT 2019 會議記錄:示範},年份 = {2019}, }