

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

# Jalan PyTorch kan Pekerjaan Pelatihan dengan Tra SageMaker ining Compiler
<a name="training-compiler-enable-pytorch"></a>

**penting**  
**Pemberitahuan penghentian penggunaan: ** SageMaker Kompiler Pelatihan tidak didukung di SageMaker Python SDK v3. Jika saat ini Anda menggunakan Training Compiler, lanjutkan menggunakan SageMaker Python SDK v2. Untuk proyek baru, pertimbangkan untuk menggunakan `ModelTrainer` kelas terpadu dengan kerangka kerja yang didukung. Lihat dokumentasi [ SageMaker Python SDK ](https://sagemaker.readthedocs.io/en/stable/) untuk panduan migrasi.

Anda dapat menggunakan antarmuka SageMaker AI apa pun untuk menjalankan pekerjaan pelatihan dengan Tra SageMaker ining Compiler: Amazon SageMaker Studio Classic, instans SageMaker notebook Amazon, AWS SDK for Python (Boto3), dan AWS Command Line Interface.

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

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

SageMaker Kompil PyTorch er Pelatihan untuk tersedia melalui kelas SageMaker AI [`PyTorch`](https://sagemaker.readthedocs.io/en/stable/api/sagemaker_train.html) dan [`HuggingFace`](https://sagemaker.readthedocs.io/en/stable/api/sagemaker_train.html) kerangka kerja estimator. Untuk mengaktifkan Tra SageMaker ining Compiler, tambahkan `compiler_config` parameter ke estimator SageMaker AI. Imp `TrainingCompilerConfig` or kelas dan berikan instance ke `compiler_config` parameter. Contoh kode berikut menunjukkan struktur kelas estimator SageMaker AI dengan Tra SageMaker ining Compiler diaktifkan.

**Tip**  
Untuk memulai dengan model bawaan 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 SageMaker Python SDK sesuai dengan itu.

**catatan**  
Mulai PyTorch v1.12.0, wadah Kompiler Pel SageMaker atihan untuk PyTorch tersedia. Perhatikan bahwa wadah Tra SageMaker ining Compil PyTorch er untuk tidak dikemas sebelumnya 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 Tra SageMaker ining Compiler untuk Hugging Face dan. PyTorch  
Untuk daftar lengkap versi kerangka kerja dan informasi wadah 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 Tra SageMaker ining 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 Tra SageMaker ining 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 berikut.
+ [Untuk pelatihan GPU tunggal](training-compiler-pytorch-models.md#training-compiler-pytorch-models-transformers-trainer-single-gpu)dari PyTorch model yang menggunakan API Pelatih Hugging Face Transformers [https://huggingface.co/docs/transformers/main_classes/trainer](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)dari PyTorch model tanpa API Pelatih Hugging Face Transformers [https://huggingface.co/transformers/main_classes/trainer.html](https://huggingface.co/transformers/main_classes/trainer.html)

Untuk menemukan contoh ujung ke ujung, lihat buku catatan berikut:
+ [Kompilasi dan Latih Model Pelatih Transformers Wajah Berpelukan untuk Pertanyaan dan Jawaban dengan dataset sQuad ](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 Transformer Wajah Berpelukan dengan Dataset SST menggunakan SageMaker Training Compiler ](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 Dataset SST2 untuk Pelatihan Single-Node Single-GPU ](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 menyiapkan skrip 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 berikut.  
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-transformers-trainer-distributed)dari PyTorch model yang menggunakan API Pelatih Hugging Face Transformers [https://huggingface.co/transformers/main_classes/trainer.html](https://huggingface.co/transformers/main_classes/trainer.html)
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-non-trainer-distributed)dari PyTorch model tanpa API Pelatih Hugging Face Transformers [https://huggingface.co/transformers/main_classes/trainer.html](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, Tra SageMaker ining Compiler memerlukan mekanisme alternatif untuk meluncurkan pekerjaan pelatihan terdistribusi. Untuk menjalankan pelatihan terdistribusi, Tra SageMaker ining Compiler mengharuskan Anda untuk meneruskan skrip peluncur pelatihan terdistribusi SageMaker AI ke `entry_point` argumen, dan meneruskan skrip pelatihan Anda ke `hyperparameters` argumen. 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 instance 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 berikut.  
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-transformers-trainer-distributed)dari PyTorch model yang menggunakan API Pelatih Hugging Face Transformers [https://huggingface.co/transformers/main_classes/trainer.html](https://huggingface.co/transformers/main_classes/trainer.html)
[Untuk pelatihan terdistribusi](training-compiler-pytorch-models.md#training-compiler-pytorch-models-non-trainer-distributed)dari PyTorch model tanpa API Pelatih Hugging Face Transformers [https://huggingface.co/transformers/main_classes/trainer.html](https://huggingface.co/transformers/main_classes/trainer.html)

**Tip**  
Untuk menemukan contoh ujung ke ujung, lihat buku catatan berikut:  
[Kompilasi dan Latih Model GPT2 menggunakan Transformers Trainer API dengan Dataset SST2 untuk Pelatihan Single-Node Multi-GPU ](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 Model GPT2 menggunakan Transformers Trainer API dengan Dataset SST2 untuk Pelatihan Multi-Node Multi-GPU ](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 kumpulan parameter minimal yang diperlukan untuk menjalankan pekerjaan SageMaker pelatihan dengan kompiler.

**catatan**  
Saat menggunakan estimator SageMaker AI Hugging Face, Anda harus menentukan `compiler_config` parameter,`transformers_version`, `pytorch_version``hyperparameters`, dan untuk mengaktifkan Tra SageMaker ining Compiler. Anda tidak dapat menggunakan `image_uri` untuk secara manual menentukan Kontainer Pembelajaran Mendalam terintegrasi Training Compiler yang tercantum 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 Tra SageMaker ining 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 Model GPT2 menggunakan Transformers Trainer API dengan Dataset SST2 untuk Pelatihan Single-Node Multi-GPU ](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 Model GPT2 menggunakan Transformers Trainer API dengan Dataset SST2 untuk Pelatihan Multi-Node Multi-GPU ](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 membuat `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 estimator SageMaker AI Hugging Face. Tentukan versi pustaka Hugging Face Transformers yang didukung oleh Tra SageMaker ining 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 Tra SageMaker ining Compiler. Untuk menemukan versi yang tersedia, lihat[Kerangka Kerja yang Didukung](training-compiler-support.md#training-compiler-supported-frameworks).
**catatan**  
Saat menggunakan estimator SageMaker AI Hugging Face, Anda harus menentukan keduanya `transformers_version` dan. `pytorch_version`
+ `hyperparameters`(dict) - Opsional. Tentukan hyperparameter untuk pekerjaan pelatihan, seperti`n_gpus`,`batch_size`, dan`learning_rate`. Saat Anda mengaktifkan Tra SageMaker ining 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 Tra SageMaker ining 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 object) — Diperlukan untuk mengaktifkan Tra SageMaker ining Compiler. Sertakan parameter ini untuk mengaktifkan Tra SageMaker ining Compiler. Berikut ini adalah parameter untuk `TrainingCompilerConfig` kelas.
  + `enabled`(bool) - Opsional. Tentukan `True` atau `False` untuk menghidupkan atau mematikan Kompiler Pel SageMaker atihan. Nilai default-nya adalah `True`.
  + `debug`(bool) - Opsional. Untuk menerima log pelatihan yang lebih rinci dari pekerjaan pelatihan yang dipercepat kompiler Anda, ubah menjadi. `True` Namun, logging tambahan mungkin menambah overhead dan memperlambat pekerjaan pelatihan yang dikompilasi. Nilai default-nya adalah `False`.
+ `distribution`(dict) - Opsional. Untuk menjalankan tugas pelatihan terdistribusi dengan Tra SageMaker ining Compiler, tambahkan`distribution = { 'pytorchxla' : { 'enabled': True }}`.

**Awas**  
Jika Anda mengaktifkan SageMaker Debugger, itu mungkin memengaruhi kinerja Tra SageMaker ining Compiler. Sebaiknya matikan Debugger saat menjalankan Tra SageMaker ining 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 mematikan fungsi 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 Oper SageMaker asi `CreateTrainingJob` API AI
<a name="training-compiler-enable-pytorch-api"></a>

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

```
"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 URI gambar wadah pembelajaran mendalam yang telah menerapkan Tra SageMaker ining Compiler, lihat. [Kerangka Kerja yang Didukung](training-compiler-support.md#training-compiler-supported-frameworks)