核心概念
Transformerベースの大規模言語モデルの学習において、ボキャブラリー層に起因するパイプラインステージ間の計算およびメモリ使用量の不均衡を解消することで、スループットを向上させ、ピークメモリ使用量を削減できる。
要約
ボキャブラリー並列化によるパイプライン並列化のバランス調整
本論文は、Transformerベースの大規模言語モデル(LLM)の学習における、パイプライン並列化におけるボキャブラリー層に起因する非効率性に対処する新しい手法を提案しています。
パイプライン並列化における課題
LLMの学習には、モデル並列化とパイプライン並列化(PP)という2つの主要な並列化手法が用いられます。PPは、モデルを複数のステージに分割し、各ステージを異なるデバイスに配置することで、大規模なモデルの学習を可能にします。しかし、PPには、パイプラインバブルと高いメモリ消費という2つの課題があります。
- パイプラインバブル: パイプラインステージ間での計算の依存関係により、一部のステージがアイドル状態になり、計算リソースの利用効率が低下することがあります。
- 高いメモリ消費: PPでは、パイプラインバブルを削減するために、複数のマイクロバッチのアクティベーションをメモリに保持する必要があるため、メモリがボトルネックになることがよくあります。
ボキャブラリー層の不均衡問題
従来のPPの実装では、Transformer層はパイプラインステージ間で均等に分散されますが、入力層と出力層(ボキャブラリー層)はそれぞれ最初のステージと最後のステージに配置されます。この不均衡な構成は、以下の2つの理由から、計算とメモリの両方においてパフォーマンスを大幅に低下させます。
- 計算の不均衡: ボキャブラリー層の計算コストは、Transformer層よりも大幅に高くなる可能性があります。その結果、ボキャブラリー層が配置されたステージの計算時間が長くなり、他のステージでパイプラインバブルが発生します。
- メモリの不均衡: 入力層は、モデルパラメータとアクティベーションの両方を大量に消費するため、最初のステージでメモリボトルネックが発生しやすくなります。
ボキャブラリー並列化
本論文では、PPにおける計算とメモリの不均衡問題に対処するために、ボキャブラリー並列化という新しい手法を提案しています。この手法では、ボキャブラリー層をボキャブラリー次元で分割し、すべてのパイプラインデバイスに均等に分散します。これにより、ボキャブラリー層の計算とパラメータメモリが効果的に分散され、パイプラインステージ間のバランスが向上します。
ボキャブラリーパスの構築とスケジューリング
ボキャブラリー並列化を実現するために、ボキャブラリー層の計算を複数のパイプラインパスに分割し、既存のパイプラインスケジュールに統合する手法を提案しています。具体的には、以下の3つのステップで実現します。
- ボキャブラリーパスの構築: ボキャブラリー層の計算を、前方パス、後方パス、および通信バリアを含む複数のパスに分割します。
- 通信バリアの最適化: ソフトマックス計算で必要となるAll-reduce通信などの通信バリアの数を削減するアルゴリズムを提案しています。
- パイプラインスケジューリング: ボキャブラリーパスを既存のパイプラインスケジュール(1F1B、V-Halfなど)に統合する手法を提案しています。
評価
提案手法を評価するために、最大32個のNVIDIA A100 GPUを用いて、様々なモデルサイズとボキャブラリーサイズのGPT系モデルの事前学習実験を行いました。実験の結果、提案手法は、従来手法と比較して、スループットを最大51%向上させ、ピークメモリ使用量を削減できることが確認できました。
まとめ
本論文では、LLMの学習におけるパイプライン並列化の効率性を向上させるボキャブラリー並列化という新しい手法を提案しました。提案手法は、ボキャブラリー層の計算とメモリを効果的に分散することで、パイプラインステージ間のバランスを向上させ、スループットの向上とピークメモリ使用量の削減を実現します。
統計
Gemma2 9B (ボキャブラリーサイズ256k) では、出力層の計算量とパラメータメモリはTransformer層の約5倍である。
10Bモデル(シーケンス長2048)の場合、ボキャブラリーサイズを64kから128kに増やすと、MFUが9.7%低下する。
21Bモデルの場合、Vocabulary Parallelismは、MFUにおいて、インターレースドパイプラインよりも6.7%から8.2%優れている。
ベースラインと比較して、Vocab-1は、MFUにおいて、7.2%から143%の間で常に優れている。
ベースラインでは、パイプラインデバイス間で最大45GBのメモリ 불균형 が発生する。