

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

# Jalankan Pekerjaan TensorFlow Pelatihan dengan Kompiler SageMaker Pelatihan
<a name="training-compiler-enable-tensorflow"></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-tensorflow-pysdk)
+ [Menggunakan SageMaker AI Python SDK dan Memperluas AI Framework Deep Learning SageMaker Containers](#training-compiler-enable-tensorflow-sdk-extend-container)
+ [Aktifkan Kompiler SageMaker Pelatihan Menggunakan SageMaker Operasi AI `CreateTrainingJob` API](#training-compiler-enable-tensorflow-api)

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

Untuk mengaktifkan SageMaker Training Compiler, tambahkan `compiler_config` parameter ke SageMaker AI TensorFlow atau Hugging Face estimator. 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 library TensorFlow and Transformers, coba gunakan ukuran batch yang disediakan dalam tabel referensi di. [Model yang Diuji](training-compiler-support.md#training-compiler-tested-models)

**catatan**  
SageMaker Training Compiler for TensorFlow tersedia melalui estimator kerangka SageMaker kerja AI [TensorFlow](https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/sagemaker.tensorflow.html#tensorflow-estimator)dan [Hugging Face](https://sagemaker.readthedocs.io/en/stable/frameworks/huggingface/sagemaker.huggingface.html#hugging-face-estimator).

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

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

------
#### [ TensorFlow ]

```
from sagemaker.tensorflow import TensorFlow, 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 the global learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size

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

tensorflow_estimator=TensorFlow(
    entry_point='{{train.py}}',
    instance_count=1,
    instance_type='{{ml.p3.2xlarge}}',
    framework_version='{{2.9.1}}',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    disable_profiler=True,
    debugger_hook_config=False
)

tensorflow_estimator.fit()
```

Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.
+ [Untuk pelatihan GPU tunggal](training-compiler-tensorflow.md#training-compiler-tensorflow-models-keras-single-gpu)dari model yang dibangun menggunakan TensorFlow Keras (`tf.keras.*`).
+ [Untuk pelatihan GPU tunggal](training-compiler-tensorflow.md#training-compiler-tensorflow-models-no-keras-single-gpu)dari model yang dibangun menggunakan TensorFlow modul (`tf.*`tidak termasuk modul TensorFlow Keras).

------
#### [ Hugging Face Estimator with TensorFlow ]

```
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 the global learning rate
learning_rate=learning_rate_native/batch_size_native*batch_size

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

tensorflow_huggingface_estimator=HuggingFace(
    entry_point='{{train.py}}',
    instance_count=1,
    instance_type='{{ml.p3.2xlarge}}',
    transformers_version='4.21.1',
    tensorflow_version='2.6.3',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    disable_profiler=True,
    debugger_hook_config=False
)

tensorflow_huggingface_estimator.fit()
```

Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.
+ [Untuk pelatihan GPU tunggal](training-compiler-tensorflow.md#training-compiler-tensorflow-models-transformers-keras-single-gpu)model TensorFlow Keras dengan Hugging Face Transformers
+ [Untuk pelatihan GPU tunggal](training-compiler-tensorflow.md#training-compiler-tensorflow-models-transformers-no-keras-single-gpu) TensorFlow model dengan Hugging Face Transformers

------

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

------
#### [ Hugging Face Estimator with TensorFlow ]

```
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
}

tensorflow_huggingface_estimator=HuggingFace(
    entry_point='{{train.py}}',
    instance_count=instance_count,
    instance_type=instance_type,
    transformers_version='4.21.1',
    tensorflow_version='2.6.3',
    hyperparameters=hyperparameters,
    compiler_config=TrainingCompilerConfig(),
    disable_profiler=True,
    debugger_hook_config=False
)

tensorflow_huggingface_estimator.fit()
```

**Tip**  
Untuk menyiapkan skrip pelatihan Anda, lihat halaman-halaman berikut.  
[Untuk pelatihan terdistribusi](training-compiler-tensorflow.md#training-compiler-tensorflow-models-transformers-keras-distributed)model TensorFlow Keras dengan Hugging Face Transformers
[Untuk pelatihan terdistribusi](training-compiler-tensorflow.md#training-compiler-tensorflow-models-transformers-no-keras-distributed) TensorFlow model dengan Hugging Face Transformers

------

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`,, `tensorflow_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.
+ `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 `tensorflow_version` (str) - Diperlukan. Tentukan TensorFlow 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 TensorFlow estimator SageMaker AI, Anda harus menentukan`framework_version`.  
Saat menggunakan penaksir SageMaker AI Hugging Face, Anda harus menentukan `transformers_version` keduanya dan. `tensorflow_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).
+ `compiler_config`(TrainingCompilerConfig objek) - Diperlukan. 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`.

**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 SageMaker AI Python SDK dan Memperluas AI Framework Deep Learning SageMaker Containers
<a name="training-compiler-enable-tensorflow-sdk-extend-container"></a>

AWS Deep Learning Containers (DLC) untuk TensorFlow menggunakan versi adaptasi TensorFlow yang menyertakan perubahan di atas kerangka open source TensorFlow . [SageMaker AI Framework Deep Learning Containers](https://github.com/aws/deep-learning-containers/blob/master/available_images.md#sagemaker-framework-containers-sm-support-only) dioptimalkan untuk AWS infrastruktur yang mendasarinya dan Amazon SageMaker AI. Dengan keuntungan menggunakan DLCs, integrasi SageMaker Training Compiler menambahkan lebih banyak peningkatan kinerja dibandingkan yang asli TensorFlow. Selanjutnya, Anda dapat membuat wadah pelatihan khusus dengan memperluas gambar DLC.

**catatan**  
Fitur kustomisasi Docker ini saat ini hanya tersedia untuk TensorFlow.

Untuk memperluas dan menyesuaikan SageMaker AI TensorFlow DLCs untuk kasus penggunaan Anda, gunakan petunjuk berikut.

### Buat Dockerfile
<a name="training-compiler-enable-tensorflow-sdk-extend-container-create-dockerfile"></a>

Gunakan template Dockerfile berikut untuk memperluas SageMaker AI TensorFlow DLC. Anda harus menggunakan gambar SageMaker AI TensorFlow DLC sebagai gambar dasar wadah Docker Anda. Untuk menemukan gambar SageMaker AI TensorFlow DLC, lihat Kerangka Kerja URIs yang [Didukung](https://docs.aws.amazon.com/sagemaker/latest/dg/training-compiler-support.html#training-compiler-supported-frameworks).

```
# SageMaker AI TensorFlow Deep Learning Container image
FROM 763104351884.dkr.ecr.{{<aws-region>}}.amazonaws.com/tensorflow-training:{{<image-tag>}}

ENV PATH="/opt/ml/code:${PATH}"

# This environment variable is used by the SageMaker AI container 
# to determine user code directory.
ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code

# Add more code lines to customize for your use-case
...
```

Untuk informasi selengkapnya, lihat [Langkah 2: Membuat dan mengunggah skrip pelatihan Dockerfile dan Python](https://docs.aws.amazon.com/sagemaker/latest/dg/adapt-training-container.html#byoc-training-step2).

Pertimbangkan jebakan berikut saat memperluas Kerangka SageMaker AI: DLCs
+ Jangan secara eksplisit menghapus atau mengubah versi TensorFlow paket dalam SageMaker wadah AI. Melakukan hal itu menyebabkan TensorFlow paket yang AWS dioptimalkan ditimpa oleh TensorFlow paket sumber terbuka, yang dapat mengakibatkan penurunan kinerja.
+ Hati-hati dengan paket yang memiliki TensorFlow versi atau rasa tertentu sebagai ketergantungan. Paket-paket ini mungkin secara implisit menghapus instalasi paket sumber terbuka yang AWS dioptimalkan TensorFlow dan menginstal. TensorFlow 

[Misalnya, ada masalah yang diketahui bahwa pustaka [tensorflow/models dan [tensorflow/text](https://github.com/tensorflow/text)](https://github.com/tensorflow/models) selalu mencoba menginstal ulang open source. TensorFlow](https://github.com/tensorflow/models/issues/9267) Jika Anda perlu menginstal pustaka ini untuk memilih versi tertentu untuk kasus penggunaan Anda, kami sarankan Anda melihat ke Dockerfiles SageMaker AI TensorFlow DLC untuk v2.9 atau yang lebih baru. Jalur ke Dockerfiles biasanya dalam format berikut:. `tensorflow/training/docker/<tensorflow-version>/py3/<cuda-version>/Dockerfile.gpu` Di Dockerfiles, Anda harus menemukan baris kode untuk menginstal ulang TensorFlow biner AWS terkelola (ditentukan ke variabel `TF_URL` lingkungan) dan dependensi lainnya secara berurutan. Bagian instalasi ulang akan terlihat seperti contoh berikut:

```
# tf-models does not respect existing installations of TensorFlow 
# and always installs open source TensorFlow

RUN pip3 install --no-cache-dir -U \
    tf-models-official=={{x.y.z}}

RUN pip3 uninstall -y tensorflow tensorflow-gpu \
  ; pip3 install --no-cache-dir -U \
    ${TF_URL} \
    tensorflow-io=={{x.y.z}} \
    tensorflow-datasets=={{x.y.z}}
```

### Bangun dan dorong ke ECR
<a name="training-compiler-enable-tensorflow-sdk-extend-container-build-and-push"></a>

Untuk membangun dan mendorong container Docker Anda ke Amazon ECR, ikuti petunjuk di tautan berikut:
+ [Langkah 3: Bangun wadah](https://docs.aws.amazon.com/sagemaker/latest/dg/adapt-training-container.html#byoc-training-step3)
+ [Langkah 4: Uji wadahnya](https://docs.aws.amazon.com/sagemaker/latest/dg/adapt-training-container.html#byoc-training-step4)
+ [Langkah 5: Dorong wadah ke Amazon ECR](https://docs.aws.amazon.com/sagemaker/latest/dg/adapt-training-container.html#byoc-training-step5)

### Jalankan menggunakan SageMaker Python SDK Estimator
<a name="training-compiler-enable-tensorflow-sdk-extend-container-run-job"></a>

Gunakan estimator TensorFlow kerangka kerja SageMaker AI seperti biasa. Anda harus menentukan `image_uri` untuk menggunakan wadah baru yang Anda host di Amazon ECR.

```
import sagemaker, boto3
from sagemaker import get_execution_role
from sagemaker.tensorflow import TensorFlow, TrainingCompilerConfig

account_id = boto3.client('sts').get_caller_identity().get('Account')
ecr_repository = {{'tf-custom-container-test'}}
tag = {{':latest'}}

region = boto3.session.Session().region_name

uri_suffix = 'amazonaws.com'

byoc_image_uri = '{}.dkr.ecr.{}.{}/{}'.format(
    account_id, region, uri_suffix, ecr_repository + tag
)

byoc_image_uri
# This should return something like
# 111122223333.dkr.ecr.us-east-2.amazonaws.com/tf-custom-container-test:latest

estimator = TensorFlow(
    image_uri=image_uri,
    role=get_execution_role(),
    base_job_name='{{tf-custom-container-test-job}}',
    instance_count=1,
    instance_type='{{ml.p3.8xlarge}}'
    compiler_config=TrainingCompilerConfig(),
    disable_profiler=True,
    debugger_hook_config=False
)

# Start training
estimator.fit()
```

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

SageMaker Opsi konfigurasi Training Compiler harus ditentukan melalui `HyperParameters` kolom `AlgorithmSpecification` and dalam sintaks permintaan untuk operasi [`CreateTrainingJob`API](https://amazonaws.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"
}
```

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).