

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

# Gunakan Pelatihan Inkremental di Amazon AI SageMaker
<a name="incremental-training"></a>

Seiring waktu, Anda mungkin menemukan bahwa model menghasilkan inferensi yang tidak sebagus di masa lalu. Dengan pelatihan tambahan, Anda dapat menggunakan artefak dari model yang ada dan menggunakan kumpulan data yang diperluas untuk melatih model baru. Pelatihan tambahan menghemat waktu dan sumber daya.

Gunakan pelatihan tambahan untuk:
+ Latih model baru menggunakan kumpulan data yang diperluas yang berisi pola dasar yang tidak diperhitungkan dalam pelatihan sebelumnya dan yang mengakibatkan kinerja model yang buruk.
+ Gunakan artefak model atau sebagian dari artefak model dari model populer yang tersedia untuk umum dalam pekerjaan pelatihan. Anda tidak perlu melatih model baru dari awal.
+ Lanjutkan pekerjaan pelatihan yang dihentikan.
+ Latih beberapa varian model, baik dengan pengaturan hyperparameter yang berbeda atau menggunakan kumpulan data yang berbeda.

Untuk informasi lebih lanjut tentang pekerjaan pelatihan, lihat[Latih Model dengan Amazon SageMaker](how-it-works-training.md).

Anda dapat berlatih secara bertahap menggunakan konsol SageMaker AI atau [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable).

**penting**  
Hanya tiga algoritma bawaan yang saat ini mendukung pelatihan tambahan:[Deteksi Objek - MXNet](object-detection.md),[Klasifikasi Gambar - MXNet](image-classification.md), dan. [Algoritma Segmentasi Semantik](semantic-segmentation.md)

