Fairseq(-py) は、研究者や開発者が翻訳、要約、言語モデリング、その他のテキスト生成タスク用にカスタム モデルをトレーニングできるようにするシーケンス モデリング ツールキットです。
さまざまなシーケンス モデリングに関する論文のリファレンス実装を提供します。
畳み込みニューラル ネットワーク (CNN)
ゲート畳み込みネットワークによる言語モデリング (Dauphin et al.、2017)
畳み込みシーケンスからシーケンス学習へ (Gehring et al.、2017)
シーケンスからシーケンスへの学習における古典的な構造化予測損失 (Edunov et al., 2018)
階層型ニューラル ストーリーの生成 (Fan et al.、2018)
wav2vec: 音声認識のための教師なし事前トレーニング (Schneider et al.、2019)
LightConv モデルと DynamicConv モデル
軽量でダイナミックな畳み込みで注意力を軽減 (Wu et al., 2019)
長短期記憶 (LSTM) ネットワーク
注意ベースのニューラル機械翻訳への効果的なアプローチ (Luong et al.、2015)
トランスフォーマー (セルフアテンション) ネットワーク
必要なのは注意だけです (Vaswani 他、2017)
ニューラル機械翻訳のスケーリング (Ott et al.、2018)
逆翻訳を大規模に理解する (Edunov et al.、2018)
神経言語モデリングのための適応入力表現 (Baevski および Auli、2018)
動的なビーム割り当てを使用した字句制約のあるデコード (Post & Vilar、2018)
Transformer-XL: 固定長コンテキストを超えた注意深い言語モデル (Dai et al., 2019)
トランスフォーマーにおける適応的注意スパン (Sukhbaatar et al., 2019)
多様な機械翻訳のための混合モデル: 取引のコツ (Shen et al.、2019)
RoBERTa: 堅牢に最適化された BERT 事前トレーニング アプローチ (Liu et al.、2019)
Facebook FAIR の WMT19 ニュース翻訳タスクの提出 (Ng et al.、2019)
Transformer モデルを使用して位置合わせと変換を共同で学習する (Garg et al., 2019)
ニューラル機械翻訳のための多言語ノイズ除去事前トレーニング (Liu et al.、2020)
バイトレベルのサブワードを使用したニューラル機械翻訳 (Wang et al., 2020)
ニューラル機械翻訳の教師なし品質推定 (Fomicheva et al.、2020)
wav2vec 2.0: 音声表現の自己教師あり学習のためのフレームワーク (Baevski et al.、2020)
シーケンスツーシーケンスモデルを使用した患者と医師の会話からの医療レポートの生成 (Enarvi et al., 2020)
Linformer: 線形複雑性による自己注意 (Wang et al., 2020)
自己教師あり反復トレーニングのための言語横断検索 (Tran et al., 2020)
潜在深度を備えたディープトランスフォーマー (Li et al., 2020)
音声認識のための教師なし異言語表現学習 (Conneau et al., 2020)
自己トレーニングと事前トレーニングは音声認識を補完します (Xu et al., 2020)
堅牢な wav2vec 2.0: 自己教師あり事前トレーニングにおけるドメイン シフトの分析 (Hsu, et al., 2021)
教師なし音声認識 (Baevski, et al., 2021)
シンプルで効果的なゼロショットの異言語音素認識 (Xu et al., 2021)
VideoCLIP: ゼロショットビデオテキスト理解のための対照的事前トレーニング (Xu et. al., 2021)
VLM: ビデオ理解のためのタスクに依存しないビデオ言語モデルの事前トレーニング (Xu et. al., 2021)
NormFormer: 追加の正規化による改良されたトランスフォーマーの事前トレーニング (Shleifer et. al、2021)
非自己回帰トランスフォーマー
非自己回帰ニューラル機械翻訳 (Gu et al.、2017)
反復改良による決定論的非自己回帰ニューラルシーケンスモデリング (Lee et al. 2018)
挿入トランスフォーマー: 挿入操作による柔軟なシーケンス生成 (Stern et al. 2019)
Mask-Predict: 条件付きマスク言語モデルの並列デコード (Ghazvininejad et al., 2019)
レーベンシュタイン変圧器 (Gu et al., 2019)
微調整
表現の崩壊を減らすことによるより良い微調整 (Aghajanyan et al. 2020)
2023 年 5 月 1,000 以上の言語に音声テクノロジーを拡張するためのモデルをリリース (Pratap, et al., 2023)
2022 年 6 月 エンドツーエンドの教師なし音声認識に向けて wav2vec-U 2.0 のコードをリリース (Liu, et al., 2022)
2022 年 5 月 xFormers との統合
2021 年 12 月 直接音声読み上げ翻訳コードをリリース
2021 年 10 月 VideoCLIP モデルと VLM モデルをリリース
2021年10月 多言語対応XLSR-53モデル発売
2021 年 9 月にmaster
ブランチの名前がmain
に変更されました。
2021 年 7 月 DrNMT コードをリリース
2021 年 7 月リリース堅牢な wav2vec 2.0 モデル
2021年6月 XLMR-XL、XLMR-XXLモデルを発売
2021 年 5 月に教師なし音声認識コードをリリース
2021 年 3 月 完全なパラメーターとオプティマイザー状態のシャーディング + CPU オフロードを追加
2021 年 2 月 LASER トレーニング コードを追加
2020 年 12 月: アダプティブ アテンション スパン コードを追加
2020 年 12 月: GottBERT モデルとコードがリリースされました
2020 年 11 月: Hydra 構成フレームワークを採用
新規および既存のプロジェクトでの使用方法を説明するドキュメントを参照してください。
2020 年 11 月: Fairseq 0.10.0 がリリースされました
2020 年 10 月: R3F/R4F (Better Fine-Tuning) コードを追加
2020 年 10 月: Latent Depth コードを備えた 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 モデルとコードがリリースされました
1 台のマシンまたは複数のマシンにわたるマルチ GPU トレーニング (データとモデルの並列)
複数の検索アルゴリズムが実装されており、CPU と GPU の両方で高速生成:
ビームサーチ
多様なビーム検索 (Vijayamar et al.、2016)
サンプリング (制約なし、top-k および top-p/nucleus)
語彙的に制約されたデコード (Post & Vilar、2018)
勾配累積により、単一の GPU 上でも大規模なミニバッチでのトレーニングが可能になります
混合精度トレーニング (NVIDIA tensor コアの少ない 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 も必要になります。
Faireq をインストールしてローカルで開発するには:
git clone 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 clone 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 を使用する場合は、 nvidia-docker run
のコマンド ライン オプションとして--ipc=host
または--shm-size
を使用して共有メモリ サイズを必ず増やしてください。
完全なドキュメントには、開始方法、新しいモデルのトレーニング、新しいモデル タイプとタスクによる Fairseq の拡張に関する手順が含まれています。
以下にリストするいくつかのタスク用に、事前トレーニングされたモデルと事前処理されたバイナリ化されたテスト セット、およびサンプル トレーニングおよび評価コマンドを提供します。
翻訳: 畳み込みモデルと変圧器モデルが利用可能です
言語モデリング: 畳み込みモデルと変換モデルが利用可能
特定の論文の結果を再現するためのより詳細な README もあります。
XLS-R: 自己教師ありの大規模な異言語音声表現学習 (Babu et al., 2021)
自己教師あり反復トレーニングのための言語横断検索 (Tran et al., 2020)
wav2vec 2.0: 音声表現の自己教師あり学習のためのフレームワーク (Baevski et al.、2020)
ニューラル機械翻訳の教師なし品質推定 (Fomicheva et al.、2020)
極端なモデル圧縮のための量子化ノイズを使用したトレーニング ({Fan*、Stock*} et al.、2020)
バイトレベルのサブワードを使用したニューラル機械翻訳 (Wang et al., 2020)
ニューラル機械翻訳のための多言語ノイズ除去事前トレーニング (Liu et al.、2020)
構造化ドロップアウトを使用してオンデマンドで変圧器の深さを削減 (Fan et al., 2019)
Transformer モデルを使用して位置合わせと変換を共同で学習する (Garg et al., 2019)
レーベンシュタイン変圧器 (Gu et al., 2019)
Facebook FAIR の WMT19 ニュース翻訳タスクの提出 (Ng et al.、2019)
RoBERTa: 堅牢に最適化された BERT 事前トレーニング アプローチ (Liu et al.、2019)
wav2vec: 音声認識のための教師なし事前トレーニング (Schneider et al.、2019)
多様な機械翻訳のための混合モデル: 取引のコツ (Shen et al.、2019)
軽量でダイナミックな畳み込みで注意力を軽減 (Wu et al., 2019)
逆翻訳を大規模に理解する (Edunov et al.、2018)
シーケンスからシーケンスへの学習における古典的な構造化予測損失 (Edunov et al., 2018)
階層型ニューラル ストーリーの生成 (Fan et al.、2018)
ニューラル機械翻訳のスケーリング (Ott et al.、2018)
畳み込みシーケンスからシーケンス学習へ (Gehring et al.、2017)
ゲート畳み込みネットワークによる言語モデリング (Dauphin et al.、2017)
Twitter: 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}、booktitle = {NAACL-HLT 2019 の議事録:デモンストレーション}、年 = {2019}、 }