

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

# Tune Beberapa Algoritma dengan Optimasi Hyperparameter untuk Menemukan Model Terbaik
<a name="multiple-algorithm-hpo"></a>

Untuk membuat pekerjaan optimasi hyperparameter (HPO) baru dengan Amazon SageMaker AI yang menyetel beberapa algoritme, Anda harus menyediakan pengaturan pekerjaan yang berlaku untuk semua algoritme yang akan diuji dan definisi pelatihan untuk masing-masing algoritme ini. Anda juga harus menentukan sumber daya yang ingin Anda gunakan untuk pekerjaan penyetelan.
+ **Pengaturan pekerjaan** untuk mengonfigurasi termasuk start hangat, penghentian awal, dan strategi penyetelan. Awal yang hangat dan penghentian awal hanya tersedia saat menyetel satu algoritma.
+ **Definisi pekerjaan pelatihan** untuk menentukan nama, sumber algoritme, metrik objektif, dan rentang nilai, bila diperlukan, untuk mengonfigurasi kumpulan nilai hiperparameter untuk setiap pekerjaan pelatihan. Ini mengonfigurasi saluran untuk input data, lokasi keluaran data, dan lokasi penyimpanan pos pemeriksaan apa pun untuk setiap pekerjaan pelatihan. Definisi ini juga mengonfigurasi sumber daya yang akan diterapkan untuk setiap pekerjaan pelatihan, termasuk jenis dan jumlah instans, pelatihan spot terkelola, dan kondisi penghentian.
+ **Sumber daya pekerjaan tuning**: untuk diterapkan, termasuk jumlah maksimum pekerjaan pelatihan bersamaan yang dapat dijalankan oleh pekerjaan tuning hyperparameter secara bersamaan dan jumlah maksimum pekerjaan pelatihan yang dapat dijalankan oleh pekerjaan tuning hyperparameter.

## Mulai
<a name="multiple-algorithm-hpo-get-started"></a>

Anda dapat membuat pekerjaan penyetelan hyperparameter baru, mengkloning pekerjaan, menambahkan, atau mengedit tag ke pekerjaan dari konsol. Anda juga dapat menggunakan fitur pencarian untuk mencari pekerjaan berdasarkan nama, waktu pembuatan, atau statusnya. Atau, Anda juga dapat melakukan pekerjaan tuning hyperparameter dengan SageMaker AI API.
+ **Di konsol**: Untuk membuat pekerjaan baru, buka konsol Amazon SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/), pilih pekerjaan **tuning Hyperparameter dari menu **Pelatihan**, lalu pilih Buat pekerjaan** **tuning hyperparameter**. Kemudian ikuti langkah-langkah konfigurasi untuk membuat pekerjaan pelatihan untuk setiap algoritme yang ingin Anda gunakan. Langkah-langkah ini didokumentasikan dalam [Buat Job Tuning Optimasi Hyperparameter untuk Satu atau Lebih Algoritma (Konsol)](multiple-algorithm-hpo-create-tuning-jobs.md) topik. 
**catatan**  
Saat Anda memulai langkah-langkah konfigurasi, perhatikan bahwa fitur mulai hangat dan penghentian awal tidak tersedia untuk digunakan dengan HPO multi-algoritma. Jika Anda ingin menggunakan fitur-fitur ini, Anda hanya dapat menyetel satu algoritma pada satu waktu. 
+ **Dengan API**: Untuk petunjuk penggunaan SageMaker API guna membuat tugas penyetelan hyperparameter, lihat [Contoh: Hyperparameter Tuning](automatic-model-tuning-ex.html) Job. Saat Anda menelepon [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html)untuk menyetel beberapa algoritme, Anda harus memberikan daftar definisi pelatihan menggunakan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html#sagemaker-CreateHyperParameterTuningJob-request-TrainingJobDefinitions](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html#sagemaker-CreateHyperParameterTuningJob-request-TrainingJobDefinitions)alih-alih menentukan satu. [TrainingJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html#sagemaker-CreateHyperParameterTuningJob-request-TrainingJobDefinition) Anda harus memberikan pengaturan pekerjaan yang berlaku untuk semua algoritme yang akan diuji dan definisi pelatihan untuk masing-masing algoritme ini. Anda juga harus menentukan sumber daya yang ingin Anda gunakan untuk pekerjaan penyetelan. Pilih hanya satu dari jenis definisi ini tergantung pada jumlah algoritma yang sedang disetel. 

