Topik ini menjelaskan benchmark performa pelatihan menggunakan Pai-Megatron-Patch untuk mengoptimalkan pelatihan transformer PyTorch.
Pelatihan presisi campuran
Lingkungan Pelatihan: Lingkungan pra-pelatihan BERT yang dikembangkan oleh Hugging Face dalam bahasa Inggris.
num-layers 12
hidden-size 768
num-attention-heads 12
num-params 110.106.428
local-rank 4
seq-length 512
micro-batch-size 16
global-batch-size 64
Solusi | Throughput (sampel/detik) | Memori puncak (MB) |
Pelatihan presisi tunggal | 103,07 +/- 1,03 | 17.025 |
Pelatihan presisi campuran | 178,15 +/- 2,10 | 12.698 |
Optimasi memori terdistribusi: Partisi status model
Lingkungan Pelatihan: Lingkungan pra-pelatihan GPT yang dikembangkan oleh Megatron dalam bahasa Inggris.
num-layers 24
hidden-size 2048
num-attention-heads 32
num-params 1.313.722.368 (1,3 miliar)
local-rank 4
seq-length 1024
micro-batch-size 1
global-batch-size 4
Distribusi data paralel asli PyTorch dapat menyebabkan pengecualian kehabisan memori (OOM) karena model tidak dapat dijalankan dengan memori sebesar 32 GB. Konfigurasi Adam Optimizer dapat mengonsumsi hingga 16 GB memori.
Solusi | Throughput (sampel/detik) | Memori puncak (MB) |
Tidak ada teknologi akselerasi | OOM | OOM |
Pelatihan presisi campuran | 9,57 +/- 0,26 | 25.061 |
Pelatihan presisi campuran, dan partisi status model menggunakan Optimizer State Sharding (OSS) | 6,02 +/- 0,06 | 22.077 |
Pelatihan presisi campuran, dan partisi status model menggunakan OSS atau Sharded Data Parallel (SDP) | 7,01 +/- 0,07 | 17.113 |
Pelatihan presisi campuran, dan partisi status model menggunakan Fully Sharded Data Parallel (FSDP) | N/A | N/A |
Pelatihan presisi campuran, dan partisi status optimizer menggunakan Zero Redundancy Optimizer (ZeRO) | 12,88 +/- 0,10 | 15.709 |
Pelatihan presisi campuran, dan partisi status optimizer serta gradien menggunakan ZeRO | 10,27 +/- 0,08 | 15.693 |
Pelatihan presisi campuran, dan partisi status optimizer, gradien, serta parameter menggunakan ZeRO | N/A | N/A |
Paralelisme 3D
Lingkungan Pelatihan: Lingkungan pra-pelatihan GPT yang dikembangkan oleh Megatron dalam bahasa Inggris.
num-layers 24
hidden-size 2.048
num-attention-heads 32
num-params 1.313.722.368 (1,3 miliar)
local-rank 4
seq-length 1.024
micro-batch-size 1
global-batch-size 4
Tabel berikut menjelaskan benchmark ketika paralelisme 3D dan pelatihan presisi campuran diaktifkan secara bersamaan.
Pemisahan operator | Paralelisme pipeline | Throughput (sampel/detik) | Memori puncak (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 |
Optimasi graf ONNX Runtime
Lingkungan Pelatihan: Fine-tuning BERT yang dikembangkan oleh Hugging Face dalam bahasa Inggris.
num-layers 12
hidden-size 768
num-attention-heads 12
num-params 110.106.428
local-rank 4
seq-length 512
micro-batch-size 16
global-batch-size 64
Tabel berikut menjelaskan benchmark ketika performa graf dioptimalkan sebesar 15,6%.
Solusi | Throughput (sampel/detik) | Memori puncak (MB) |
Pelatihan presisi tunggal | 479,15 +/- 1,67 | 2.112 |
Pelatihan presisi campuran | 589,66 +/- 4,79 | 2.127 |
Optimasi graf ONNX Runtime | 554,24 +/- 1,98 | 2.430 |
Optimasi graf ONNX Runtime dan pelatihan presisi campuran | 614,70 +/- 8,69 | 2.289 |