DUICUO

ランキングのトップに返り咲いたBERTの改良版はオープンソース化されており、数千のV100コアと160GBのプレーンテキストを備えた大規模モデルを特徴としている。

Facebookは最近、BERTの改良版であるRoBERTaに関する研究の詳細を公開しました。RoBERTaはXLNetを抜いてGLUEリーダーボードのトップに躍り出ました。このモデルのコードもオープンソース化されています。

BERTは登場以来、優れたパフォーマンスを示しており、GLUEリーダーボードの上位モデルの多くはかつてBERTをベースにしていました。しかし、XLNetの登場により…

BERTの記録を破る

しかし、その後すぐに事態は一転し、Facebook の BERT の改良版である RoBERTa が GLUE のリーダーボードでトップに立った。

画像出典: https://glubenchmark.com/leaderboard/

Facebookの研究者は、トレーニングをより長期間、より大きなデータセットで行えば、

BERT はトップ層に復帰できる。

では、RoBERTaのトレーニングにはどれくらいの時間がかかり、どれくらいのデータを使用したのでしょうか?最近、Facebookの研究者が研究の詳細を発表しました。

論文リンク: https://arxiv.org/pdf/1907.11692.pdf

GitHub アドレス: https://github.com/pytorch/fairseq/tree/master/examples/roberta

RoBERTaの大きさはどれくらいですか?

以前、XLNet チームは標準の BERT と XLNet を比較していました。

公平な比較が行われました。

彼らは、同じパラメータレベル、事前学習済みデータ、ハイパーパラメータ設定の下で、両方のパフォーマンスをテストしました。もちろん、アーキテクチャとタスクを変更することで、XLNetは標準的なBERTを全面的に上回りました。しかし、BERTがXLNetを再び上回るには、はるかに多くのデータと計算能力が必要になるでしょう。

計算能力

報道によると、Facebook の研究者は、Infiniband 経由で接続された 8 つの 32GB Nvidia V100 GPU を搭載した複数の DGX-1 コンピューターで、混合精度浮動小数点演算を実行したとのことです。

しかし、研究者たちはRoBERTaが使用したV100 GPUの数やトレーニングに要した時間については明らかにしていません。わかっているのは、彼らが1024個のV100 GPUを1日で使用して大規模モデルをトレーニングしたことだけです。Google Cloudの料金体系に基づくと、その費用は60,940ドルになります。元の論文には次のように記されています。

Devlin et al. (2019) で使用されたものと同等のBOOKCORPUSとWIKIPEDIAデータセットを用いて、10万ステップの事前学習を行いました。モデルの事前学習には、1024台のV100 GPUを約1日間使用しました。

XLNetのTPUトレーニングコストも6万ドルであり、直感的にGPUトレーニングの方がTPUよりも高価であることから、上記の説明に基づいて、60,940ドルのコストはBOOKCORPUSとWIKIPEDIAデータセットのトレーニングにかかる​​コストであると推測します。さらに、XLNetデータセットは10倍に拡大し、TPUトレーニングコストは5倍に増加します。RoBERTaも同じパターンを辿っているのでしょうか?

データ

BERTモデルの事前学習の鍵となるのは、膨大な量のテキストデータです。Facebookの研究者は、サイズとドメインが異なる5つの英語コーパスを考慮し、合計160GBのプレーンテキストに及ぶ膨大なデータセットを収集しました。一方、XLNetは126GBのデータを使用しました。これらのコーパスは以下のとおりです。

  • BOOKCORPUS (Zhu et al., 2015) および英語版 Wikipedia: これは、BERT のトレーニング中に使用された生データ (16GB) です。
  • CC-NEWS: Facebook の研究者が CommonCrawl News データセットの英語部分から収集したデータ。2016 年 9 月から 2019 年 2 月までの 6,300 万件の英語ニュース記事が含まれています (フィルタリング後 76 GB)。
  • OPENWEBTEXT (Gokaslan and Cohen, 2019): Radford et al. (2019) で紹介されたWebTextコーパスのオープンソースクローン。Reddit上の共有リンクからクロールされたWebコンテンツ(38GB)が含まれています。
  • ストーリー: Trinh と Le (2018) で言及されているデータセットには、Winograd スキーマの物語スタイルに一致するようにフィルター処理された CommonCrawl データのサブセットが含まれています (31 GB)。

これはすでに膨大なデータ量であり、BERTで使用されているデータ量の10倍以上です。しかし、XLNetの作者であるYang Zhilin氏が述べているように、大量のデータが必ずしもメリットをもたらすわけではありません。量と質のバランスを取ることが重要です。おそらく、データが10倍に増加しても、高品質なデータによってもたらされる改善の数倍ほどの効果は期待できないでしょう。

RoBERTa とは何でしょうか?

FacebookはBERT事前学習済みモデルを用いた再現研究を実施し、ハイパーパラメータ調整と学習データサイズの影響を評価しました。その結果、BERTの学習は著しく不十分であることが判明しました。そこでFacebookは、BERT以降のすべての手法と同等、あるいはそれ以上の性能を持つBERTの改良版であるRoBERTaを提案しました。

これらの改善点は次のとおりです。

  • モデルのトレーニング時間が長くなり、バッチ サイズが大きく、データが多くなります。
  • 「次の文を予測する」というトレーニング目標を削除します。
  • より長いシーケンスでトレーニングします。
  • トレーニング データに適用されるマスク パターンを動的に変更します。