**Topics**
+ [Mulai](#multiple-algorithm-hpo-get-started)
+ [Buat Job Tuning Optimasi Hyperparameter untuk Satu atau Lebih Algoritma (Konsol)](multiple-algorithm-hpo-create-tuning-jobs.md)
+ [Kelola Pekerjaan Tuning dan Pelatihan Hyperparameter](multiple-algorithm-hpo-manage-tuning-jobs.md)

# Buat Job Tuning Optimasi Hyperparameter untuk Satu atau Lebih Algoritma (Konsol)
<a name="multiple-algorithm-hpo-create-tuning-jobs"></a>

Panduan ini menunjukkan kepada Anda cara membuat pekerjaan penyetelan optimasi hyperparameter (HPO) baru untuk satu atau lebih algoritme. Untuk membuat pekerjaan HPO, tentukan pengaturan untuk pekerjaan penyetelan, dan buat definisi pekerjaan pelatihan untuk setiap algoritme yang disetel. Selanjutnya, konfigurasikan sumber daya untuk dan buat pekerjaan penyetelan. Bagian berikut memberikan rincian tentang cara menyelesaikan setiap langkah. Kami memberikan contoh cara menyetel beberapa algoritme menggunakan SageMaker AI SDK untuk Python klien di akhir panduan ini.

## Komponen pekerjaan penyetelan
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-settings"></a>

Pekerjaan penyetelan HPO berisi tiga komponen berikut:
+ Menyetel pengaturan pekerjaan
+ Definisi pekerjaan pelatihan
+ Konfigurasi pekerjaan penyetelan

Cara komponen-komponen ini disertakan dalam pekerjaan penyetelan HPO Anda tergantung pada apakah pekerjaan penyetelan Anda berisi satu atau beberapa algoritme pelatihan. Panduan berikut menjelaskan masing-masing komponen dan memberikan contoh dari kedua jenis pekerjaan tuning.

### Menyetel pengaturan pekerjaan
<a name="multiple-algorithm-hpo-create-tuning-jobs-components-tuning-settings"></a>

Pengaturan pekerjaan tuning Anda diterapkan di semua algoritme dalam pekerjaan penyetelan HPO. Mulai hangat dan penghentian awal hanya tersedia saat Anda menyetel satu algoritma. Setelah Anda menentukan pengaturan pekerjaan, Anda dapat membuat definisi pelatihan individual untuk setiap algoritme atau variasi yang ingin Anda sesuaikan. 

**Awal yang hangat**  
Jika Anda mengkloning pekerjaan ini, Anda dapat menggunakan hasil dari pekerjaan penyetelan sebelumnya untuk meningkatkan kinerja pekerjaan penyetelan baru ini. Ini adalah fitur awal yang hangat, dan hanya tersedia saat menyetel satu algoritma. Dengan opsi start hangat, Anda dapat memilih hingga lima pekerjaan penyetelan hyperparameter sebelumnya untuk digunakan. Atau, Anda dapat menggunakan pembelajaran transfer untuk menambahkan data tambahan ke pekerjaan penyetelan induk. Saat Anda memilih opsi ini, Anda memilih satu pekerjaan penyetelan sebelumnya sebagai induknya. 

**catatan**  
Warm start hanya kompatibel dengan pekerjaan tuning yang dibuat setelah 1 Oktober 2018. Untuk informasi selengkapnya, lihat [Menjalankan pekerjaan awal yang hangat](automatic-model-tuning-considerations.html).

**Berhenti lebih awal**  
Untuk mengurangi waktu komputasi dan menghindari overfitting model Anda, Anda dapat menghentikan pekerjaan pelatihan lebih awal. Berhenti lebih awal sangat membantu ketika pekerjaan pelatihan tidak mungkin meningkatkan metrik objektif terbaik saat ini dari pekerjaan penyetelan hiperparameter. Seperti warm start, fitur ini hanya tersedia saat menyetel satu algoritma. Ini adalah fitur otomatis tanpa opsi konfigurasi, dan dinonaktifkan secara default. Untuk informasi selengkapnya tentang cara kerja penghentian dini, algoritme yang mendukungnya, dan cara menggunakannya dengan algoritme Anda sendiri, lihat [Hentikan Pekerjaan Pelatihan](automatic-model-tuning-early-stopping.html) Lebih Dini.

**Strategi penyetelan**  
Strategi penyetelan dapat berupa acak, Bayesian, atau. Hyperband Pilihan ini menentukan bagaimana algoritma penyetelan otomatis mencari rentang hyperparameter tertentu yang dipilih pada langkah selanjutnya. Pencarian acak memilih kombinasi nilai acak dari rentang yang ditentukan dan dapat dijalankan secara berurutan atau paralel. Optimasi Bayesian memilih nilai berdasarkan apa yang mungkin mendapatkan hasil terbaik sesuai dengan sejarah yang diketahui dari pilihan sebelumnya. Hyperbandmenggunakan strategi multi-fidelity yang secara dinamis mengalokasikan sumber daya untuk pekerjaan yang dimanfaatkan dengan baik dan secara otomatis menghentikan mereka yang berkinerja buruk. Konfigurasi baru yang dimulai setelah menghentikan konfigurasi lain dipilih secara acak.

 Hyperband[hanya dapat digunakan dengan algoritma iteratif, atau algoritma yang menjalankan langkah-langkah dalam iterasi, seperti [https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)atau Random Cut Forest.](https://docs.aws.amazon.com/sagemaker/latest/dg/randomcutforest.html) Hyperband[tidak dapat digunakan dengan algoritme non-iteratif, seperti pohon keputusan atau Tetangga K-terdekat.](https://docs.aws.amazon.com/sagemaker/latest/dg/k-nearest-neighbors.html) Untuk informasi selengkapnya tentang strategi penelusuran, lihat [Cara Kerja Penyetelan Hyperparameter](automatic-model-tuning-how-it-works.html).

**catatan**  
Hyperbandmenggunakan mekanisme internal canggih untuk menerapkan penghentian dini. Oleh karena itu, saat Anda menggunakan fitur penghentian awal Hyperband internal, parameter `TrainingJobEarlyStoppingType` di `HyperParameterTuningJobConfig` API harus disetel ke`OFF`.

**Tanda**  
Untuk membantu mengelola pekerjaan penyetelan, Anda dapat memasukkan tag sebagai pasangan nilai kunci untuk menetapkan metadata ke pekerjaan penyetelan. Nilai dalam pasangan kunci-nilai tidak diperlukan. Anda dapat menggunakan kunci tanpa nilai. Untuk melihat kunci yang terkait dengan pekerjaan, pilih tab **Tag** pada halaman detail untuk menyetel pekerjaan. Untuk informasi selengkapnya tentang penggunaan tag untuk menyetel pekerjaan, lihat[Kelola Pekerjaan Tuning dan Pelatihan Hyperparameter](multiple-algorithm-hpo-manage-tuning-jobs.md).

### Definisi pekerjaan pelatihan
<a name="multiple-algorithm-hpo-create-tuning-jobs-training-definitions"></a>

Untuk membuat definisi pekerjaan pelatihan, Anda harus mengonfigurasi algoritme dan parameter, menentukan input dan output data, dan mengonfigurasi sumber daya. Berikan setidaknya satu [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html)untuk setiap pekerjaan penyetelan HPO. Setiap definisi pelatihan menentukan konfigurasi untuk algoritma.

Untuk membuat beberapa definisi untuk pekerjaan pelatihan Anda, Anda dapat mengkloning definisi pekerjaan. Mengkloning pekerjaan dapat menghemat waktu karena menyalin semua pengaturan pekerjaan, termasuk saluran data dan lokasi penyimpanan Amazon S3 untuk artefak keluaran. Anda dapat mengedit pekerjaan kloning untuk mengubah apa yang Anda butuhkan untuk kasus penggunaan Anda.

**Topics**
+ [Konfigurasikan algoritma dan parameter](#multiple-algorithm-hpo-algorithm-configuration)
+ [Tentukan input dan output data](#multiple-algorithm-hpo-data)
+ [Konfigurasikan sumber daya pekerjaan pelatihan](#multiple-algorithm-hpo-training-job-definition-resources)
+ [Menambahkan atau mengkloning pekerjaan pelatihan](#multiple-algorithm-hpo-add-training-job)

#### Konfigurasikan algoritma dan parameter
<a name="multiple-algorithm-hpo-algorithm-configuration"></a>

 Daftar berikut menjelaskan apa yang Anda butuhkan untuk mengonfigurasi kumpulan nilai hyperparameter untuk setiap pekerjaan pelatihan. 
+ Nama untuk pekerjaan tuning Anda
+ Izin untuk mengakses layanan
+ Parameter untuk opsi algoritme apa pun
+ Metrik objektif
+ Kisaran nilai hyperparameter, bila diperlukan

**Nama**  
 Berikan nama unik untuk definisi pelatihan. 

**Izin**  
 Amazon SageMaker AI memerlukan izin untuk memanggil layanan lain atas nama Anda. Pilih peran AWS Identity and Access Management (IAM), atau biarkan AWS membuat peran dengan kebijakan `AmazonSageMakerFullAccess` IAM terlampir. 

**Pengaturan keamanan opsional**  
 Pengaturan isolasi jaringan mencegah kontainer melakukan panggilan jaringan keluar. Ini diperlukan untuk penawaran pembelajaran AWS Marketplace mesin. 

 Anda juga dapat memilih untuk menggunakan virtual private cloud (VPC).

**catatan**  
 Enkripsi antar kontainer hanya tersedia saat Anda membuat definisi pekerjaan dari API. 

**Opsi algoritma**  
Anda dapat memilih algoritma bawaan, algoritme Anda sendiri, wadah Anda sendiri dengan algoritme, atau Anda dapat berlangganan algoritme dari AWS Marketplace. 
+ Jika Anda memilih algoritme bawaan, ia memiliki informasi gambar Amazon Elastic Container Registry (Amazon ECR) yang sudah terisi sebelumnya.
+ Jika Anda memilih wadah Anda sendiri, Anda harus menentukan informasi gambar (Amazon ECR). Anda dapat memilih mode input untuk algoritma sebagai file atau pipa.
+ Jika Anda berencana untuk memasok data menggunakan file CSV dari Amazon S3, Anda harus memilih file tersebut.

**Metrik-metrik**  
Saat Anda memilih algoritme bawaan, metrik disediakan untuk Anda. Jika Anda memilih algoritma Anda sendiri, Anda harus menentukan metrik Anda. Anda dapat menentukan hingga 20 metrik untuk dipantau oleh pekerjaan penyetelan Anda. Anda harus memilih satu metrik sebagai metrik objektif. Untuk informasi selengkapnya tentang cara menentukan metrik untuk pekerjaan penyetelan, lihat[Tentukan metrik](automatic-model-tuning-define-metrics-variables.md#automatic-model-tuning-define-metrics).

**Metrik obyektif**  
Untuk menemukan pekerjaan pelatihan terbaik, tetapkan metrik objektif dan apakah akan memaksimalkan atau meminimalkannya. Setelah pekerjaan pelatihan selesai, Anda dapat melihat halaman detail pekerjaan tuning. Halaman detail memberikan ringkasan pekerjaan pelatihan terbaik yang ditemukan menggunakan metrik objektif ini. 

**Konfigurasi hyperparameter**  
Saat Anda memilih algoritma bawaan, nilai default untuk hyperparameternya ditetapkan untuk Anda, menggunakan rentang yang dioptimalkan untuk algoritme yang sedang disetel. Anda dapat mengubah nilai-nilai ini sesuai keinginan Anda. Misalnya, alih-alih rentang, Anda dapat menetapkan nilai tetap untuk hyperparameter dengan menyetel tipe parameter ke **statis**. Setiap algoritma memiliki parameter wajib dan opsional yang berbeda. Untuk informasi selengkapnya, lihat [Praktik Terbaik untuk Penyetelan Hyperparameter dan Menentukan](automatic-model-tuning-considerations.html) [Rentang Hyperparameter](automatic-model-tuning-define-ranges.html). 

#### Tentukan input dan output data
<a name="multiple-algorithm-hpo-data"></a>

Setiap definisi pekerjaan pelatihan untuk pekerjaan penyetelan harus mengonfigurasi saluran untuk input data, lokasi keluaran data, dan secara opsional, lokasi penyimpanan pos pemeriksaan apa pun untuk setiap pekerjaan pelatihan. 

**Konfigurasi data masukan**  
Data input ditentukan oleh saluran. Setiap saluran lokasi sumbernya sendiri (Amazon S3 atau Amazon Elastic File System), opsi kompresi, dan format. Anda dapat menentukan hingga 20 saluran sumber input. Jika algoritme yang Anda pilih mendukung beberapa saluran input, Anda juga dapat menentukannya. Misalnya, saat Anda menggunakan [buku catatan prediksi XGBoost churn](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_applying_machine_learning/xgboost_customer_churn/xgboost_customer_churn.html), Anda dapat menambahkan dua saluran: kereta api dan validasi.

**Konfigurasi pos pemeriksaan**  
Pos pemeriksaan dibuat secara berkala selama pelatihan. Agar pos pemeriksaan disimpan, Anda harus memilih lokasi Amazon S3. Pos pemeriksaan digunakan dalam pelaporan metrik, dan juga digunakan untuk melanjutkan pekerjaan pelatihan spot yang dikelola. Untuk informasi selengkapnya, lihat [Pos pemeriksaan di Amazon AI SageMaker](model-checkpoints.md).

**Konfigurasi data keluaran**  
Tentukan lokasi Amazon S3 untuk artefak pekerjaan pelatihan yang akan disimpan. Anda memiliki opsi untuk menambahkan enkripsi ke output menggunakan kunci AWS Key Management Service (AWS KMS). 

#### Konfigurasikan sumber daya pekerjaan pelatihan
<a name="multiple-algorithm-hpo-training-job-definition-resources"></a>

Setiap definisi pekerjaan pelatihan untuk pekerjaan penyetelan harus mengonfigurasi sumber daya yang akan diterapkan, termasuk jenis dan jumlah instans, pelatihan tempat terkelola, dan kondisi penghentian.

**Konfigurasi sumber daya**  
Setiap definisi pelatihan dapat memiliki konfigurasi sumber daya yang berbeda. Anda memilih jenis instance dan jumlah node. 

**Pelatihan spot terkelola**  
Anda dapat menghemat biaya komputer untuk pekerjaan jika Anda memiliki fleksibilitas dalam waktu mulai dan akhir dengan memungkinkan SageMaker AI menggunakan kapasitas cadangan untuk menjalankan pekerjaan. Untuk informasi selengkapnya, lihat [Pelatihan Spot Terkelola di Amazon SageMaker AI](model-managed-spot-training.md).

**Kondisi berhenti**  
Kondisi berhenti menentukan durasi maksimum yang diizinkan untuk setiap pekerjaan pelatihan. 

#### Menambahkan atau mengkloning pekerjaan pelatihan
<a name="multiple-algorithm-hpo-add-training-job"></a>

Setelah Anda membuat definisi pekerjaan pelatihan untuk pekerjaan tuning, Anda akan kembali ke panel **Training Job Definition (s)**. Panel ini adalah tempat Anda dapat membuat definisi pekerjaan pelatihan tambahan untuk melatih algoritme tambahan. Anda dapat memilih **definisi Tambahkan pekerjaan pelatihan** dan mengerjakan langkah-langkah untuk menentukan pekerjaan pelatihan lagi. 

Atau, untuk mereplikasi definisi pekerjaan pelatihan yang ada dan mengeditnya untuk algoritma baru, pilih **Clone dari menu** **Action**. Opsi klon dapat menghemat waktu karena menyalin semua pengaturan pekerjaan, termasuk saluran data dan lokasi penyimpanan Amazon S3. Untuk informasi lebih lanjut tentang kloning, lihat[Kelola Pekerjaan Tuning dan Pelatihan Hyperparameter](multiple-algorithm-hpo-manage-tuning-jobs.md).

### Konfigurasi pekerjaan penyetelan
<a name="multiple-algorithm-hpo-resource-config"></a>

**Batasan sumber daya**  
Anda dapat menentukan jumlah maksimum pekerjaan pelatihan bersamaan yang dapat dijalankan oleh pekerjaan penyetelan hiperparameter secara bersamaan (paling banyak 10). Anda juga dapat menentukan jumlah maksimum pekerjaan pelatihan yang dapat dijalankan oleh pekerjaan tuning hyperparameter (paling banyak 500). Jumlah pekerjaan paralel tidak boleh melebihi jumlah node yang Anda minta di semua definisi pelatihan Anda. Jumlah total pekerjaan tidak dapat melebihi jumlah pekerjaan yang diharapkan dijalankan oleh definisi Anda.

Tinjau pengaturan pekerjaan, definisi pekerjaan pelatihan, dan batas sumber daya. Kemudian pilih **Create hyperparameter tuning job.**

## Contoh pekerjaan penyetelan HPO
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example"></a>

Untuk menjalankan pekerjaan pelatihan optimasi hyperparameter (HPO), pertama-tama buat definisi pekerjaan pelatihan untuk setiap algoritme yang sedang disetel. Selanjutnya, tentukan pengaturan pekerjaan penyetelan dan konfigurasikan sumber daya untuk pekerjaan penyetelan. Akhirnya, jalankan pekerjaan tuning.

Jika pekerjaan penyetelan HPO Anda berisi algoritme pelatihan tunggal, fungsi penyetelan SageMaker AI akan memanggil `HyperparameterTuner` API secara langsung dan meneruskan parameter Anda. Jika pekerjaan penyetelan HPO Anda berisi beberapa algoritme pelatihan, fungsi penyetelan Anda akan memanggil `create` fungsi API. `HyperparameterTuner` `create`Fungsi ini memberi tahu API untuk mengharapkan kamus yang berisi satu atau lebih estimator.

Pada bagian berikut, contoh kode menunjukkan cara menyetel pekerjaan yang berisi algoritme pelatihan tunggal atau beberapa algoritme menggunakan SageMaker AIPython SDK.

### Buat definisi pekerjaan pelatihan
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-train"></a>

Saat Anda membuat pekerjaan penyetelan yang mencakup beberapa algoritme pelatihan, konfigurasi pekerjaan penyetelan Anda akan mencakup estimator dan metrik serta parameter lain untuk pekerjaan pelatihan Anda. Oleh karena itu, Anda perlu membuat definisi pekerjaan pelatihan terlebih dahulu, dan kemudian mengonfigurasi pekerjaan penyetelan Anda. 

Contoh kode berikut menunjukkan cara mengambil dua kontainer SageMaker AI yang berisi algoritme [https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)bawaan dan. [https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html](https://docs.aws.amazon.com/sagemaker/latest/dg/linear-learner.html) Jika pekerjaan penyetelan Anda hanya berisi satu algoritme pelatihan, hilangkan salah satu wadah dan salah satu penaksir.

```
import sagemaker
from sagemaker import image_uris

from sagemaker.estimator import Estimator

sess = sagemaker.Session()
region = sess.boto_region_name
role = sagemaker.get_execution_role()

bucket = sess.default_bucket()
prefix = "sagemaker/multi-algo-hpo"

# Define the training containers and intialize the estimators
xgb_container = image_uris.retrieve("xgboost", region, "latest")
ll_container = image_uris.retrieve("linear-learner", region, "latest")

xgb_estimator = Estimator(
    xgb_container,
    role=role,
    instance_count=1,
    instance_type="ml.m4.xlarge",
    output_path='s3://{}/{}/xgb_output".format(bucket, prefix)',
    sagemaker_session=sess,
)

ll_estimator = Estimator(
    ll_container,
    role,
    instance_count=1,
    instance_type="ml.c4.xlarge",
    output_path="s3://{}/{}/ll_output".format(bucket, prefix),
    sagemaker_session=sess,
)

# Set static hyperparameters
ll_estimator.set_hyperparameters(predictor_type="binary_classifier")
xgb_estimator.set_hyperparameters(
    eval_metric="auc",
    objective="binary:logistic",
    num_round=100,
    rate_drop=0.3,
    tweedie_variance_power=1.4,
)
```

Selanjutnya, tentukan data masukan Anda dengan menentukan kumpulan data pelatihan, validasi, dan pengujian, seperti yang ditunjukkan pada contoh kode berikut. Contoh ini menunjukkan cara menyetel beberapa algoritma pelatihan.

```
training_data = sagemaker.inputs.TrainingInput(
    s3_data="s3://{}/{}/train".format(bucket, prefix), content_type="csv"
)
validation_data = sagemaker.inputs.TrainingInput(
    s3_data="s3://{}/{}/validate".format(bucket, prefix), content_type="csv"
)
test_data = sagemaker.inputs.TrainingInput(
    s3_data="s3://{}/{}/test".format(bucket, prefix), content_type="csv"
)

train_inputs = {
    "estimator-1": {
        "train": training_data,
        "validation": validation_data,
        "test": test_data,
    },
    "estimator-2": {
        "train": training_data,
        "validation": validation_data,
        "test": test_data,
    },
}
```

Jika algoritme penyetelan Anda hanya berisi satu algoritma pelatihan, algoritme Anda `train_inputs` harus berisi hanya satu penaksir.

Anda harus mengunggah input untuk kumpulan data pelatihan, validasi, dan pelatihan ke bucket Amazon S3 sebelum menggunakannya dalam pekerjaan penyetelan HPO.

### Tentukan sumber daya dan pengaturan untuk pekerjaan penyetelan Anda
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-resources"></a>

Bagian ini menunjukkan cara menginisialisasi tuner, menentukan sumber daya, dan menentukan pengaturan pekerjaan untuk pekerjaan penyetelan Anda. Jika pekerjaan penyetelan Anda berisi beberapa algoritme pelatihan, pengaturan ini diterapkan ke semua algoritme yang terdapat di dalam pekerjaan penyetelan Anda. Bagian ini memberikan dua contoh kode untuk mendefinisikan tuner. Contoh kode menunjukkan kepada Anda cara mengoptimalkan algoritme pelatihan tunggal diikuti dengan contoh cara menyetel beberapa algoritme pelatihan.

#### Tune algoritma pelatihan tunggal
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-resources-single"></a>

Contoh kode berikut menunjukkan cara menginisialisasi tuner dan mengatur rentang hyperparameter untuk satu algoritma bawaan SageMaker AI,. XGBoost

```
from sagemaker.tuner import HyperparameterTuner
from sagemaker.parameter import ContinuousParameter, IntegerParameter

hyperparameter_ranges = {
    "max_depth": IntegerParameter(1, 10),
    "eta": ContinuousParameter(0.1, 0.3),
}

objective_metric_name = "validation:accuracy"

tuner = HyperparameterTuner(
    xgb_estimator,
    objective_metric_name,
    hyperparameter_ranges,
    objective_type="Maximize",
    max_jobs=5,
    max_parallel_jobs=2,
)
```

#### Tune beberapa algoritma pelatihan
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-resources-multiple"></a>

Setiap pekerjaan pelatihan memerlukan konfigurasi yang berbeda, dan ini ditentukan menggunakan kamus. Contoh kode berikut menunjukkan cara menginisialisasi tuner dengan konfigurasi untuk dua algoritma bawaan SageMaker AI, dan. XGBoost Linear Learner Contoh kode juga menunjukkan cara mengatur strategi penyetelan dan pengaturan pekerjaan lainnya, seperti sumber daya komputasi untuk pekerjaan penyetelan. Contoh kode berikut menggunakan`metric_definitions_dict`, yang opsional.

```
from sagemaker.tuner import HyperparameterTuner
from sagemaker.parameter import ContinuousParameter, IntegerParameter

# Initialize your tuner
tuner = HyperparameterTuner.create(
    estimator_dict={
        "estimator-1": xgb_estimator,
        "estimator-2": ll_estimator,
    },
    objective_metric_name_dict={
        "estimator-1": "validation:auc",
        "estimator-2": "test:binary_classification_accuracy",
    },
    hyperparameter_ranges_dict={
        "estimator-1": {"eta": ContinuousParameter(0.1, 0.3)},
        "estimator-2": {"learning_rate": ContinuousParameter(0.1, 0.3)},
    },
    metric_definitions_dict={
        "estimator-1": [
            {"Name": "validation:auc", "Regex": "Overall test accuracy: (.*?);"}
        ],
        "estimator-2": [
            {
                "Name": "test:binary_classification_accuracy",
                "Regex": "Overall test accuracy: (.*?);",
            }
        ],
    },
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=3,
)
```

### Jalankan pekerjaan penyetelan HPO Anda
<a name="multiple-algorithm-hpo-create-tuning-jobs-define-example-run"></a>

Sekarang Anda dapat menjalankan pekerjaan tuning Anda dengan meneruskan input pelatihan Anda ke `fit` fungsi kelas. `HyperparameterTuner` Contoh kode berikut menunjukkan cara meneruskan `train_inputs` parameter, yang didefinisikan dalam contoh kode sebelumnya, ke tuner Anda.

```
tuner.fit(inputs=train_inputs, include_cls_metadata ={}, estimator_kwargs ={})   
```

# Kelola Pekerjaan Tuning dan Pelatihan Hyperparameter
<a name="multiple-algorithm-hpo-manage-tuning-jobs"></a>

Pekerjaan tuning dapat berisi banyak pekerjaan pelatihan dan menciptakan dan mengelola pekerjaan ini dan definisi mereka dapat menjadi tugas yang kompleks dan berat. SageMaker AI menyediakan alat untuk membantu memfasilitasi pengelolaan pekerjaan ini. Pekerjaan tuning yang telah Anda jalankan dapat diakses dari konsol Amazon SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). Pilih **pekerjaan tuning Hyperparameter** dari menu **Pelatihan** untuk melihat daftar. Halaman ini juga merupakan tempat Anda memulai prosedur untuk membuat pekerjaan penyetelan baru dengan memilih **Create hyperparameter tuning** job. 

Untuk melihat pekerjaan pelatihan menjalankan bagian dari pekerjaan penyetelan, pilih salah satu pekerjaan penyetelan hiperparameter dari daftar. Tab pada halaman pekerjaan penyetelan memungkinkan Anda memeriksa pekerjaan pelatihan, definisinya, tag dan konfigurasi yang digunakan untuk pekerjaan penyetelan, dan pekerjaan pelatihan terbaik yang ditemukan selama penyetelan. Anda dapat memilih pekerjaan pelatihan terbaik atau salah satu pekerjaan pelatihan lainnya yang termasuk dalam pekerjaan tuning untuk melihat semua pengaturan mereka. **Dari sini Anda dapat membuat model yang menggunakan nilai hyperparameter yang ditemukan oleh pekerjaan pelatihan dengan memilih **Buat Model** atau Anda dapat mengkloning pekerjaan pelatihan dengan memilih Clone.**

**Kloning**  
Anda dapat menghemat waktu dengan mengkloning pekerjaan pelatihan yang termasuk dalam pekerjaan tuning hyperparameter. Kloning menyalin semua pengaturan pekerjaan, termasuk saluran data, lokasi penyimpanan S3 untuk artefak keluaran. Anda dapat melakukan ini untuk pekerjaan pelatihan yang telah Anda jalankan dari halaman pekerjaan tuning, seperti yang baru saja dijelaskan, atau ketika Anda membuat definisi pekerjaan pelatihan tambahan saat membuat pekerjaan tuning hyperparameter, seperti yang dijelaskan dalam [Menambahkan atau mengkloning pekerjaan pelatihan](multiple-algorithm-hpo-create-tuning-jobs.md#multiple-algorithm-hpo-add-training-job) langkah prosedur itu. 

**Penandaan**  
Penyetelan Model Otomatis meluncurkan beberapa pekerjaan pelatihan dalam satu pekerjaan penyetelan induk tunggal untuk menemukan bobot ideal hiperparameter model. Tag dapat ditambahkan ke pekerjaan penyetelan induk seperti yang dijelaskan di [Komponen pekerjaan penyetelan](multiple-algorithm-hpo-create-tuning-jobs.md#multiple-algorithm-hpo-create-tuning-jobs-define-settings) bagian dan tag ini kemudian disebarkan ke pekerjaan pelatihan individu di bawahnya. Pelanggan dapat menggunakan tag ini untuk tujuan, seperti alokasi biaya atau kontrol akses. Untuk menambahkan tag menggunakan SageMaker SDK, gunakan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html)API. Untuk informasi selengkapnya tentang penggunaan penandaan untuk AWS sumber daya, lihat [Menandai AWS](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) sumber daya.