すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:参考文献: トレーニングパフォーマンスのベンチマーク

最終更新日:Jul 22, 2024

このトピックでは、Pai-Megatron-Patchを使用してPyTorch変圧器のトレーニングを最適化する場合のトレーニングパフォーマンスのベンチマークについて説明します。

混合精度トレーニング

トレーニング環境: 英語でHugging Faceによって開発されたBERTの事前トレーニング環境。

  • num-レイヤー12

  • 隠しサイズの768

  • num-注意-ヘッド12

  • num-params 110106428

  • ローカルランク4

  • seq-length 512

  • マイクロバッチサイズ16

  • global-batch-size 64

解決策

スループット (サンプル /秒)

ピークメモリ (MB)

単精度トレーニング

103.07 +/- 1.03

17,025

混合精度トレーニング

178.15 +/- 2.10

12,698

分散メモリ最適化: モデル状態分割

トレーニング環境: 英語でメガトロンによって開発されたGPTの事前トレーニング環境。

  • num-layers 24

  • hidden-size 2048

  • num-attention-heads 32

  • num-params 1313722368 (1.3 billion)

  • local-rank 4

  • seq-length 1024

  • micro-batch-size 1

  • global-batch-size 4

PyTorchネイティブ分散データ並列処理により、メモリ不足 (OOM) 例外が発生する場合があります。 これは、モデルを32 GBメモリに基づいて実行できないためです。 Adam Optimizerの設定では、最大16 GBのメモリを消費できます。 break

解決策

スループット (サンプル /秒)

ピークメモリ (MB)

加速技術なし

OOM

OOM

混合精度トレーニング

9.57 +/- 0.26

25,061

混合精度トレーニング、およびOptimizer state Sharding (OSS) を使用したモデル状態分割

6.02 +/- 0.06

22,077

混合精度トレーニング、およびOSSまたはSharded Data Parallel (SDP) を使用したモデル状態分割

7.01 +/- 0.07

17,113

混合精度トレーニング、およびFSDP (Fully Sharded Data Parallel) を使用したモデル状態分割

N/A

N/A

混合精度トレーニング、およびZero Redundancy optimizer (ZeRO) を使用したオプティマイザの状態分割

12.88 +/- 0.10

15,709

混合精度トレーニング、およびZeROを使用したオプティマイザ状態と勾配の分割

10.27 +/- 0.08

15,693

混合精度トレーニング、およびZeROを使用したオプティマイザの状態、勾配、およびパラメータの分割

N/A

N/A

3D並列処理

トレーニング環境: 英語でメガトロンによって開発されたGPTの事前トレーニング環境。

  • num-layers 24

  • hidden-size 2048

  • num-attention-heads 32

  • num-params 1313722368 (1.3 billion)

  • local-rank 4

  • seq-length 1024

  • micro-batch-size 1

  • global-batch-size 4

次の表に、3D並列処理と混合精度トレーニングを同時に有効にする場合のベンチマークを示します。

演算子の分割

パイプライン並列性

スループット (サンプル /秒)

ピークメモリ (MB)

1

1

9.63 +/- 0.29

25,061

2

1

7.59 +/- 0.14

11,300

4

1

6.16 +/- 0.06

5,673

1

2

8.46 +/- 0.17

12,375

1

4

8.03 +/- 0.12

8,141

2

2

7.37 +/- 0.11

6,211

4

4

6.24 +/- 0.08

5,673

ONNXランタイムのグラフ最適化

トレーニング環境: 英語でHugging Faceによって開発されたBERTの微調整。

  • num-layers 12

  • hidden-size 768

  • num-attention-heads 12

  • num-params 110106428

  • local-rank 4

  • seq-length 512

  • micro-batch-size 16

  • global-batch-size 64

次の表に、グラフのパフォーマンスを15.6% で最適化する場合のベンチマークを示します。

解決策

スループット (サンプル /秒)

ピークメモリ (MB)

単精度トレーニング

479.15 +/- 1.67

2,112

混合精度トレーニング

589.66 +/- 4.79

2,127

ONNXランタイムのグラフ最適化

554.24 +/- 1.98

2,430

ONNXランタイムのグラフ最適化と混合精度トレーニング

614.70 +/- 8.69

2,289