View a markdown version of this page

Aktivasi Pelepasan - Amazon SageMaker AI

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Aktivasi Pelepasan

Ketika checkpointing aktivasi dan paralelisme pipa dihidupkan dan jumlah mikrobatch lebih besar dari satu, pelepasan aktivasi adalah fitur tambahan yang selanjutnya dapat mengurangi penggunaan memori. Pelepasan aktivasi secara asinkron memindahkan aktivasi checkpoint yang sesuai dengan mikrobatch mereka yang saat ini tidak berjalan di CPU. Tepat sebelum GPU membutuhkan aktivasi untuk pass mundur microbatch, fungsi ini mengambil pra-mengambil aktivasi yang diturunkan kembali dari CPU.

catatan

Fitur ini tersedia untuk pustaka PyTorch paralelisme SageMaker model v1.6.0 dan yang lebih baru.

Cara Menggunakan Activation Offloading

Gunakan offloading aktivasi untuk mengurangi penggunaan memori ketika jumlah microbatch lebih besar dari 1, dan checkpointing aktivasi diaktifkan (lihat). Pengecekan Aktivasi Ketika checkpointing aktivasi tidak digunakan, pelepasan aktivasi tidak berpengaruh. Ketika digunakan hanya dengan satu mikrobatch, itu tidak menghemat memori.

Untuk menggunakan offloading aktivasi, atur "offload_activations": True dalam modelparallel konfigurasi.

Pelepasan aktivasi memindahkan aktivasi checkpoint dalam nn.Sequential modul ke CPU secara asinkron. Transfer data melalui tautan PCIe tumpang tindih dengan komputasi GPU. Pembongkaran terjadi segera, segera setelah pass maju untuk lapisan checkpoint tertentu dihitung. Aktivasi dimuat kembali ke GPU sesaat sebelum diperlukan untuk lolos mundur dari microbatch tertentu. CPU-GPU Transfer juga tumpang tindih dengan perhitungan.

Untuk menyesuaikan seberapa awal aktivasi dimuat kembali ke GPU, Anda dapat menggunakan parameter konfigurasi "activation_loading_horizon" (default diatur ke 4, harus int lebih besar dari 0). Horizon pemuatan aktivasi yang lebih besar akan menyebabkan aktivasi dimuat kembali ke GPU lebih awal. Jika cakrawala terlalu besar, dampak penghematan memori dari pelepasan aktivasi mungkin berkurang. Jika cakrawala terlalu kecil, aktivasi mungkin tidak dimuat kembali pada waktunya, mengurangi jumlah tumpang tindih dan menurunkan kinerja.

Tip

Pelepasan aktivasi dapat berguna untuk model besar dengan lebih dari seratus miliar parameter.

Konfigurasikan a SageMaker PyTorch ModelTrainer

mpi_options = { "enabled" : True, "processes_per_host" : 8, # 8 processes "custom_mpi_options" : "--mca btl_vader_single_copy_mechanism none " } smp_options = { "enabled":True, "parameters": { "microbatches": 4, "pipeline_parallel_degree": 2, # alias for "partitions" "placement_strategy": "cluster", "tensor_parallel_degree": 2, # tp over 2 devices "ddp": True, "offload_activations": True, "activation_loading_horizon": 4 # optional. default is 4. } }