

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

# Jalankan Pekerjaan PyTorch Pelatihan dengan Kompiler SageMaker Pelatihan
<a name="training-compiler-enable-pytorch"></a>

Anda dapat menggunakan salah satu antarmuka SageMaker AI untuk menjalankan pekerjaan pelatihan dengan SageMaker Training Compiler: Amazon SageMaker Studio Classic, instans SageMaker notebook Amazon, AWS SDK untuk Python (Boto3) dan. AWS Command Line Interface

**Topics**
+ [Menggunakan SageMaker Python SDK](#training-compiler-enable-pytorch-pysdk)
+ [Menggunakan Operasi SageMaker AI `CreateTrainingJob` API](#training-compiler-enable-pytorch-api)

## Menggunakan SageMaker Python SDK
<a name="training-compiler-enable-pytorch-pysdk"></a>

SageMaker Training Compiler for PyTorch tersedia melalui SageMaker AI [https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html](https://sagemaker.readthedocs.io/en/stable/frameworks/pytorch/sagemaker.pytorch.html)dan kelas estimator [https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/sagemaker.huggingface.html#hugging-face-estimator](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/sagemaker.huggingface.html#hugging-face-estimator)kerangka kerja. Untuk mengaktifkan SageMaker Training Compiler, tambahkan `compiler_config` parameter ke estimator SageMaker AI. Impor `TrainingCompilerConfig` kelas dan berikan instance ke `compiler_config` parameter. Contoh kode berikut menunjukkan struktur kelas estimator SageMaker AI dengan SageMaker Training Compiler diaktifkan.

**Tip**  
Untuk memulai dengan model prebuilt yang disediakan oleh PyTorch atau Transformers, coba gunakan ukuran batch yang disediakan dalam tabel referensi di. [Model yang Diuji](training-compiler-support.md#training-compiler-tested-models)

**catatan**  
 PyTorch Dukungan asli tersedia di SageMaker Python SDK v2.121.0 dan yang lebih baru. Pastikan Anda memperbarui SDK SageMaker Python yang sesuai.

**catatan**  
Mulai PyTorch v1.12.0, wadah SageMaker Training Compiler untuk PyTorch tersedia. Perhatikan bahwa wadah SageMaker Training Compiler untuk tidak PyTorch dikemas dengan Hugging Face Transformers. Jika Anda perlu menginstal pustaka dalam wadah, pastikan Anda menambahkan `requirements.txt` file di bawah direktori sumber saat mengirimkan pekerjaan pelatihan.  
Untuk PyTorch v1.11.0 dan sebelumnya, gunakan versi sebelumnya dari wadah SageMaker Training Compiler untuk Hugging Face dan. PyTorch  
Untuk daftar lengkap versi kerangka kerja dan informasi kontainer yang sesuai, lihat[Kerangka Kerja yang Didukung](training-compiler-support.md#training-compiler-supported-frameworks).

Untuk informasi yang sesuai dengan kasus penggunaan Anda, lihat salah satu opsi berikut.

### Untuk pelatihan GPU tunggal
<a name="training-compiler-estimator-pytorch-single"></a>

------
#### [ PyTorch v1.12.0 and later ]

Untuk mengkompilasi dan melatih PyTorch model, konfigurasikan PyTorch estimator SageMaker AI dengan SageMaker Training Compiler seperti yang ditunjukkan pada contoh kode berikut.

**catatan**  
 PyTorch Dukungan asli ini tersedia di SageMaker AI Python SDK v2.120.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker AI Python SDK.

```
from sagemaker.pytorch import PyTorch, TrainingCompilerConfig

# the original max batch size that can fit into GPU memory without compiler
batch_size_native=12
learning_rate_native=float('5e-5')

# an updated max batch size that can fit into GPU memory with compiler
batch_size=64

# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size

hyperparameters={
    "n_gpus": 1,
    "batch_size": batch_size,
    "learning_rate": learning_rate
}

pytorch_estimator=PyTorch(
    entry_point='train.py',
    source_dir='path-to-requirements-file', # Optional. Add this if need to install additional packages.
    instance_count=1,
    instance_type='ml.p3.2xlarge',
    framework_version='1.13.1',
    py_version='py3',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    disable_profiler=True,
    debugger_hook_config=False
)

pytorch_estimator.fit()
```

------
#### [ Hugging Face Transformers with PyTorch v1.11.0 and before ]

Untuk mengkompilasi dan melatih model transformator PyTorch, konfigurasikan estimator SageMaker AI Hugging Face dengan SageMaker Training Compiler seperti yang ditunjukkan pada contoh kode berikut.

```
from sagemaker.huggingface import HuggingFace, TrainingCompilerConfig

# the original max batch size that can fit into GPU memory without compiler
batch_size_native=12
learning_rate_native=float('5e-5')

# an updated max batch size that can fit into GPU memory with compiler
batch_size=64

# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size

hyperparameters={
    "n_gpus": 1,
    "batch_size": batch_size,
    "learning_rate": learning_rate
}

pytorch_huggingface_estimator=HuggingFace(
    entry_point='train.py',
    instance_count=1,
    instance_type='ml.p3.2xlarge',
    transformers_version='4.21.1',
    pytorch_version='1.11.0',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    disable_profiler=True,
    debugger_hook_config=False
)

pytorch_huggingface_estimator.fit()
```

Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.
+ [Untuk pelatihan GPU tunggal](training-compiler-pytorch-models.md#training-compiler-pytorch-models-transformers-trainer-single-gpu) PyTorch model yang menggunakan API Trainer Hugging Face [Transformers](https://huggingface.co/docs/transformers/main_classes/trainer)
+ [Untuk pelatihan GPU tunggal](training-compiler-pytorch-models.md#training-compiler-pytorch-models-non-trainer-single-gpu) PyTorch model tanpa API Trainer Hugging Face [Transformers](https://huggingface.co/transformers/main_classes/trainer.html)

Untuk menemukan end-to-end contoh, lihat buku catatan berikut:
+ [Kompilasi dan Latih Model Trainer Trainer Hugging Face Transformers untuk Pertanyaan dan Jawaban dengan kumpulan data AD SQu](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-training-compiler/huggingface/pytorch_single_gpu_single_node/albert-base-v2/albert-base-v2.html) 
+ [Kompilasi dan Latih `BERT` Model Trafo Hugging Face dengan Dataset SST menggunakan Training Compiler SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-training-compiler/huggingface/pytorch_single_gpu_single_node/bert-base-cased/bert-base-cased-single-node-single-gpu.html) 
+ [Kompilasi dan Latih Model Pelatih Klasifikasi Biner dengan SST2 Dataset untuk Pelatihan GPU Tunggal Node Tunggal](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-training-compiler/huggingface/pytorch_single_gpu_single_node/roberta-base/roberta-base.html)

------

### Untuk pelatihan terdistribusi
<a name="training-compiler-estimator-pytorch-distributed"></a>

------
#### [ PyTorch v1.12 ]

Untuk PyTorch v1.12, Anda dapat menjalankan pelatihan terdistribusi dengan SageMaker Training Compiler dengan menambahkan `pytorch_xla` opsi yang ditentukan ke `distribution` parameter kelas PyTorch estimator SageMaker AI.

**catatan**  
 PyTorch Dukungan asli ini tersedia di SageMaker AI Python SDK v2.121.0 dan yang lebih baru. Pastikan Anda memperbarui SageMaker AI Python SDK.

```
from sagemaker.pytorch import PyTorch, TrainingCompilerConfig

# choose an instance type, specify the number of instances you want to use,
# and set the num_gpus variable the number of GPUs per instance.
instance_count=1
instance_type='ml.p3.8xlarge'
num_gpus=4

# the original max batch size that can fit to GPU memory without compiler
batch_size_native=16
learning_rate_native=float('5e-5')

# an updated max batch size that can fit to GPU memory with compiler
batch_size=26

# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size*num_gpus*instance_count

hyperparameters={
    "n_gpus": num_gpus,
    "batch_size": batch_size,
    "learning_rate": learning_rate
}

pytorch_estimator=PyTorch(
    entry_point='your_training_script.py',
    source_dir='path-to-requirements-file', # Optional. Add this if need to install additional packages.
    instance_count=instance_count,
    instance_type=instance_type,
    framework_version='1.13.1',
    py_version='py3',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    distribution ={'pytorchxla' : { 'enabled': True }},
    disable_profiler=True,
    debugger_hook_config=False
)

pytorch_estimator.fit()
```

**Tip**  
Untuk mempersiapkan naskah pelatihan Anda, lihat [PyTorch](training-compiler-pytorch-models.md)

------
#### [ Transformers v4.21 with PyTorch v1.11 ]

Untuk PyTorch v1.11 dan yang lebih baru, SageMaker Training Compiler tersedia untuk pelatihan terdistribusi dengan `pytorch_xla` opsi yang ditentukan untuk parameter. `distribution`

```
from sagemaker.huggingface import HuggingFace, TrainingCompilerConfig

# choose an instance type, specify the number of instances you want to use,
# and set the num_gpus variable the number of GPUs per instance.
instance_count=1
instance_type='ml.p3.8xlarge'
num_gpus=4

# the original max batch size that can fit to GPU memory without compiler
batch_size_native=16
learning_rate_native=float('5e-5')

# an updated max batch size that can fit to GPU memory with compiler
batch_size=26

# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size*num_gpus*instance_count

hyperparameters={
    "n_gpus": num_gpus,
    "batch_size": batch_size,
    "learning_rate": learning_rate
}

pytorch_huggingface_estimator=HuggingFace(
    entry_point='your_training_script.py',
    instance_count=instance_count,
    instance_type=instance_type,
    transformers_version='4.21.1',
    pytorch_version='1.11.0',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    distribution ={'pytorchxla' : { 'enabled': True }},
    disable_profiler=True,
    debugger_hook_config=False
)

pytorch_huggingface_estimator.fit()
```

**Tip**  
Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.  
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-transformers-trainer-distributed) PyTorch model yang menggunakan API Trainer Hugging Face [Transformers](https://huggingface.co/transformers/main_classes/trainer.html)
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-non-trainer-distributed) PyTorch model tanpa API Trainer Hugging Face [Transformers](https://huggingface.co/transformers/main_classes/trainer.html)

------
#### [ Transformers v4.17 with PyTorch v1.10.2 and before ]

Untuk versi PyTorch v1.10.2 dan sebelumnya yang didukung, SageMaker Training Compiler memerlukan mekanisme alternatif untuk meluncurkan pekerjaan pelatihan terdistribusi. Untuk menjalankan pelatihan terdistribusi, SageMaker Training Compiler mengharuskan Anda untuk meneruskan skrip peluncur pelatihan terdistribusi SageMaker AI ke `entry_point` argumen, dan meneruskan skrip pelatihan Anda ke argumen. `hyperparameters` Contoh kode berikut menunjukkan cara mengonfigurasi estimator SageMaker AI Hugging Face yang menerapkan perubahan yang diperlukan.

```
from sagemaker.huggingface import HuggingFace, TrainingCompilerConfig

# choose an instance type, specify the number of instances you want to use,
# and set the num_gpus variable the number of GPUs per instance.
instance_count=1
instance_type='ml.p3.8xlarge'
num_gpus=4

# the original max batch size that can fit to GPU memory without compiler
batch_size_native=16
learning_rate_native=float('5e-5')

# an updated max batch size that can fit to GPU memory with compiler
batch_size=26

# update learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size*num_gpus*instance_count

training_script="your_training_script.py"

hyperparameters={
    "n_gpus": num_gpus,
    "batch_size": batch_size,
    "learning_rate": learning_rate,
    "training_script": training_script     # Specify the file name of your training script.
}

pytorch_huggingface_estimator=HuggingFace(
    entry_point='distributed_training_launcher.py',    # Specify the distributed training launcher script.
    instance_count=instance_count,
    instance_type=instance_type,
    transformers_version='4.17.0',
    pytorch_version='1.10.2',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    disable_profiler=True,
    debugger_hook_config=False
)

pytorch_huggingface_estimator.fit()
```

Skrip peluncur akan terlihat seperti berikut ini. Ini membungkus skrip pelatihan Anda dan mengonfigurasi lingkungan pelatihan terdistribusi tergantung pada ukuran contoh pelatihan pilihan Anda. 

```
# distributed_training_launcher.py

#!/bin/python

import subprocess
import sys

if __name__ == "__main__":
    arguments_command = " ".join([arg for arg in sys.argv[1:]])
    """
    The following line takes care of setting up an inter-node communication
    as well as managing intra-node workers for each GPU.
    """
    subprocess.check_call("python -m torch_xla.distributed.sm_dist " + arguments_command, shell=True)
```

**Tip**  
Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.  
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-transformers-trainer-distributed) PyTorch model yang menggunakan API Trainer Hugging Face [Transformers](https://huggingface.co/transformers/main_classes/trainer.html)
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-non-trainer-distributed) PyTorch model tanpa API Trainer Hugging Face [Transformers](https://huggingface.co/transformers/main_classes/trainer.html)

**Tip**  
Untuk menemukan end-to-end contoh, lihat buku catatan berikut:  
[Kompilasi dan Latih GPT2 Model menggunakan Transformers Trainer API dengan SST2 Dataset untuk Pelatihan Multi-GPU Single-Node](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-training-compiler/huggingface/pytorch_multiple_gpu_single_node/language-modeling-multi-gpu-single-node.html)
[Kompilasi dan Latih GPT2 Model menggunakan Transformers Trainer API dengan SST2 Dataset untuk Pelatihan Multi-GPU Multi-Node](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-training-compiler/huggingface/pytorch_multiple_gpu_multiple_node/language-modeling-multi-gpu-multi-node.html)

------

Daftar berikut adalah set minimal parameter yang diperlukan untuk menjalankan pekerjaan SageMaker pelatihan dengan compiler.

**catatan**  
Saat menggunakan estimator SageMaker AI Hugging Face, Anda harus menentukan`transformers_version`,, `pytorch_version``hyperparameters`, `compiler_config` dan parameter untuk SageMaker mengaktifkan Training Compiler. Anda tidak dapat menggunakan `image_uri` untuk secara manual menentukan Deep Learning Containers terintegrasi Training Compiler yang terdaftar di[Kerangka Kerja yang Didukung](training-compiler-support.md#training-compiler-supported-frameworks).
+ `entry_point`(str) - Diperlukan. Tentukan nama file skrip pelatihan Anda.
**catatan**  
Untuk menjalankan pelatihan terdistribusi dengan SageMaker Training Compiler dan PyTorch v1.10.2 dan sebelumnya, tentukan nama file skrip peluncur ke parameter ini. Skrip peluncur harus disiapkan untuk membungkus skrip pelatihan Anda dan mengonfigurasi lingkungan pelatihan terdistribusi. Untuk informasi selengkapnya, lihat contoh buku catatan berikut:  
[Kompilasi dan Latih GPT2 Model menggunakan Transformers Trainer API dengan SST2 Dataset untuk Pelatihan Multi-GPU Single-Node](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-training-compiler/huggingface/pytorch_multiple_gpu_single_node/language-modeling-multi-gpu-single-node.html)
[Kompilasi dan Latih GPT2 Model menggunakan Transformers Trainer API dengan SST2 Dataset untuk Pelatihan Multi-GPU Multi-Node](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-training-compiler/huggingface/pytorch_multiple_gpu_multiple_node/language-modeling-multi-gpu-multi-node.html)
+ `source_dir`(str) - Opsional. Tambahkan ini jika perlu menginstal paket tambahan. Untuk menginstal paket, Anda perlu prapare `requirements.txt` file di bawah direktori ini.
+ `instance_count`(int) - Diperlukan. Tentukan jumlah instans.
+ `instance_type`(str) - Diperlukan. Tentukan jenis instance.
+ `transformers_version`(str) - Diperlukan hanya saat menggunakan penaksir SageMaker AI Hugging Face. Tentukan versi pustaka Hugging Face Transformers yang didukung oleh SageMaker Training Compiler. Untuk menemukan versi yang tersedia, lihat[Kerangka Kerja yang Didukung](training-compiler-support.md#training-compiler-supported-frameworks).
+ `framework_version`atau `pytorch_version` (str) - Diperlukan. Tentukan PyTorch versi yang didukung oleh SageMaker Training Compiler. Untuk menemukan versi yang tersedia, lihat[Kerangka Kerja yang Didukung](training-compiler-support.md#training-compiler-supported-frameworks).
**catatan**  
Saat menggunakan penaksir SageMaker AI Hugging Face, Anda harus menentukan `transformers_version` keduanya dan. `pytorch_version`
+ `hyperparameters`(dict) — Opsional. Tentukan hyperparameters untuk pekerjaan pelatihan, seperti`n_gpus`,`batch_size`, dan`learning_rate`. Saat Anda mengaktifkan SageMaker Training Compiler, coba ukuran batch yang lebih besar dan sesuaikan tingkat pembelajaran yang sesuai. Untuk menemukan studi kasus penggunaan kompiler dan ukuran batch yang disesuaikan untuk meningkatkan kecepatan pelatihan, lihat [Model yang Diuji](training-compiler-support.md#training-compiler-tested-models) dan[SageMaker Contoh Kompiler Pelatihan Notebook dan Blog](training-compiler-examples-and-blogs.md).
**catatan**  
Untuk menjalankan pelatihan terdistribusi dengan SageMaker Training Compiler dan PyTorch v1.10.2 dan sebelumnya, Anda perlu menambahkan parameter tambahan,`"training_script"`, untuk menentukan skrip pelatihan Anda, seperti yang ditunjukkan pada contoh kode sebelumnya.
+ `compiler_config`(TrainingCompilerConfig objek) - Diperlukan untuk mengaktifkan SageMaker Training Compiler. Sertakan parameter ini untuk mengaktifkan SageMaker Training Compiler. Berikut ini adalah parameter untuk `TrainingCompilerConfig` kelas.
  + `enabled`(bool) — Opsional. Tentukan `True` atau `False` untuk mengaktifkan atau mematikan SageMaker Training Compiler. Nilai default-nya adalah `True`.
  + `debug`(bool) — Opsional. Untuk menerima log pelatihan yang lebih detail dari pekerjaan pelatihan yang dipercepat kompiler, ubah ke. `True` Namun, pencatatan tambahan mungkin menambah overhead dan memperlambat pekerjaan pelatihan yang dikompilasi. Nilai default-nya adalah `False`.
+ `distribution`(dict) — Opsional. Untuk menjalankan pekerjaan pelatihan terdistribusi dengan SageMaker Training Compiler, tambahkan`distribution = { 'pytorchxla' : { 'enabled': True }}`.

**Awas**  
Jika Anda mengaktifkan SageMaker Debugger, itu mungkin memengaruhi kinerja SageMaker Training Compiler. Kami menyarankan Anda mematikan Debugger saat menjalankan SageMaker Training Compiler untuk memastikan tidak ada dampak pada kinerja. Untuk informasi selengkapnya, lihat [Pertimbangan-pertimbangan](training-compiler-tips-pitfalls.md#training-compiler-tips-pitfalls-considerations). Untuk menonaktifkan fungsionalitas Debugger, tambahkan dua argumen berikut ke estimator:  

```
disable_profiler=True,
debugger_hook_config=False
```

Jika pekerjaan pelatihan dengan kompiler berhasil diluncurkan, Anda menerima log berikut selama fase inisialisasi pekerjaan: 
+ dengan `TrainingCompilerConfig(debug=False)`

  ```
  Found configuration for Training Compiler
  Configuring SM Training Compiler...
  ```
+ dengan `TrainingCompilerConfig(debug=True)`

  ```
  Found configuration for Training Compiler
  Configuring SM Training Compiler...
  Training Compiler set to debug mode
  ```

## Menggunakan Operasi SageMaker AI `CreateTrainingJob` API
<a name="training-compiler-enable-pytorch-api"></a>

SageMaker Opsi konfigurasi Training Compiler harus ditentukan melalui `HyperParameters` kolom `AlgorithmSpecification` and dalam sintaks permintaan untuk operasi [`CreateTrainingJob`API](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html).

```
"AlgorithmSpecification": {
    "TrainingImage": "<sagemaker-training-compiler-enabled-dlc-image>"
},

"HyperParameters": {
    "sagemaker_training_compiler_enabled": "true",
    "sagemaker_training_compiler_debug_mode": "false",
    "sagemaker_pytorch_xla_multi_worker_enabled": "false"    // set to "true" for distributed training
}
```

Untuk menemukan daftar lengkap image container deep learning URIs yang telah diimplementasikan SageMaker Training Compiler, lihat[Kerangka Kerja yang Didukung](training-compiler-support.md#training-compiler-supported-frameworks).