大規模言語モデル(LLM)トレーニングのスケーリング:単一チップからデータセンターへ。第4章 トランスフォーマーのトレーニング
この章では、複数のアクセラレータでトランスフォーマーをトレーニングするための4つの並列処理方式、すなわちデータ並列処理、完全シャーディングデータ並列処理(FSDP)、テンソル並列処理、パイプライン並列処理について概説します。それぞれの利点、欠点、および組み合わせるべきタイミングについて議論し、スケーラビリティのために計算バウンドなパフォーマンスを達成することの重要性を強調します。
この記事では、Transformerを効率的かつ大規模に訓練する方法について説明します。モデルの次元(D、F、B、T、L)とハードウェア(C、W、X、Y、Z)の表記法を導入します。4つの並列化タイプについて説明します。データ並列化は、バッチをアクセラレータ間で分割し、勾配集約のためにAllReduceを必要とし、モデルが1つのアクセラレータに収まる場合に効果的です。FSDP(ZeRO)は、モデルの重み、勾配、オプティマイザの状態を分割し、AllGatherとReduceScatterを使用し、小さなバッチサイズで計算バウンドになります。テンソル並列化は、重み行列を分割し、アクティベーションを交換し、FSDPと組み合わせることで、アクティベーションのサイズを重みに対して相対的に小さくするのに最適です。パイプライン並列化は、モデルをレイヤー間で分割し、データ転送を最小限に抑えますが、「パイプラインバブル」を導入し、マイクロバッチングや計算のオーバーラップによって緩和できます。この記事では、FSDP+TPの組み合わせはほぼ常に計算バウンドであり、パイプライン処理はGPUクラスタで一般的であると述べています。最後に、オーバーヘッドを管理しながらスケーリングすることが目標であると結論付けています。
出典: Habr — хаб ИИ —
原文
