

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

# Pelepasan aktivasi
<a name="model-parallel-core-features-v2-pytorch-activation-offloading"></a>

**penting**  
Di SMP v2.2.0, fungsionalitas pelepasan aktivasi pustaka SMP tidak berfungsi. Gunakan offloading PyTorch aktivasi asli sebagai gantinya.

Biasanya, forward pass menghitung aktivasi di setiap lapisan dan menyimpannya dalam memori GPU sampai pass mundur untuk lapisan yang sesuai selesai. Membuang tensor ini ke memori CPU setelah pass maju dan mengambilnya kembali ke GPU saat dibutuhkan dapat menghemat penggunaan memori GPU yang substansif. PyTorch mendukung aktivasi offloading, tetapi implementasinya menyebabkan GPU menjadi idle sementara aktivasi diambil kembali dari CPU selama backpass. Hal ini menyebabkan penurunan kinerja utama saat menggunakan offloading aktivasi.

SMP v2 meningkatkan pembongkaran aktivasi ini. Ini melakukan pra-mengambil aktivasi sebelumnya sebelum aktivasi diperlukan agar GPU mulai meneruskan kembali aktivasi tersebut. Fitur pra-pengambilan membantu kemajuan pelatihan dijalankan lebih efisien tanpa GPU idle. Ini menghasilkan penawaran manfaat dari penggunaan memori yang lebih rendah tanpa penurunan kinerja.

Anda dapat menyimpan PyTorch modul asli untuk aktivasi bongkar muat di skrip pelatihan Anda. Berikut ini adalah contoh struktur penerapan fitur offloading aktivasi SMP di skrip Anda. Perhatikan bahwa pembongkaran aktivasi * hanya berlaku * bila digunakan bersama dengan[Pemeriksaan aktivasi](model-parallel-core-features-v2-pytorch-activation-checkpointing.md). Untuk mempelajari selengkapnya tentang alat PyTorch pos pemeriksaan asli untuk pelepasan aktivasi, lihat:
+ [checkpoint\_wrapper.py ](https://github.com/pytorch/pytorch/blob/v2.0.1/torch/distributed/algorithms/_checkpoint/checkpoint_wrapper.py#L171) di * PyTorch GitHub repositori *
+ [Pengecekan Aktivasi ](https://pytorch.org/blog/scaling-multimodal-foundation-models-in-torchmultimodal-with-pytorch-distributed/#activation-checkpointing) di PyTorch blog S * caling Multi-modal Foundation Model TorchMultimodal s dengan PyTorch Distri * buted.

Anda dapat menerapkan fitur pelepasan aktivasi SMP pada checkpointing [ PyTorch aktivasi. ](https://pytorch.org/blog/scaling-multimodal-foundation-models-in-torchmultimodal-with-pytorch-distributed/#activation-checkpointing) Ini dilakukan dengan menambahkan `activation_loading_horizon` parameter `sm_activation_offloading` dan ke kamus konfigurasi SMP selama[Langkah 2: Luncurkan pekerjaan pelatihan](model-parallel-use-api-v2.md#model-parallel-launch-a-training-job-v2). 

Cuplikan kode berikut menunjukkan cara menambahkan modul `torch.sagemaker.init()` inisialisasi SMP ke skrip pelatihan Anda dan mengatur kamus konfigurasi SMP dalam format JSON untuk peluncur pekerjaan pelatihan sambil mengikuti proses dua langkah yang diperkenalkan di. [Gunakan perpustakaan paralelisme SageMaker model v2](model-parallel-use-api-v2.md) Anda tidak perlu membuat perubahan apa pun pada PyTorch model atau konfigurasi [ PyTorch FSDP ](https://pytorch.org/docs/stable/fsdp.html#module-torch.distributed.fsdp) Anda. Untuk informasi tentang parameter `sm_activation_offloading` dan `activation_loading_horizon`, lihat [Parameter konfigurasi fitur inti SMP v2](distributed-model-parallel-v2-reference.md#distributed-model-parallel-v2-reference-init-config).

**Konfigurasi SMP **

```
{
    "activation_loading_horizon": 2,
    "sm_activation_offloading": True
}
```

**Dalam skrip pelatihan **

**catatan**  
Saat mengaktifkan fitur offloading aktivasi SMP, pastikan Anda juga menggunakan PyTorch `offload_wrapper` fungsi tersebut dan menerapkannya ke modul root. Fitur offloading aktivasi SMP menggunakan modul root untuk menentukan kapan forward pass 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)
```