

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

# Pemecahan masalah untuk pelatihan terdistribusi di Amazon SageMaker AI
<a name="distributed-troubleshooting-data-parallel"></a>

Jika Anda mengalami masalah dalam menjalankan tugas pelatihan saat menggunakan pustaka, gunakan daftar berikut untuk mencoba memecahkan masalah. Jika Anda memerlukan dukungan lebih lanjut, hubungi tim SageMaker AI melalui Pusat [AWS Dukungan ](https://console.aws.amazon.com/support/) atau Forum [AWS Pengembang untuk Amazon Amazon SageMaker AI](https://forums.aws.amazon.com/forum.jspa?forumID=285).

**Topics**
+ [Menggunakan data SageMaker terdistribusi AI secara paralel dengan Amazon SageMaker Debugger dan pos pemeriksaan](#distributed-ts-data-parallel-debugger)
+ [Awalan tak terduga yang dilampirkan ke kunci parameter model](#distributed-ts-data-parallel-pytorch-prefix)
+ [SageMaker Pekerjaan pelatihan terdistribusi AI terhenti selama inisialisasi](#distributed-ts-data-parallel-efa-sg)
+ [SageMaker AI mendistribusikan pekerjaan pelatihan terhenti di akhir pelatihan](#distributed-ts-data-parallel-stall-at-the-end)
+ [Mengamati penurunan efisiensi penskalaan karena hambatan throughput Amazon FSx](#distributed-ts-data-parallel-fxs-bottleneck)
+ [SageMaker AI mendistribusikan pekerjaan pelatihan dengan peringatan pengh PyTorch entian pengembalian](#distributed-ts-data-parallel-deprecation-warnings)

## Menggunakan data SageMaker terdistribusi AI secara paralel dengan Amazon SageMaker Debugger dan pos pemeriksaan
<a name="distributed-ts-data-parallel-debugger"></a>

Untuk memantau kemacetan sistem, operasi kerangka profil, dan tensor keluaran model debug untuk pekerjaan pelatihan dengan data terdistribusi SageMaker AI secara paralel, gunakan Amazon Debugger. SageMaker 

Namun, saat Anda menggunakan SageMaker Debugger, paralel data terdistribusi SageMaker SageMaker AI, dan pos pemeriksaan AI, Anda mungkin melihat kesalahan yang terlihat seperti contoh berikut. 

```
SMDebug Does Not Currently Support Distributed Training Jobs With Checkpointing Enabled
```

Hal ini disebabkan kesalahan internal antara Debugger dan pos pemeriksaan, yang terjadi ketika Anda mengaktifkan data terdistribusi SageMaker AI secara paralel. 
+ Jika Anda mengaktifkan ketiga fitur, SageMaker Python SDK secara otomatis mematikan Debugger dengan melewati`debugger_hook_config=False`, yang setara dengan `ModelTrainer` contoh kerangka kerja berikut.

  ```
  bucket=Session().default_bucket()
  base_job_name="sagemaker-checkpoint-test"
  checkpoint_in_bucket="checkpoints"
  
  # The S3 URI to store the checkpoints
  checkpoint_s3_bucket="s3://{}/{}/{}".format(bucket, base_job_name, checkpoint_in_bucket)
  
  model_trainer = ModelTrainer(
      ...
  
      distribution={"smdistributed": {"dataparallel": { "enabled": True }}},
      checkpoint_s3_uri=checkpoint_s3_bucket,
      checkpoint_local_path="/opt/ml/checkpoints",
      debugger_hook_config=False
  )
  ```
+ Jika Anda ingin terus menggunakan data terdistribusi SageMaker AI secara paralel dan SageMaker Debugger, solusinya adalah menambahkan fungsi checkpointing secara manual ke skrip pelatihan Anda alih-alih menentukan parameter `checkpoint_s3_uri` dan `checkpoint_local_path` dari. ModelTrainer Untuk informasi selengkapnya tentang menyiapkan checkpointing manual dalam skrip pelatihan, lihat[Menyimpan Pos Pemeriksaan](distributed-troubleshooting-model-parallel.md#distributed-ts-model-parallel-checkpoints).

## Awalan tak terduga yang dilampirkan ke kunci parameter model
<a name="distributed-ts-data-parallel-pytorch-prefix"></a>

Untuk PyTorch pekerjaan pelatihan terdistribusi, awalan tak terduga (`model`misalnya) mungkin dilampirkan ke `state_dict` kunci (parameter model). P SageMaker ustaka paralel data AI tidak secara langsung mengubah atau menambahkan nama parameter model apa pun saat pekerjaan PyTorch pelatihan menyimpan artefak model. Pel PyTorch atihan terdistribusi mengubah nama `state_dict` untuk pergi melalui jaringan, mendahului awalan. Jika Anda mengalami masalah kegagalan model karena nama parameter yang berbeda saat Anda menggunakan pustaka paralel data SageMaker AI dan checkpoint untuk PyTorch pelatihan, sesuaikan kode contoh berikut untuk menghapus awalan pada langkah Anda memuat pos pemeriksaan dalam skrip pelatihan Anda.

```
state_dict = {k.partition('{{model.}}')[2]:state_dict[k] for k in state_dict.keys()}
```

Ini mengambil setiap `state_dict` kunci sebagai nilai string, memisahkan string pada kejadian pertama`'model.'`, dan mengambil item daftar ketiga (dengan indeks 2) dari string yang dipartisi.

Untuk informasi lebih lanjut tentang masalah awalan, lihat utas diskusi di Nama parameter [ Awalan dalam model yang disimpan jika dilatih oleh multi-GPU? ](https://discuss.pytorch.org/t/prefix-parameter-names-in-saved-model-if-trained-by-multi-gpu/494)dalam forum * PyTorch diskusi*.

Untuk informasi selengkapnya tentang PyTorch metode untuk menyimpan dan memuat model, lihat Meny [ impan & Memuat Model di Seluruh Perangkat ](https://pytorch.org/tutorials/beginner/saving_loading_models.html#saving-loading-model-across-devices) dalam * PyTorch dokumentasi*.

## SageMaker Pekerjaan pelatihan terdistribusi AI terhenti selama inisialisasi
<a name="distributed-ts-data-parallel-efa-sg"></a>

Jika pekerjaan pelatihan paralel data terdistribusi SageMaker AI Anda terhenti selama inisialisasi saat menggunakan EFA-enabled instance, ini mungkin disebabkan oleh kesalahan konfigurasi dalam grup keamanan subnet VPC yang digunakan untuk pekerjaan pelatihan. EFA memerlukan konfigurasi grup keamanan yang tepat untuk mengaktifkan lalu lintas antar node.

**Untuk mengonfigurasi aturan masuk dan keluar untuk grup keamanan**

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon VPC di [ https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Pilih ** Grup Keamanan ** di panel navigasi kiri.

1. Pilih grup keamanan yang terkait dengan subnet VPC yang Anda gunakan untuk pelatihan. 

1. Di ** bagian ** Detail, salin ID grup ** keamanan**.

1. Pada tab **Inbound rules** (Aturan ke dalam), pilih **Edit inbound rules** (Edit aturan ke dalam).

1. Pada halaman **Edit aturan ke dalam**, lakukan hal berikut ini: 

   1. Pilih **Add rule** (Tambahkan aturan).

   1. Untuk **Tipe**, pilih **Semua lalu lintas**.

   1. Untuk ** Sumber**, pilih K ** ustom**, tempel ID grup keamanan ke kotak pencarian, dan pilih grup keamanan yang muncul.

1. Pilih ** Simpan aturan ** untuk menyelesaikan konfigurasi aturan masuk untuk grup keamanan.

1. Pada ** tab ** Aturan keluar, pilih ** Edit aturan keluar. **

1. Ulangi langkah 6 dan 7 untuk menambahkan aturan yang sama dengan aturan keluar.

Setelah Anda menyelesaikan langkah-langkah sebelumnya untuk mengonfigurasi grup keamanan dengan aturan masuk dan keluar, jalankan kembali pekerjaan pelatihan dan verifikasi apakah masalah penundaan telah diselesaikan.

Untuk informasi selengkapnya tentang mengonfigurasi grup keamanan untuk VPC dan EFA, lihat Grup [ keamanan untuk VPC ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) dan Adaptor Kain [ Elastis Anda. ](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html)

## SageMaker AI mendistribusikan pekerjaan pelatihan terhenti di akhir pelatihan
<a name="distributed-ts-data-parallel-stall-at-the-end"></a>

Salah satu akar penyebab masalah penundaan di akhir pelatihan adalah ketidakcocokan dalam jumlah batch yang diproses per zaman di peringkat yang berbeda. Semua pekerja (GPU) menyinkronkan gradien lokal mereka dalam pass mundur untuk memastikan mereka semua memiliki salinan model yang sama di akhir iterasi batch. Jika ukuran batch tidak merata ditetapkan ke kelompok pekerja yang berbeda selama periode terakhir pelatihan, pekerjaan pelatihan terhenti. Misalnya, sementara sekelompok pekerja (grup A) selesai memproses semua batch dan keluar dari loop pelatihan, kelompok pekerja lain (grup B) mulai memproses batch lain dan masih mengharapkan komunikasi dari grup A untuk menyinkronkan gradien. Hal ini menyebabkan grup B menunggu grup A, yang sudah menyelesaikan pelatihan dan tidak memiliki gradien untuk disinkronkan. 

Oleh karena itu, saat menyiapkan dataset pelatihan Anda, penting bahwa setiap pekerja mendapatkan jumlah sampel data yang sama sehingga setiap pekerja melewati jumlah batch yang sama saat pelatihan. Pastikan setiap peringkat mendapatkan jumlah batch yang sama untuk menghindari masalah penundaan ini.

## Mengamati penurunan efisiensi penskalaan karena hambatan throughput Amazon FSx
<a name="distributed-ts-data-parallel-fxs-bottleneck"></a>

Salah satu penyebab potensial penurunan efisiensi penskalaan adalah batas throughput FSx. Jika Anda mengamati penurunan mendadak dalam efisiensi penskalaan saat beralih ke cluster pelatihan yang lebih besar, coba gunakan sistem file FSx for Lustre yang lebih besar dengan batas throughput yang lebih tinggi. Untuk informasi selengkapnya, lihat [ Performa sistem file agregat ](https://docs.aws.amazon.com/fsx/latest/LustreGuide/performance.html#fsx-aggregate-perf) dan M [ engelola kapasitas penyimpanan dan throughput ](https://docs.aws.amazon.com/fsx/latest/LustreGuide/managing-storage-capacity.html) di * Panduan Pengguna Amazon FSx for Lustre. *

## SageMaker AI mendistribusikan pekerjaan pelatihan dengan peringatan pengh PyTorch entian pengembalian
<a name="distributed-ts-data-parallel-deprecation-warnings"></a>

Sejak v1.4.0, perpustakaan paralelisme data terdistribusi SageMaker AI berfungsi sebagai backend terdistribusi. PyTorch Karena perubahan besar dalam menggunakan pustaka dengan PyTorch, Anda mungkin menemukan pesan peringatan bahwa `smdistributed` API untuk paket ter PyTorch distribusi tidak digunakan lagi. Pesan peringatan harus mirip dengan yang berikut:

```
smdistributed.dataparallel.torch.dist is deprecated in the SageMaker AI distributed data parallel library v1.4.0+.
Please use torch.distributed and specify 'smddp' as a backend when initializing process group as follows:
torch.distributed.init_process_group(backend='smddp')
For more information, see the library's API documentation at
https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel-modify-sdp-pt.html
```

Di v1.4.0 dan yang lebih baru, pustaka hanya perlu diimpor sekali di bagian atas skrip pelatihan Anda dan ditetapkan sebagai backend selama inisialisasi terdistribusi PyTorch . Dengan satu baris spesifikasi backend, Anda dapat menjaga skrip PyTorch pelatihan Anda tidak berubah dan langsung menggunakan modul ter PyTorch distribusi. Lihat [Gunakan pustaka SMDDP dalam skrip pelatihan Anda PyTorch](data-parallel-modify-sdp-pt.md) untuk mempelajari tentang perubahan besar dan cara baru untuk menggunakan perpustakaan PyTorch.