Facebookの研究者は、トレーニングデータセットのサイズの影響をより適切に制御するために、新たな大規模データセット「CC-NEWS」も作成しました。CC-NEWSデータセットのサイズは、他の非公開データセットと同程度です。

要約すると、RoBERTa に関する Facebook 研究者の研究貢献は次のようにまとめられます。

  • 重要な BERT 設計の選択肢とトレーニング戦略のセットを紹介し、下流のタスクのパフォーマンスを向上できるいくつかの代替方法を紹介します。
  • 新しいデータセット CCNEWS を使用して、事前トレーニングにさらに多くのデータを使用することで、下流のタスクでのモデルのパフォーマンスがさらに向上することを確認しました。
  • トレーニングの改善により、適切な設計選択を行うことで、マスクされた言語モデルの事前トレーニングのパフォーマンスが他の最近の方法に匹敵することが実証されています。

RoBERTa はどのような変更を加えましたか?

オリジナルのBERTを、非常に大規模なデータセットの事前学習に直接使用することはうまくいきません。モデルの堅牢性を向上させるには特別な技術が必要であり、Facebookの研究者は主にこれを目指しています。以下の研究者たちは、BERTが真に堅牢になるために必要な改善点を論文で明らかにし、定量化しています。

1. 静的マスクと動的マスク

BERTはランダムマスクと予測トークンに依存しています。オリジナルのBERT実装では、データの前処理中に一度だけマスク処理が実行され、結果として静的なマスクが生成されます。Facebookの研究者たちは、この戦略を、モデルにシーケンスが入力されるたびにマスクパターンを生成する動的マスクと比較しました。これは、事前学習に多くのステップが含まれる場合や、より大きなデータセットを使用する場合に特に重要になります。

表 1: BERT_BASE の静的マスクと動的マスクの比較。

2. 入力形式と次文予測のモデル化

BERTの事前学習段階では、モデルは2つの連続した文書セグメントを観測します。これらのセグメントは、同じ文書から連続してサンプリングされるか、文書の連続した部分、あるいは異なる文書からサンプリングされます。この構造をより深く理解するために、研究者たちは複数の学習形式を比較しました。

  • SEGMENT-PAIR+NSP: この方法は、BERTで使用される元の入力形式と同じです。NSPはNext Sentence Prediction(次文予測)の略です。
  • SENTENCE-PAIR+NSP: 各入力には、ドキュメントの連続した部分または異なるドキュメントからサンプリングされた自然言語の文のペアが含まれます。
  • 完全な文: 各入力には、1 つ以上のドキュメントから連続的にサンプリングされた完全な文が含まれており、合計の長さは最大 512 トークンです。
  • DOC-SENTENCES: このタイプの入力は、ドキュメントの境界を越えないことを除いて、FULL-SENTENCES と同様に構築されます。

表2: BOOKCORPUSとWIKIPEDIAで事前学習したベースモデルの開発セットの結果。すべてのモデルは、バッチサイズ256シーケンスで100万ステップ学習されました。

3. 大規模訓練

ニューラル機械翻訳分野におけるこれまでの研究では、学習率を適切に高めた上で、非常に大規模なミニバッチを用いた学習を行うことで、最適化速度と端末タスクのパフォーマンスを同時に向上できることが示されています。最近の研究では、BERTが大規模バッチ学習にも適応できることが示されています。

表 3: BOOKCORPUS と WIKIPEDIA で異なるバッチ サイズ (bsz) を使用してトレーニングされたベース モデルの、leave-out トレーニング データ (ppl) と開発セットでのパープレキシティ。

4. テキストエンコーディング

バイトペア エンコーディング (BPE) は、文字レベルと単語レベルの表現を組み合わせたもので、自然言語コーパス内の多くの一般的な単語の処理をサポートします。

オリジナルのBERT実装では、入力をヒューリスティックな単語分割ルールを用いて前処理した後に学習した、3万文字の文字レベルのBPE語彙を使用していました。Facebookの研究者は異なるアプローチを選択し、入力に対する追加の前処理や単語分割を行わずに、5万のサブワード単位を含む、はるかに大規模なバイトレベルのBPE語彙でBERTを学習しました。このアプローチにより、BERTBASEとBERTLARGEにそれぞれ1500万と2000万の追加パラメータが追加されました。

実験結果

Facebookの研究者たちは、これらの改善点をすべて組み合わせ、その影響を評価しました。これらの改善点をすべて組み合わせた手法は、RoBERTa(Robustly optimized BERT approach)と呼ばれています。

他のモデリング オプションに対するこれらの改善の重要性を明らかにするために、研究者はまず BERT LARGE アーキテクチャで RoBERTa をトレーニングし、その有効性を判断するための一連の制御実験を実施しました。

表4:開発セットにおけるRoBERTaの結果。トレーニングデータサイズ(テキストサイズ:16GBから160GB)およびトレーニングステップサイズ(トレーニングステップ数:100K→300K→500K)の増加に伴い、改善度は増加しました。コントロール実験では、表の各行は前の行の累積的な改善度を表しています。

GLUEについては、研究者らは2つの微調整設定を検討しました。最初の設定(単一タスク、開発セット)では、各GLUEタスクのトレーニングデータのみを使用して、RoBERTaを個別に微調整しました。2つ目の設定(アンサンブル、テストセット)では、GLUEリーダーボードを使用してRoBERTaを他の手法と比較しました。

表5: GLUEにおける複数のモデルの結果。すべての結果は24層モデルアーキテクチャに基づいています。