fairseq 0.10 : 概要 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 11/23/2020 (0.10.1)
* 本ページは、fairseq の github 上の以下のページを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
- Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション |
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/ |
Facebook: https://www.facebook.com/ClassCatJP/ |
fairseq 0.10 : 概要
Fairseq(-py) はシークエンス・モデリング・ツールキットで、研究者や開発者が翻訳、要約、言語モデリングと他のテキスト生成タスクのためのカスタムモデルを訓練することを可能にします。
様々なシークエンス・モデリング論文の参照実装を提供しています :
実装された論文のリスト :
- 畳込みニューラルネットワーク (CNN)
- Language Modeling with Gated Convolutional Networks (Dauphin et al., 2017)
(Gated 畳込みネットワークによる言語モデリング) - Convolutional Sequence to Sequence Learning (Gehring et al., 2017)
(畳込み Sequence to Sequence 学習) - Classical Structured Prediction Losses for Sequence to Sequence Learning (Edunov et al., 2018)
(Sequence to Sequence 学習のための古典的構造予測損失) - Hierarchical Neural Story Generation (Fan et al., 2018)
(階層的ニューラル物語生成) - wav2vec: Unsupervised Pre-training for Speech Recognition (Schneider et al., 2019)
(wav2vec: 音声認識のための教師なし事前訓練)
- Language Modeling with Gated Convolutional Networks (Dauphin et al., 2017)
- LightConv と DynamicConv モデル
- 長短期メモリ (LSTM) ネットワーク
- Effective Approaches to Attention-based Neural Machine Translation (Luong et al., 2015)
(Attention ベースのニューラル機械翻訳への効果的なアプローチ)
- Effective Approaches to Attention-based Neural Machine Translation (Luong et al., 2015)
- Transformer (self-attention) ネットワーク
- Attention Is All You Need (Vaswani et al., 2017)
- Scaling Neural Machine Translation (Ott et al., 2018)
(ニューラル機械翻訳をスケールする) - Understanding Back-Translation at Scale (Edunov et al., 2018)
(大規模な逆翻訳の理解) - Adaptive Input Representations for Neural Language Modeling (Baevski and Auli, 2018)
(ニューラル言語モデリングのための適応可能な入力表現) - Lexically constrained decoding with dynamic beam allocation (Post & Vilar, 2018)
(動的ビーム割当てによる語彙的に制約されたデコーディング) - Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context
(Transformer-XL: 固定長コンテキストを越えた注意深い言語モデル) - Mixture Models for Diverse Machine Translation: Tricks of the Trade (Shen et al., 2019)
(多様な機械翻訳のための混合モデル: Trade のトリック) - RoBERTa: A Robustly Optimized BERT Pretraining Approach (Liu et al., 2019)
(RoBERTa: 堅固に最適化された BERT 事前訓練アプローチ) - Facebook FAIR’s WMT19 News Translation Task Submission (Ng et al., 2019)
(Facebook FAIR’s WMT19 ニュース翻訳タスク Submission) - Jointly Learning to Align and Translate with Transformer Models (Garg et al., 2019)
(Transformer モデルでアラインして翻訳するための同時学習) - Multilingual Denoising Pre-training for Neural Machine Translation (Liu et at., 2020)
(ニューラル機械翻訳のための多言語ノイズ除去事前訓練) - Neural Machine Translation with Byte-Level Subwords (Wang et al., 2020)
(バイトレベル部分単語によるニューラル機械翻訳) - Unsupervised Quality Estimation for Neural Machine Translation (Fomicheva et al., 2020)
(ニューラル機械翻訳のための教師なし品質推定) - wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations (Baevski et al., 2020)
(wav2vec 2.0: 音声認識の自己教師あり学習のためのフレームワーク) - Generating Medical Reports from Patient-Doctor Conversations Using Sequence-to-Sequence Models (Enarvi et al., 2020)
(Sequence-to-Sequence モデルを使用した患者と医師の会話からの医療報告の生成) - Linformer: Self-Attention with Linear Complexity (Wang et al., 2020)
(Linformer: 線形複雑度を持つ自己注意) - Cross-lingual Retrieval for Iterative Self-Supervised Training (Tran et al., 2020)
(対話的自己教師あり訓練のための交差 lingual Retrieval) - Deep Transformers with Latent Depth (Li et al., 2020)
(Latent Depth を持つ深層 Transformer)
- 非-自己回帰 Transformers
- Non-Autoregressive Neural Machine Translation (Gu et al., 2017)
(非-自己回帰ニューラル機械翻訳) - Deterministic Non-Autoregressive Neural Sequence Modeling by Iterative Refinement (Lee et al. 2018)
(対話的強化学習による決定論的非-自己回帰ニューラル Sequence モデリング) - Insertion Transformer: Flexible Sequence Generation via Insertion Operations (Stern et al. 2019)
(挿入 Transformer: 挿入演算を通した柔軟な Sequence 生成) - Mask-Predict: Parallel Decoding of Conditional Masked Language Models (Ghazvininejad et al., 2019)
(条件付きマスク付き言語モデルの並列デコーディング) - Levenshtein Transformer (Gu et al., 2019)
- Non-Autoregressive Neural Machine Translation (Gu et al., 2017)
- 再調整
特徴
- 一つのマシン上か複数マシンに渡るマルチ GPU 訓練 (データとモデル並列)
- 実装された複数の検索アルゴリズムを持つ CPU と GPU の両者上の高速な生成 :
- ビーム探索
- 多様な (= Diverse) ビーム探索 (Vijayakumar et al., 2016)
- サンプリング (unconstrained, top-k と top-p/nucleus)
- 語彙的に制約されたデコーディング (Post & Vilar, 2018)
- 勾配集積 は単一 GPU 上でさえも大規模ミニバッチを持つ訓練を可能にします。
- 混合精度訓練 (NVIDIA tensor コア 上でより少ない GPU メモリで高速に訓練)
- 拡張可能: 新しいモデル、criterions、タスク、optimizers と学習率スケジューラの容易な登録
- Hydra に基づく 柔軟な configuration、これはコード、コマンドラインとファイルベースの configuration の組合せを可能にします。
私達はまた便利な torch.hub インターフェイスを持つ 翻訳と言語モデリングのための事前訓練モデル を提供します :
en2de = torch.hub.load('pytorch/fairseq', 'transformer.wmt19.en-de.single_model') en2de.translate('Hello world', beam=5) # 'Hallo Welt'
より多くのサンプルについて 翻訳 と RoBERTa のための PyTorch Hub チュートリアルを見てください。
要件とインストール
- PyTorch version >= 1.5.0
- Python version >= 3.6
- 新しいモデルを訓練するためには、NVIDIA GPU と NCCL もまた必要です。
- fairseq をインストールしてローカルで開発するには :
git clone https://github.com/pytorch/fairseq cd fairseq pip install --editable ./ # on MacOS: # CFLAGS="-stdlib=libc++" pip install --editable ./ # to install the latest stable release (0.10.0) # pip install fairseq==0.10.0
- より高速な訓練のためには NVIDIA の apex ライブラリをインストールします :
git clone https://github.com/NVIDIA/apex cd 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 により増やすことを確実にしてください。
Getting Started
full ドキュメント は getting started、新しいモデルの訓練、そして新しいモデルタイプとタスクによる fairseq の拡張のための手順を含みます。
事前訓練モデルとサンプル
サンプル訓練と評価コマンドに加えて、下でリストされる幾つかのタスクのための事前訓練モデルと前処理され、バイナリ化されたテストセットを提供します。
私達はまた特定の論文から結果を再生成するためにより詳細な README も持ちます :
- Cross-lingual Retrieval for Iterative Self-Supervised Training (Tran et al., 2020)
- wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations (Baevski et al., 2020)
- Unsupervised Quality Estimation for Neural Machine Translation (Fomicheva et al., 2020)
- Training with Quantization Noise for Extreme Model Compression ({Fan*, Stock*} et al., 2020)
- Neural Machine Translation with Byte-Level Subwords (Wang et al., 2020)
- Multilingual Denoising Pre-training for Neural Machine Translation (Liu et at., 2020)
- Reducing Transformer Depth on Demand with Structured Dropout (Fan et al., 2019)
- Jointly Learning to Align and Translate with Transformer Models (Garg et al., 2019)
- Levenshtein Transformer (Gu et al., 2019)
- Facebook FAIR’s WMT19 News Translation Task Submission (Ng et al., 2019)
- RoBERTa: A Robustly Optimized BERT Pretraining Approach (Liu et al., 2019)
- wav2vec: Unsupervised Pre-training for Speech Recognition (Schneider et al., 2019)
- Mixture Models for Diverse Machine Translation: Tricks of the Trade (Shen et al., 2019)
- Pay Less Attention with Lightweight and Dynamic Convolutions (Wu et al., 2019)
- Understanding Back-Translation at Scale (Edunov et al., 2018)
- Classical Structured Prediction Losses for Sequence to Sequence Learning (Edunov et al., 2018)
- Hierarchical Neural Story Generation (Fan et al., 2018)
- Scaling Neural Machine Translation (Ott et al., 2018)
- Convolutional Sequence to Sequence Learning (Gehring et al., 2017)
- Language Modeling with Gated Convolutional Networks (Dauphin et al., 2017)
fairseq コミュニティに参加する
- Twitter: https://twitter.com/fairseq
- Facebook ページ: https://www.facebook.com/groups/fairseq.users
- Google グループ: https://groups.google.com/forum/#!forum/fairseq-users
ライセンス / Citation
(訳注: 原文参照)
以上