**Topics**
+ [Lakukan Pelatihan Inkremental (Konsol)](#incremental-training-console)
+ [Lakukan Pelatihan Inkremental (API)](#incremental-training-api)

## Lakukan Pelatihan Inkremental (Konsol)
<a name="incremental-training-console"></a>

Untuk menyelesaikan prosedur ini, Anda perlu:
+ URI bucket Amazon Simple Storage Service (Amazon S3) tempat Anda menyimpan data pelatihan.
+ URI bucket S3 tempat Anda ingin menyimpan output pekerjaan. 
+ Jalur Amazon Elastic Container Registry tempat kode pelatihan disimpan. Untuk informasi selengkapnya, lihat [Jalur Registri Docker dan Kode Contoh](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths).
+ URL bucket S3 tempat Anda menyimpan artefak model yang ingin Anda gunakan dalam pelatihan tambahan. Untuk menemukan URL artefak model, lihat halaman detail pekerjaan pelatihan yang digunakan untuk membuat model. Untuk menemukan halaman detail, di konsol SageMaker AI, pilih **Inferensi**, pilih **Model**, lalu pilih model.

Untuk memulai ulang pekerjaan pelatihan yang dihentikan, gunakan URL ke artefak model yang disimpan di halaman detail seperti yang Anda lakukan dengan model atau pekerjaan pelatihan yang telah selesai.

**Untuk melakukan pelatihan tambahan (konsol)**

1. Buka konsol Amazon SageMaker AI di [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Di panel navigasi, pilih **Pelatihan**, lalu pilih **Pekerjaan pelatihan**. 

1. Pilih **Buat pekerjaan pelatihan**.

1. Berikan nama untuk pekerjaan pelatihan. Nama harus unik dalam suatu AWS Wilayah di AWS akun. Nama pekerjaan pelatihan harus memiliki 1 hingga 63 karakter. Karakter yang valid: a-z, A-Z, 0-9, dan.: \$1 = @ \$1% - (tanda hubung).

1. Pilih algoritma yang ingin Anda gunakan. Untuk informasi tentang algoritma, lihat[Algoritma bawaan dan model yang telah dilatih sebelumnya di Amazon SageMaker](algos.md). 

1. (Opsional) Untuk **konfigurasi Resource**, tinggalkan nilai default atau tingkatkan konsumsi sumber daya untuk mengurangi waktu komputasi.

   1. (Opsional) Untuk **tipe Instance**, pilih tipe instans komputasi ML yang ingin Anda gunakan. Dalam kebanyakan kasus, **ml.m4.xlarge** sudah cukup. 

   1. Untuk **hitungan Instance**, gunakan default, 1.

   1. (Opsional) Untuk **volume tambahan per instans (GB)**, pilih ukuran volume penyimpanan ML yang ingin Anda berikan. Dalam kebanyakan kasus, Anda dapat menggunakan default, 1. Jika Anda menggunakan dataset besar, gunakan ukuran yang lebih besar.

1. Berikan informasi tentang data input untuk kumpulan data pelatihan.

   1. Untuk **nama Channel**, tinggalkan default (**train**) atau masukkan nama yang lebih bermakna untuk kumpulan data pelatihan, seperti**expanded-training-dataset**.

   1. Untuk **InputMode**, pilih **File**. Untuk pelatihan tambahan, Anda perlu menggunakan mode input file.

   1. Untuk **tipe distribusi data S3**, pilih **FullyReplicated**. Hal ini menyebabkan setiap instance komputasi HTML menggunakan ulangan penuh dari kumpulan data yang diperluas saat berlatih secara bertahap.

   1. **Jika kumpulan data yang diperluas tidak dikompresi, setel **tipe Kompresi** ke Tidak Ada.** **Jika kumpulan data yang diperluas dikompresi menggunakan Gzip, atur ke Gzip.**

   1. (Opsional) Jika Anda menggunakan mode input File, biarkan **jenis Konten** kosong. Untuk mode input Pipa, tentukan tipe MIME yang sesuai. *Jenis konten adalah jenis* multipurpose internet mail extension (MIME) dari data.

   1. **Untuk **Record wrapper**, jika dataset disimpan dalam format Recordio, pilih RecorDio.** **Jika kumpulan data Anda tidak disimpan sebagai file berformat RecorDo, pilih Tidak Ada.**

   1. **Untuk **tipe data S3**, jika dataset disimpan sebagai satu file, pilih S3Prefix.** Jika dataset disimpan sebagai beberapa file dalam folder, pilih **Manifest**.

   1. Untuk **lokasi S3**, berikan URL ke jalur tempat Anda menyimpan kumpulan data yang diperluas.

   1. Pilih **Selesai**.

1. Untuk menggunakan artefak model dalam pekerjaan pelatihan, Anda perlu menambahkan saluran baru dan memberikan informasi yang diperlukan tentang artefak model.

   1. Untuk **konfigurasi data input**, pilih **Tambah saluran**.

   1. Untuk **nama Saluran**, masukkan **model** untuk mengidentifikasi saluran ini sebagai sumber artefak model.

   1. Untuk **InputMode**, pilih **File**. Artefak model disimpan sebagai file.

   1. Untuk **tipe distribusi data S3**, pilih **FullyReplicated**. Ini menunjukkan bahwa setiap instance komputasi MS harus menggunakan semua artefak model untuk pelatihan. 

   1. Untuk **jenis Kompresi**, pilih **None** karena kami menggunakan model untuk saluran.

   1. Biarkan **jenis Konten** kosong. Jenis konten adalah jenis multipurpose internet mail extension (MIME) dari data. Untuk artefak model, kami membiarkannya kosong.

   1. Setel **Record wrapper** ke **None** karena artefak model tidak disimpan dalam format RecorDo.

   1. Untuk **tipe data S3**, jika Anda menggunakan algoritma bawaan atau algoritma yang menyimpan model sebagai satu file, pilih **S3Prefix**. Jika Anda menggunakan algoritma yang menyimpan model sebagai beberapa file, pilih **Manifest**.

   1. Untuk **lokasi S3**, berikan URL ke jalur tempat Anda menyimpan artefak model. Biasanya, model disimpan dengan nama`model.tar.gz`. **Untuk menemukan URL artefak model, di panel navigasi, pilih **Inferensi**, lalu pilih Model.** Dari daftar model, pilih model untuk menampilkan halaman detailnya. URL untuk artefak model tercantum di bawah **wadah Primer**.

   1. Pilih **Selesai**.

1. Untuk **konfigurasi data Output**, berikan informasi berikut:

   1. Untuk **lokasi S3**, ketik path ke bucket S3 tempat Anda ingin menyimpan data output.

   1. (Opsional) Untuk **kunci Enkripsi**, Anda dapat menambahkan kunci enkripsi AWS Key Management Service (AWS KMS) untuk mengenkripsi data keluaran saat istirahat. Berikan ID kunci atau Nomor Sumber Daya Amazon (ARN). Untuk informasi selengkapnya, lihat Kunci [Enkripsi Terkelola KMS](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html).

1. (Opsional) Untuk **Tag**, tambahkan satu atau beberapa tag ke pekerjaan pelatihan. *Tag* adalah metadata yang dapat Anda tentukan dan tetapkan ke sumber daya. AWS Dalam hal ini, Anda dapat menggunakan tag untuk membantu Anda mengelola pekerjaan pelatihan Anda. Tag terdiri dari kunci dan nilai, yang Anda tentukan. Misalnya, Anda mungkin ingin membuat tag dengan **Project** sebagai kunci dan nilai yang mengacu pada proyek yang terkait dengan pekerjaan pelatihan, seperti**Home value forecasts**.

1. Pilih **Buat pekerjaan pelatihan**. SageMaker AI menciptakan dan menjalankan pekerjaan pelatihan.

Setelah pekerjaan pelatihan selesai, artefak model yang baru dilatih disimpan di bawah **jalur keluaran S3** yang Anda berikan di bidang **konfigurasi data Output**. Untuk menerapkan model untuk mendapatkan prediksi, lihat. [Terapkan model ke Amazon EC2](ex1-model-deployment.md)

## Lakukan Pelatihan Inkremental (API)
<a name="incremental-training-api"></a>

Contoh ini menunjukkan cara menggunakan SageMaker AI APIs untuk melatih model menggunakan algoritma klasifikasi gambar SageMaker AI dan [Caltech 256 Image Dataset](https://data.caltech.edu/records/nyy15-4j048), kemudian melatih model baru menggunakan yang pertama. Ini menggunakan Amazon S3 untuk sumber input dan output. Silakan lihat [contoh buku catatan pelatihan tambahan](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-incremental-training-highlevel.html) untuk detail lebih lanjut tentang penggunaan pelatihan tambahan.

**catatan**  
Dalam contoh ini kami menggunakan kumpulan data asli dalam pelatihan tambahan, namun Anda dapat menggunakan kumpulan data yang berbeda, seperti yang berisi sampel yang baru ditambahkan. Unggah kumpulan data baru ke S3 dan buat penyesuaian pada `data_channels` variabel yang digunakan untuk melatih model baru.

Dapatkan peran AWS Identity and Access Management (IAM) yang memberikan izin yang diperlukan dan menginisialisasi variabel lingkungan:

```
import sagemaker
from sagemaker import get_execution_role

role = get_execution_role()
print(role)

sess = sagemaker.Session()

bucket=sess.default_bucket()
print(bucket)
prefix = 'ic-incr-training'
```

Dapatkan gambar pelatihan untuk algoritma klasifikasi gambar:

```
from sagemaker.amazon.amazon_estimator import get_image_uri

training_image = get_image_uri(sess.boto_region_name, 'image-classification', repo_version="latest")
#Display the training image
print (training_image)
```

Unduh kumpulan data pelatihan dan validasi, lalu unggah ke Amazon Simple Storage Service (Amazon S3):

```
import os
import urllib.request
import boto3

# Define a download function
def download(url):
    filename = url.split("/")[-1]
    if not os.path.exists(filename):
        urllib.request.urlretrieve(url, filename)

# Download the caltech-256 training and validation datasets
download('http://data.mxnet.io/data/caltech-256/caltech-256-60-train.rec')
download('http://data.mxnet.io/data/caltech-256/caltech-256-60-val.rec')

# Create four channels: train, validation, train_lst, and validation_lst
s3train = 's3://{}/{}/train/'.format(bucket, prefix)
s3validation = 's3://{}/{}/validation/'.format(bucket, prefix)

# Upload the first files to the train and validation channels
!aws s3 cp caltech-256-60-train.rec $s3train --quiet
!aws s3 cp caltech-256-60-val.rec $s3validation --quiet
```

Tentukan hiperparameter pelatihan:

```
# Define hyperparameters for the estimator
hyperparams = { "num_layers": "18",
                "resize": "32",
                "num_training_samples": "50000",
                "num_classes": "10",
                "image_shape": "3,28,28",
                "mini_batch_size": "128",
                "epochs": "3",
                "learning_rate": "0.1",
                "lr_scheduler_step": "2,3",
                "lr_scheduler_factor": "0.1",
                "augmentation_type": "crop_color",
                "optimizer": "sgd",
                "momentum": "0.9",
                "weight_decay": "0.0001",
                "beta_1": "0.9",
                "beta_2": "0.999",
                "gamma": "0.9",
                "eps": "1e-8",
                "top_k": "5",
                "checkpoint_frequency": "1",
                "use_pretrained_model": "0",
                "model_prefix": "" }
```

Buat objek estimator dan latih model pertama menggunakan kumpulan data pelatihan dan validasi:

```
# Fit the base estimator
s3_output_location = 's3://{}/{}/output'.format(bucket, prefix)
ic = sagemaker.estimator.Estimator(training_image,
                                   role,
                                   instance_count=1,
                                   instance_type='ml.p2.xlarge',
                                   volume_size=50,
                                   max_run=360000,
                                   input_mode='File',
                                   output_path=s3_output_location,
                                   sagemaker_session=sess,
                                   hyperparameters=hyperparams)

train_data = sagemaker.inputs.TrainingInput(s3train, distribution='FullyReplicated',
                                        content_type='application/x-recordio', s3_data_type='S3Prefix')
validation_data = sagemaker.inputs.TrainingInput(s3validation, distribution='FullyReplicated',
                                             content_type='application/x-recordio', s3_data_type='S3Prefix')

data_channels = {'train': train_data, 'validation': validation_data}

ic.fit(inputs=data_channels, logs=True)
```

Untuk menggunakan model untuk melatih model lain secara bertahap, buat objek estimator baru dan gunakan artefak model (`ic.model_data`, dalam contoh ini) untuk argumen input: `model_uri`

```
# Given the base estimator, create a new one for incremental training
incr_ic = sagemaker.estimator.Estimator(training_image,
                                        role,
                                        instance_count=1,
                                        instance_type='ml.p2.xlarge',
                                        volume_size=50,
                                        max_run=360000,
                                        input_mode='File',
                                        output_path=s3_output_location,
                                        sagemaker_session=sess,
                                        hyperparameters=hyperparams,
                                        model_uri=ic.model_data) # This parameter will ingest the previous job's model as a new channel
incr_ic.fit(inputs=data_channels, logs=True)
```

Setelah pekerjaan pelatihan selesai, artefak model yang baru dilatih disimpan di bawah `S3 output path` yang Anda sediakan. `Output_path` Untuk menerapkan model untuk mendapatkan prediksi, lihat. [Terapkan model ke Amazon EC2](ex1-model-deployment.md)