Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pembongkaran aktivasi
penting
Di SMP v2.2.0, fungsionalitas pembongkaran aktivasi SMP perpustakaan tidak berfungsi. Gunakan pembongkaran PyTorch aktivasi asli sebagai gantinya.
Biasanya, pass maju menghitung aktivasi pada setiap lapisan dan menyimpannya dalam GPU memori sampai pass mundur untuk lapisan yang sesuai selesai. Membongkar tensor ini ke CPU memori setelah forward pass dan mengambilnya kembali GPU saat dibutuhkan dapat menghemat penggunaan memori yang substansif. GPU PyTorch mendukung aktivasi pembongkaran, tetapi implementasinya GPUs menyebabkan idle saat aktivasi diambil kembali selama pass mundur. CPU Hal ini menyebabkan penurunan kinerja yang besar saat menggunakan pembongkaran aktivasi.
SMPv2 meningkatkan pembongkaran aktivasi ini. Ini mengambil aktivasi sebelumnya sebelum aktivasi diperlukan GPU untuk memulai meneruskan aktivasi tersebut. Fitur pra-pengambilan membantu kemajuan pelatihan dijalankan lebih efisien tanpa idle. GPUs Ini menghasilkan menawarkan manfaat dari penggunaan memori yang lebih rendah tanpa penurunan kinerja.
Anda dapat menyimpan PyTorch modul asli untuk pembongkaran aktivasi dalam skrip pelatihan Anda. Berikut ini adalah contoh struktur penerapan fitur pembongkaran SMP aktivasi dalam skrip Anda. Perhatikan bahwa pembongkaran aktivasi hanya berlaku jika digunakan bersama denganPos pemeriksaan aktivasi. Untuk mempelajari lebih lanjut tentang alat PyTorch pos pemeriksaan asli untuk pembongkaran aktivasi, lihat:
-
checkpoint_wrapper.py
di PyTorch GitHubrepositori -
Aktivasi Checkpointing
di PyTorch blog Scaling Model Yayasan Multi-modal dengan Didistribusikan. TorchMultimodal PyTorch
Anda dapat menerapkan fitur pembongkaran SMP aktivasi pada pos pemeriksaan PyTorch aktivasiactivation_loading_horizon
parameter sm_activation_offloading
dan ke kamus SMP konfigurasi selamaLangkah 2: Luncurkan pekerjaan pelatihan.
Cuplikan kode berikut menunjukkan cara menambahkan modul SMP inisialisasi torch.sagemaker.init()
ke skrip pelatihan Anda dan menyiapkan kamus SMP konfigurasi dalam JSON format untuk pelatihan peluncur pekerjaan sambil mengikuti proses dua langkah yang diperkenalkan. Gunakan perpustakaan paralelisme SageMaker model v2 Anda tidak perlu membuat perubahan apa pun pada PyTorch model atau PyTorch FSDPsm_activation_offloading
dan activation_loading_horizon
, lihat SMPParameter konfigurasi fitur inti v2.
SMPkonfigurasi
{ "activation_loading_horizon": 2, "sm_activation_offloading": True }
Dalam naskah pelatihan
catatan
Saat mengaktifkan fitur pembongkaran SMP aktivasi, pastikan Anda juga menggunakan PyTorch offload_wrapper
fungsi tersebut dan menerapkannya ke modul root. Fitur pembongkaran SMP aktivasi menggunakan modul root untuk menentukan kapan penerusan maju dilakukan untuk memulai pra-pengambilan.
import torch.sagemaker as tsm tsm.init() # Native PyTorch module for activation offloading from torch.distributed.algorithms._checkpoint.checkpoint_wrapper import ( apply_activation_checkpointing, offload_wrapper, ) model = FSDP(...) # Activation offloading requires activation checkpointing. apply_activation_checkpointing( model, check_fn=
checkpoint_transformer_layers_policy
, ) model = offload_wrapper(model)