Topik ini menjelaskan skenario penggunaan Pai-Megatron-Patch dan parameter yang dapat diatur saat menggunakan PAI-Rapidformer untuk mempercepat pelatihan transformer. Disarankan untuk membaca topik ini sebelum menggunakan PAI-Rapidformer.
Pengaturan Saklar Akselerasi: Parameter pada MoE Berderajat Rendah
Pengaturan Saklar Akselerasi: Parameter pada Pelatihan Presisi Campuran
Pengaturan Saklar Akselerasi: Parameter pada Paralelisme 3D (Paralelisme Data, Tensor, dan Pipeline)
Pengaturan Saklar Akselerasi: Parameter pada Pelatihan Beban CPU
Pengaturan Saklar Akselerasi: Parameter pada Aktivasi Checkpoint
Pengaturan Saklar Akselerasi: Parameter pada Akumulasi Gradien
Pengaturan Saklar Akselerasi: Parameter pada Iterator Data Dynamic Shape
Pengaturan Saklar Akselerasi: Parameter pada Pengoptimal Fusi Berbasis Operasi
Skenario
Mempercepat fine-tuning transformer secara black-box
Mempercepat pre-training transformer secara black-box
Mempercepat fine-tuning transformer secara white-box dengan menggunakan template kode Finetuner
Mempercepat pre-training transformer secara white-box dengan menggunakan template kode Pretrainer
Pengaturan pelatihan reguler: Parameter pada data
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--micro-batch-size | Integer | Ya | Tidak ada | N/A | Ukuran batch setiap GPU. |
--global-batch-size | Integer | Ya | Tidak ada | N/A | Ukuran batch semua GPU dalam pelatihan terdistribusi. |
--tokenizer-type | String | Tidak | Tidak ada |
| Jenis analisis. |
--split | String | Tidak | 969, 30, 1 | N/A | Pembagian set pra-pelatihan, pelatihan, validasi, dan pengujian. |
--data-impl | String | Tidak | mmap |
| Cara dataset terindeks dilakukan pra-pelatihan. |
--data-path | String | Ya | Tidak ada | N/A | Path file tempat set pra-pelatihan disimpan. |
--data-dir | String | Tidak | Tidak ada | N/A | Path file tempat dataset untuk fine-tuning disimpan. |
--data-name | String | Ya | Tidak ada | N/A | Nama file tempat dataset untuk fine-tuning disimpan. |
Pengaturan pelatihan reguler: Parameter pada transformer
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--pretrained-model-name-or-path | String | Ya | Tidak ada | N/A | Nama atau path transformer yang akan dilakukan pra-pelatihan. |
--num-layers | Integer | Ya | Tidak ada | N/A | Jumlah lapisan. |
--hidden-size | Integer | Ya | Tidak ada | N/A | Dimensi lapisan tersembunyi. |
--num-attention-heads | Integer | Ya | Tidak ada | N/A | Jumlah kepala dalam lapisan perhatian diri. |
--max-position-embeddings | Integer | Ya | Tidak ada | N/A | Panjang urutan untuk penyematan posisi. |
--seq-length | Integer | Ya | Tidak ada | N/A | Panjang urutan. |
Pengaturan pelatihan reguler: Parameter pada pelatihan
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--task | String | Ya | Tidak ada |
| Nama tugas pelatihan. |
--save | String | Ya | Tidak ada | N/A | Path file tempat transformer disimpan. |
--lr | Float | Ya | Tidak ada | N/A | Tingkat pembelajaran. |
--lr-decay-style | String | Ya | linear |
| Skema penurunan tingkat pembelajaran. |
--weight-decay | Float | Ya | 0.01 | N/A | Nilai penurunan bobot. |
--clip-grad | Float | Tidak | 1 | N/A | Nilai pemotongan gradien. |
--lr-warmup-fraction | Float | Tidak | Tidak ada | N/A | Pemanasan tingkat pembelajaran. |
--train-iters | Integer | Ya | Tidak ada | N/A | Jumlah iterasi. |
--epochs | Integer | Tidak | Tidak ada | N/A | Jumlah epoch. |
--log-interval | Integer | Tidak | 100 | N/A | Interval tampilan log. |
Pengaturan saklar akselerasi: Parameter pada MoE bergerbang jarang
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--num-experts | Integer | Tidak | Tidak ada | N/A | Jumlah lapisan mixture-of-experts (MoE). |
Pengaturan saklar akselerasi: Parameter pada pelatihan presisi campuran
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--mixed-precision | Boolean | Tidak | Tidak ada | N/A | Menentukan apakah akan mengaktifkan transfer data FP16. |
Catatan: Pelatihan presisi campuran hanya dapat diaktifkan jika menggunakan template kode Trainer, Pretrainer, atau Finetuner yang disediakan oleh PAI-Rapidformer.
Pengaturan saklar akselerasi: Parameter pada partisi status model menggunakan ZeRO, OSS, SDP, atau FSDP
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--oss-memory-optimization | Boolean | Tidak | N/A | N/A | Menentukan apakah akan menggunakan Optimizer State Sharding (OSS) untuk mempartisi status pengoptimal. |
--oss-sdp-memory-optimization | Boolean | Tidak | N/A | N/A | Menentukan apakah akan menggunakan Sharded Data Parallel (SDP) untuk mempartisi status pengoptimal dan gradien. |
--fsdp-memory-optimization | Boolean | Tidak | N/A | N/A | Menentukan apakah akan menggunakan Fully Sharded Data Parallel (FSDP) untuk mempartisi status pengoptimal, gradien, dan parameter. |
--zero-1-memory-optimization | Boolean | Tidak | N/A | N/A | Menentukan apakah akan menggunakan Zero Redundancy Optimizer (ZeRO) untuk mempartisi status pengoptimal. |
--zero-2-memory-optimization | Boolean | Tidak | N/A | N/A | Menentukan apakah akan menggunakan ZeRO untuk mempartisi status pengoptimal dan gradien. |
--zero-3-memory-optimization | Boolean | Tidak | N/A | N/A | Menentukan apakah akan menggunakan ZeRO untuk mempartisi status pengoptimal, gradien, dan parameter. |
Catatan: ZeRO hanya dapat digunakan jika menggunakan template kode Trainer. OSS, SDP, atau FSDP dapat digunakan jika tidak menggunakan template kode Trainer.
Pengaturan saklar akselerasi: Parameter pada paralelisme 3D (paralelisme data, tensor, dan pipeline)
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--tensor-model-parallel-size | Integer | Tidak | 1 | N/A | Ukuran paralelisme tensor. |
--pipeline-model-parallel-size | Integer | Tidak | 1 | N/A | Ukuran paralelisme pipeline. |
Catatan:
Untuk mengaktifkan paralelisme 3D dan partisi status model secara bersamaan, ZeRO hanya dapat digunakan untuk mempartisi status pengoptimal dan gradien, atau hanya mempartisi status pengoptimal.
Paralelisme 3D hanya dapat diaktifkan jika menggunakan template kode Trainer.
Pengaturan saklar akselerasi: Parameter pada optimasi graf
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--onnx-runtime-training | Boolean | Tidak | Tidak ada | N/A | Menentukan apakah akan mengaktifkan optimasi graf yang disediakan oleh ONNX Runtime. |
Pengaturan saklar akselerasi: Parameter pada pelatihan beban CPU
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--cpu-offload | Boolean | Tidak | Tidak ada | N/A | Menentukan apakah akan mengaktifkan pelatihan beban CPU. |
Catatan: Untuk mengaktifkan pelatihan beban CPU dan partisi status model secara bersamaan, ZeRO harus digunakan untuk partisi status model.
Pengaturan saklar akselerasi: Parameter pada aktivasi checkpoint
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--checkpoint-activations | Boolean | Tidak | Tidak ada | N/A | Menentukan apakah akan mengaktifkan checkpoint. |
Pengaturan saklar akselerasi: Parameter pada akumulasi gradien
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--micro-batch-size | Integer | Ya | 1 | N/A | Ukuran mini-batch. |
--global-batch-size | Integer | Ya | 1 | N/A | Ukuran batch global. |
Catatan:
Akumulasi gradien hanya dapat diaktifkan jika menggunakan template kode Pretrainer atau Finetuner untuk pra-pelatihan berbasis iterasi. Tidak dapat diaktifkan jika melakukan fine-tuning berbasis epoch.
Hasil akumulasi gradien dapat dihitung otomatis berdasarkan nilai parameter dalam tabel sebelumnya dan nilai parameter rank.
Pengaturan saklar akselerasi: Parameter pada iterator data Dynamic Shape
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--data-iterator dynamic-shape | String | Tidak | Tidak ada |
| Iterator data Dynamic Shape. |
Catatan: Iterator data Dynamic Shape hanya dapat diaktifkan jika menggunakan template kode Pretrainer untuk pra-pelatihan.
Pengaturan saklar akselerasi: Parameter pada pengoptimal fusi berbasis operasi
Parameter | Tipe | Diperlukan | Nilai default | Nilai enumerasi | Deskripsi |
--optimizers | String | Ya | apex_adam |
| Apex fused adam/lamb |