Pembongkaran aktivasi - Amazon SageMaker

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:

Anda dapat menerapkan fitur pembongkaran SMP aktivasi pada pos pemeriksaan PyTorch aktivasi. Ini dilakukan dengan menambahkan activation_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 FSDPkonfigurasi Anda. Untuk informasi tentang parameter sm_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)