コンシューマーグレードの GPU でたった 1 日でトレーニングすると、どのような BERT モデルが得られるでしょうか?
最近、言語モデルによって AI の分野が再び人気を集めています。事前トレーニングされた言語モデルの教師なしトレーニング属性により、大量のサンプルに基づいてトレーニングされ、大量の意味論的および文法的知識を取得できます。分類でも質疑応答でも、AI が問題なく学習できるようです。解決できません。
しかし、大規模モデルは技術的なブレークスルーをもたらすだけでなく、コンピューティング能力に対する際限のない要求も引き起こします。
最近、メリーランド大学の Jonas Geiping と Tom Goldstein は、コンピューティングのスケールアップに関するすべての研究について話し合い、コンピューティングのスケールダウンにおける改善の方向性を掘り下げました。彼らの研究は機械学習コミュニティの注目を集めています。
新しい研究で、著者は単一のコンシューマーグレード GPU (RTX 2080Ti) でどのような種類の言語モデルをトレーニングできるかについて議論し、刺激的な結果を得ました。それがどのように実装されるかを見てみましょう:
自然言語処理 (NLP) の分野では、Transformer アーキテクチャに基づく事前トレーニング モデルが主流となり、多くの成果をもたらしました。画期的な進歩。これらのモデルの強力なパフォーマンスの主な理由は、その規模が大きいことにあります。モデルのパラメーターとデータの量が増加するにつれて、モデルのパフォーマンスは向上し続けます。その結果、NLP 分野内ではモデルのサイズを増やす競争が起きています。
しかし、大規模言語モデル (LLM) をトレーニングできると信じている研究者や実践者はほとんどおらず、通常、LLM をトレーニングするリソースを持っているのは業界の大手テクノロジー企業だけです。
この傾向を逆転させるために、メリーランド大学の研究者たちはいくつかの調査を実施しました。
論文「クラミング: 1 日で単一 GPU で言語モデルをトレーニングする」:
論文リンク: https://arxiv.org/ abs /2212.14034
この問題は、モデルのトレーニング コストの基準となり、非常に高額な LLM トレーニング コストのボトルネックを打破することが期待されるため、ほとんどの研究者や実践者にとって非常に重要です。この研究論文はすぐにツイッター上で注目と議論を引き起こした。
IBM の NLP 研究専門家、Leshem Choshen 氏は Twitter で次のようにコメントしました:「この論文には、考えられるすべての大規模モデルのトレーニング手法がまとめられています。」
メリーランド大学の研究者らは、縮小モデルの事前トレーニングが大規模な事前トレーニングの実行可能なシミュレーションである場合、これにより大規模モデルに関する一連のさらなる学術研究が可能になると考えています。現時点では達成が困難です。
さらに、この研究では、モデル サイズの影響だけでなく、過去数年間の NLP 分野の全体的な進歩をベンチマークしようとしています。
この研究では、テストの前日に言語モデル全体を学習する「詰め込み」と呼ばれる課題が作成されました。研究者らはまず、どの変更が実際に小規模シミュレーション モデルのパフォーマンスを向上させることができるかを理解するために、トレーニング パイプラインの側面を分析しました。そして、この研究では、このような制約のある環境であっても、モデルのパフォーマンスは大規模なコンピューティング環境で観察されるスケーリング則に厳密に従っていることが示されています。
モデル アーキテクチャを小さくすると勾配計算を高速化できますが、モデル全体の改善率は時間が経ってもほとんど変わりません。この研究では、拡張則を使用して、モデルのサイズに影響を与えることなく勾配計算の効率を向上させることでパフォーマンスの向上を実現しようとしています。最終的に、この研究は、低いトレーニング コストで、GLUE タスクで BERT に近い、またはそれを超える、かなりのパフォーマンスを備えたモデルをトレーニングすることに成功しました。
一般の実務家や研究者のリソース環境をシミュレートするために、この研究ではまずリソースが限られた研究環境を構築しました。
改善方法
実験は PyTorch で行われ、できる限り公平を期すために特殊な実装は使用せず、すべてが PyTorch フレームワークの実装レベルに維持され、すべてのコンポーネントに適用できる自動オペレーター フュージョンのみが許可されます。効率的なアテンション カーネルは、最終的なアーキテクチャ バリアントが選択された後にのみ再度有効になります。
図 1: MLM 損失関数とさまざまな変圧器アーキテクチャ バリアントのトークンの比較
左: グローバル ビュー。右: 10e8 およびその他のトークンを拡大しました。
すべてのモデルは同じ計算能力コストでトレーニングされており、アーキテクチャの再構築によって達成される改善は最小限であることがわかります。
パフォーマンスの向上に関して、私たちが最初に考える方法は、モデル アーキテクチャを変更することです。直感的には、1 日 1 枚のカードのトレーニングには、より小型/低容量のモデルが最適であると思われます。しかし、研究者らはモデルのタイプとトレーニング効率の関係を研究した結果、スケーリングの法則がダウンサイジングにとって大きな障害となることを発見しました。各トークンのトレーニング効率は、トランスフォーマーのタイプではなくモデルのサイズに大きく依存します。
さらに、モデルが小さいと学習効率が低下するため、スループットの向上が大幅に遅くなります。幸いなことに、同じサイズのモデルではトレーニング効率がほぼ同じままであるという事実は、主に単一の勾配ステップに影響を与える計算時間に基づいて設計の選択を行い、同様のパラメーター番号を持つ適切なアーキテクチャを探すことができることを意味します。
図 2: 学習率のスケジュール
動作は世界的に似ていますが、中央のズームインで違いが存在することがわかります。
この研究では、著者らは BERT ベースのアーキテクチャに対するトレーニング ハイパーパラメータの影響を研究しました。当然のことながら、元の BERT トレーニング方法のモデルはクラミング スタイルのトレーニング要件ではうまく機能しなかったため、研究者らはいくつかの標準的な選択肢を再検討しました。
著者は、データセットを最適化するというアイデアも研究しました。スケーリングの法則により、アーキテクチャの変更による (計算効率を超えた) 大きな利益は妨げられますが、スケーリングの法則は、より優れたデータでのトレーニングを妨げるものではありません。 1 秒あたりにより多くのトークンをトレーニングしたい場合は、より優れたトークンでトレーニングすることを検討する必要があります。
図 3: bookcorpus-wikipedia データのクラミング スタイル トレーニングでトレーニングされたモデルの語彙サイズと GLUE スコアおよび MNLI 精度の関係。
研究者は、GLUE ベンチマークと WNLI のパフォーマンスを体系的に評価しています。前のセクションでは MNLI (m) のみが使用され、完全な GLUE スコアに基づいていないことに注意してください。ハイパーパラメーターを調整します。新しい研究では、著者らは、バッチサイズ 32、学習率 2 × 10-5 で、BERT ベースの 5 エポックのすべてのデータセットを微調整しました。これは、クラミング トレーニングされたモデルにとっては最適ではありません。バッチ サイズ 16、学習率 4 × 10−5 (コサイン減衰あり) からわずかな改善が得られます (この設定では、事前トレーニングされた BERT チェック ポイントは改善されません)。
表 3 と表 4 は、GLUE ダウンストリーム タスクにおけるこのセットアップのパフォーマンスを示しています。著者らは、元の BERT ベースのチェック ポイント、計算能力の制限に達した後に停止する BERT 事前トレーニング設定、Izsak らによる 2021 年の研究で説明されている設定、および GPU ごとに 1 日トレーニングする修正設定を比較しました。設定。全体として、特に MNLI、QQP、QNLI、SST-2 などの大規模なデータセットのパフォーマンスは驚くほど良好で、ダウンストリームの微調整により、完全な BERT モデルとクラミング設定バリアント間の残りの差異を平滑化できます。
さらに、著者らは、この新しい方法が、計算能力が限られた通常の BERT トレーニングや Izsak らによって説明された方法と比較して大幅に改善されていることを発見しました。 Izsak らによる研究では、説明されている方法はもともとフル 8 GPU ブレード サーバー用に設計されており、新しいシナリオでは、BERT の大規模モデルをより小さい GPU に圧縮することがパフォーマンスのほとんどを担っていました。衰退。
表 3: ベースライン BERT モデルとクラミング バージョン モデルの GLUE 開発パフォーマンスの比較
すべてのタスクのハイパーパラメータは固定されており、エポック制限は 5 です、欠損値は NaN です。これは 8 GPU ブレード サーバー向けに設計されており、すべてのコンピューティングが 1 つの GPU に詰め込まれています。
表 4: ベースライン BERT とパディング モデル間の GLUE 開発パフォーマンスの比較
全体的に、論文の方法を使用すると、トレーニング結果は非常に近いものになります。元の BERT ですが、後者は新しい方法よりも 45 ~ 136 倍の合計 FLOPS を使用することに注意してください (16 個の TPU で 4 日かかります)。そして、トレーニング時間が 16 倍に延長されると (8 つの GPU で 2 日間のトレーニング)、新しいメソッドのパフォーマンスは実際に元の BERT よりも大幅に向上し、RoBERTa のレベルに達します。
この作業では、計算が非常に制限された環境で、トランスフォーマー ベースの言語モデルがどの程度のパフォーマンスを達成できるかについて説明しました。幸いなことに、いくつかの変更方向により、下流で良好なパフォーマンスを得ることができます。のり。研究者らは、この研究がさらなる改善のためのベースラインを提供し、近年変圧器アーキテクチャに対して提案されている多くの改善や技術の理論的裏付けをさらに提供できることを期待しています。
以上が1 日 1 枚のカード チャレンジ: RTX2080Ti が大規模モデルのトレーニングを処理し、コンピューティング パワーを 136 倍節約し、学術コミュニティから歓声が上がりました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。