

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

# Mulailah dengan pelatihan terdistribusi di Amazon SageMaker AI
<a name="distributed-training-get-started"></a>

Halaman berikut memberikan informasi tentang langkah-langkah yang diperlukan untuk memulai pelatihan terdistribusi di Amazon SageMaker AI. Jika Anda sudah terbiasa dengan pelatihan terdistribusi, pilih salah satu opsi berikut yang sesuai dengan strategi atau kerangka kerja pilihan Anda untuk memulai. Jika Anda ingin belajar tentang pelatihan terdistribusi secara umum, lihat[Konsep pelatihan terdistribusi](distributed-training.md#distributed-training-basic-concepts).

Pustaka pelatihan terdistribusi SageMaker AI dioptimalkan untuk lingkungan SageMaker pelatihan, membantu menyesuaikan pekerjaan pelatihan terdistribusi Anda dengan SageMaker AI, dan meningkatkan kecepatan dan throughput pelatihan. Perpustakaan menawarkan strategi pelatihan paralel data dan model paralel. Mereka menggabungkan teknologi perangkat lunak dan perangkat keras untuk meningkatkan komunikasi antar-GPU dan antar-simpul, dan memperluas kemampuan pelatihan SageMaker AI dengan opsi bawaan yang memerlukan perubahan kode minimal pada skrip pelatihan Anda. 

## Sebelum Anda memulai
<a name="distributed-training-before-getting-started"></a>

SageMaker Pelatihan mendukung pelatihan terdistribusi pada satu instans serta beberapa instance, sehingga Anda dapat menjalankan berbagai ukuran pelatihan dalam skala besar. Kami menyarankan Anda untuk menggunakan kelas estimator kerangka kerja seperti [PyTorch](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html#pytorch-estimator)dan [TensorFlow](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/sagemaker.tensorflow.html#tensorflow-estimator)di SageMaker Python SDK, yang merupakan peluncur pekerjaan pelatihan dengan berbagai opsi pelatihan terdistribusi. [Saat Anda membuat objek estimator, objek akan menyiapkan infrastruktur pelatihan terdistribusi, menjalankan `CreateTrainingJob` API di backend, menemukan Wilayah tempat sesi Anda berjalan, dan menarik salah satu wadah pembelajaran AWS mendalam yang telah dibuat sebelumnya yang dikemas dengan sejumlah pustaka termasuk kerangka kerja pembelajaran mendalam, kerangka kerja pelatihan terdistribusi, dan driver EFA.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) Jika Anda ingin memasang sistem FSx file ke instance pelatihan, Anda harus meneruskan subnet VPC dan ID grup keamanan Anda ke estimator. Sebelum menjalankan pekerjaan pelatihan terdistribusi Anda di SageMaker AI, baca panduan umum berikut tentang pengaturan infrastruktur dasar.

### Zona ketersediaan dan backplane jaringan
<a name="availability-zones"></a>

Saat menggunakan beberapa instance (juga disebut *node*), penting untuk memahami jaringan yang menghubungkan instance, bagaimana mereka membaca data pelatihan, dan bagaimana mereka berbagi informasi di antara mereka sendiri. Misalnya, saat Anda menjalankan tugas pelatihan paralel data terdistribusi, sejumlah faktor, seperti komunikasi antara node cluster komputasi untuk menjalankan `AllReduce` operasi dan transfer data antara node dan penyimpanan data di Amazon Simple Storage Service atau Amazon FSx for Lustre, memainkan peran penting untuk mencapai penggunaan sumber daya komputasi yang optimal dan kecepatan pelatihan yang lebih cepat. Untuk mengurangi overhead komunikasi, pastikan Anda mengonfigurasi instance, subnet VPC, dan penyimpanan data di Availability Zone yang sama. Wilayah AWS 

### Instans GPU dengan jaringan yang lebih cepat dan penyimpanan throughput tinggi
<a name="optimized-GPU"></a>

Anda secara teknis dapat menggunakan instance apa pun untuk pelatihan terdistribusi. [Untuk kasus di mana Anda perlu menjalankan pekerjaan pelatihan terdistribusi multi-node untuk melatih model besar, seperti model bahasa besar (LLMs) dan model difusi, yang memerlukan pergantian antar-node yang lebih cepat, kami merekomendasikan instance GPU berkemampuan EFA yang didukung oleh AI. SageMaker ](https://aws.amazon.com/about-aws/whats-new/2021/05/amazon-sagemaker-supports-elastic-fabric-adapter-distributed-training/) Terutama, untuk mencapai pekerjaan pelatihan terdistribusi yang paling berkinerja di SageMaker AI, kami merekomendasikan [instans P4d dan P4de](https://aws.amazon.com/ec2/instance-types/p4/) yang dilengkapi dengan NVIDIA A100. GPUs Ini juga dilengkapi dengan penyimpanan instans lokal latensi rendah throughput tinggi dan jaringan intra-node yang lebih cepat. Untuk penyimpanan data, kami merekomendasikan [Amazon FSx untuk Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html) yang menyediakan throughput tinggi untuk menyimpan kumpulan data pelatihan dan pos pemeriksaan model.

**Gunakan pustaka paralelisme data terdistribusi SageMaker AI (SMDDP)**

Pustaka SMDDP meningkatkan komunikasi antar node dengan implementasi `AllReduce` dan operasi komunikasi `AllGather` kolektif yang dioptimalkan untuk infrastruktur AWS jaringan dan topologi instans Amazon SageMaker AI ML. [Anda dapat menggunakan [pustaka SMDDP sebagai backend paket pelatihan terdistribusi PyTorch berbasis: distributed PyTorch ](https://docs.aws.amazon.com/sagemaker/latest/dg/data-parallel-modify-sdp-pt.html)[data parallel (DDP), [PyTorch full sharded data parallelism (](https://pytorch.org/docs/stable/fsdp.html)FSDP)](https://pytorch.org/docs/stable/notes/ddp.html), dan Megatron-. [DeepSpeed](https://github.com/microsoft/DeepSpeed)DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed) Contoh kode berikut menunjukkan cara mengatur `PyTorch` estimator untuk meluncurkan pekerjaan pelatihan terdistribusi pada dua `ml.p4d.24xlarge` instance.

```
from sagemaker.pytorch import PyTorch

estimator = PyTorch(
    ...,
    instance_count=2,
    instance_type="ml.p4d.24xlarge",
    # Activate distributed training with SMDDP
    distribution={ "pytorchddp": { "enabled": True } }  # mpirun, activates SMDDP AllReduce OR AllGather
    # distribution={ "torch_distributed": { "enabled": True } }  # torchrun, activates SMDDP AllGather
    # distribution={ "smdistributed": { "dataparallel": { "enabled": True } } }  # mpirun, activates SMDDP AllReduce OR AllGather
)
```

Untuk mempelajari cara menyiapkan skrip pelatihan Anda dan meluncurkan pekerjaan pelatihan paralel data terdistribusi tentang SageMaker AI, lihat. [Jalankan pelatihan terdistribusi dengan perpustakaan paralelisme data terdistribusi SageMaker AI](data-parallel.md)

**Gunakan perpustakaan paralelisme model SageMaker AI (SMP)**

SageMaker AI menyediakan perpustakaan SMP dan mendukung berbagai teknik pelatihan terdistribusi, seperti paralelisme data sharded, pipelining, paralelisme tensor, sharding status pengoptimal, dan banyak lagi. Untuk mempelajari lebih lanjut tentang apa yang ditawarkan perpustakaan SMP, lihat[Fitur Inti dari Perpustakaan Paralelisme SageMaker Model](model-parallel-core-features.md).

Untuk menggunakan pustaka paralelisme model SageMaker AI, konfigurasikan `distribution` parameter estimator kerangka kerja SageMaker AI. Estimator kerangka kerja yang didukung adalah [PyTorch](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html#pytorch-estimator)dan [TensorFlow](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/sagemaker.tensorflow.html#tensorflow-estimator). Contoh kode berikut menunjukkan bagaimana membangun estimator kerangka kerja untuk pelatihan terdistribusi dengan pustaka paralelisme model pada dua instance. `ml.p4d.24xlarge`

```
from sagemaker.framework import Framework

distribution={
    "smdistributed": {
        "modelparallel": {
            "enabled":True,
            "parameters": {
                ...   # enter parameter key-value pairs here
            }
        },
    },
    "mpi": {
        "enabled" : True,
        ...           # enter parameter key-value pairs here
    }
}

estimator = Framework(
    ...,
    instance_count=2,
    instance_type="ml.p4d.24xlarge",
    distribution=distribution
)
```

Untuk mempelajari cara mengadaptasi skrip pelatihan Anda, mengonfigurasi parameter distribusi di `estimator` kelas, dan meluncurkan tugas pelatihan terdistribusi, lihat [perpustakaan paralelisme model SageMaker AI](model-parallel.md) (lihat juga [Pelatihan Terdistribusi APIs dalam dokumentasi SageMaker ](https://sagemaker.readthedocs.io/en/stable/api/training/distributed.html#the-sagemaker-distributed-model-parallel-library) *Python* SDK).

**Gunakan kerangka kerja pelatihan terdistribusi open source**

SageMaker AI juga mendukung opsi berikut untuk beroperasi `mpirun` dan `torchrun` di backend.
+ Untuk menggunakan [PyTorch DistributedDataParallel (DDP)](https://pytorch.org/docs/master/generated/torch.nn.parallel.DistributedDataParallel.html) di SageMaker AI dengan `mpirun` backend, tambahkan `distribution={"pytorchddp": {"enabled": True}}` ke estimator Anda. PyTorch Untuk informasi selengkapnya, lihat juga `distribution` Argumen [Pelatihan PyTorch Terdistribusi](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#distributed-pytorch-training) dan [ PyTorch Penaksir SageMaker AI](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html#pytorch-estimator) dalam dokumentasi *SageMaker Python SDK*.
**catatan**  
Opsi ini tersedia untuk PyTorch 1.12.0 dan yang lebih baru.

  ```
  from sagemaker.pytorch import PyTorch
  
  estimator = PyTorch(
      ...,
      instance_count=2,
      instance_type="ml.p4d.24xlarge",
      distribution={"pytorchddp": {"enabled": True}}  # runs mpirun in the backend
  )
  ```
+ SageMaker [AI mendukung [PyTorch `torchrun`peluncur](https://pytorch.org/docs/stable/elastic/run.html) untuk pelatihan terdistribusi pada instans Amazon EC2 berbasis GPU, seperti P3 dan P4, serta Trn1 yang didukung oleh perangkat Trainium.AWS](https://aws.amazon.com/machine-learning/trainium/) 

  Untuk menggunakan [PyTorch DistributedDataParallel (DDP)](https://pytorch.org/docs/master/generated/torch.nn.parallel.DistributedDataParallel.html) di SageMaker AI dengan `torchrun` backend, tambahkan `distribution={"torch_distributed": {"enabled": True}}` ke estimator. PyTorch 
**catatan**  
Opsi ini tersedia untuk PyTorch 1.13.0 dan yang lebih baru.

  Cuplikan kode berikut menunjukkan contoh pembuatan PyTorch estimator SageMaker AI untuk menjalankan pelatihan terdistribusi pada dua `ml.p4d.24xlarge` instance dengan opsi distribusi. `torch_distributed`

  ```
  from sagemaker.pytorch import PyTorch
  
  estimator = PyTorch(
      ...,
      instance_count=2,
      instance_type="ml.p4d.24xlarge",
      distribution={"torch_distributed": {"enabled": True}}   # runs torchrun in the backend
  )
  ```

  Untuk informasi selengkapnya, lihat `distribution` Argumen [ PyTorch Pelatihan Terdistribusi](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#distributed-pytorch-training) dan [SageMaker AI PyTorch Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html#pytorch-estimator) dalam dokumentasi *SageMaker Python SDK*.

  **Catatan untuk pelatihan terdistribusi di Trn1**

  Sebuah instance Trn1 terdiri dari hingga 16 perangkat Trainium, dan setiap perangkat Trainium terdiri dari dua. [NeuronCores](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/arch/neuron-hardware/neuroncores-arch.html#neuroncores-v2-arch) *Untuk spesifikasi perangkat AWS Trainium, lihat [Arsitektur Trainium](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/arch/neuron-hardware/trn1-arch.html#id2) di Dokumentasi Neuron.AWS *

  Untuk melatih instans yang didukung Trainium, Anda hanya perlu menentukan kode instans Trn1`ml.trn1.*`, dalam string ke `instance_type` argumen kelas estimator AI. SageMaker PyTorch *Untuk menemukan jenis instance Trn1 yang tersedia, lihat [Arsitektur AWS Trn1](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/arch/neuron-hardware/trn1-arch.html#aws-trn1-arch) dalam dokumentasi Neuron.AWS *
**catatan**  
SageMaker Pelatihan tentang instans Amazon EC2 Trn1 saat ini hanya tersedia untuk PyTorch kerangka kerja di AWS Deep Learning Containers for Neuron mulai v1.11.0. PyTorch Untuk menemukan daftar lengkap versi Neuron yang didukung, lihat PyTorch [Neuron Containers](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#neuron-containers) di * GitHub repositori AWS Deep Learning Containers*.

  Saat Anda meluncurkan pekerjaan pelatihan pada instans Trn1 menggunakan SageMaker Python SDK, SageMaker AI secara otomatis mengambil dan menjalankan wadah yang tepat dari Neuron Containers yang disediakan [oleh](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#neuron-containers) Deep Learning Containers. AWS Neuron Container dikemas dengan pengaturan lingkungan pelatihan dan dependensi untuk memudahkan adaptasi pekerjaan pelatihan Anda ke platform Pelatihan dan instans Amazon EC2 SageMaker Trn1.
**catatan**  
[Untuk menjalankan pekerjaan PyTorch pelatihan Anda pada instance Trn1 dengan SageMaker AI, Anda harus memodifikasi skrip pelatihan Anda untuk menginisialisasi grup proses dengan `xla` backend dan menggunakan /XLA. PyTorch](https://pytorch.org/xla/release/1.12/index.html) Untuk mendukung proses adopsi XLA, Neuron SDK menyediakan AWS PyTorch Neuron yang menggunakan XLA untuk melakukan konversi PyTorch operasi ke instruksi Trainium. Untuk mempelajari cara memodifikasi skrip pelatihan Anda, lihat [Panduan Pengembang untuk Pelatihan dengan PyTorch Neuron (`torch-neuronx`)](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/frameworks/torch/torch-neuronx/programming-guide/training/pytorch-neuron-programming-guide.html) di *Dokumentasi AWS Neuron*.

  *Untuk informasi lebih lanjut, lihat [Pelatihan Terdistribusi dengan PyTorch Neuron pada instance Trn1 dan argumen SageMaker ](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#id24) [AI PyTorch Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html#pytorch-estimator) `distribution` dalam dokumentasi Python SageMaker SDK.*
+ Untuk menggunakan MPI di SageMaker AI, tambahkan `distribution={"mpi": {"enabled": True}}` ke estimator Anda. Opsi distribusi MPI tersedia untuk kerangka kerja berikut: MXNet, PyTorch, dan. TensorFlow
+ Untuk menggunakan server parameter di SageMaker AI, tambahkan `distribution={"parameter_server": {"enabled": True}}` ke estimator Anda. Opsi server parameter tersedia untuk kerangka kerja berikut: MXNet, PyTorch, dan TensorFlow. 
**Tip**  
Untuk informasi lebih lanjut tentang penggunaan MPI dan opsi server parameter per kerangka kerja, gunakan tautan berikut ke dokumentasi *SageMaker Python SDK*.  
[MXNet Argumen Pelatihan Terdistribusi](https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/using_mxnet.html#distributed-training) dan [SageMaker AI MXNet Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/sagemaker.mxnet.html#mxnet-estimator) `distribution`
[PyTorch Argumen Pelatihan Terdistribusi](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/using_pytorch.html#distributed-pytorch-training) dan [SageMaker AI PyTorch Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html#pytorch-estimator) `distribution`
TensorFlow `distribution`Argumen [Pelatihan Terdistribusi](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/using_tf.html#distributed-training) dan [SageMaker AI TensorFlow Estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/sagemaker.tensorflow.html#tensorflow-estimator).