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 SageMaker
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, lihatLatih Model dengan Amazon SageMaker.
Anda dapat berlatih secara bertahap menggunakan SageMaker konsol atau Amazon SageMaker Python SDK
penting
Hanya tiga algoritma bawaan yang saat ini mendukung pelatihan tambahan:Deteksi Objek - MXNet,Klasifikasi Gambar - MXNet, dan. Algoritma Segmentasi Semantik
Lakukan Pelatihan Inkremental (Konsol)
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.
-
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 SageMaker konsol, 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)
Buka SageMaker konsol Amazon di https://console.aws.amazon.com/sagemaker/
. -
Di panel navigasi, pilih Pelatihan, lalu pilih Pekerjaan pelatihan.
-
Pilih Buat pekerjaan pelatihan.
-
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.: + = @ _% - (tanda hubung).
-
Pilih algoritma yang ingin Anda gunakan. Untuk informasi tentang algoritma, lihatAlgoritma bawaan dan model yang telah dilatih sebelumnya di Amazon SageMaker.
-
(Opsional) Untuk konfigurasi Sumber Daya, tinggalkan nilai default atau tingkatkan konsumsi sumber daya untuk mengurangi waktu komputasi.
-
(Opsional) Untuk tipe Instance, pilih tipe instans komputasi ML yang ingin Anda gunakan. Dalam kebanyakan kasus, ml.m4.xlarge sudah cukup.
-
Untuk hitungan Instance, gunakan default, 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.
-
-
Berikan informasi tentang data input untuk kumpulan data pelatihan.
-
Untuk nama Channel, tinggalkan default (
train
) atau masukkan nama yang lebih bermakna untuk kumpulan data pelatihan, sepertiexpanded-training-dataset
. -
Untuk InputMode, pilih File. Untuk pelatihan tambahan, Anda perlu menggunakan mode input file.
-
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.
-
Jika kumpulan data yang diperluas tidak dikompresi, setel tipe Kompresi ke Tidak Ada. Jika kumpulan data yang diperluas dikompresi menggunakan Gzip, atur ke Gzip.
-
(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.
-
Untuk Record wrapper, jika dataset disimpan dalam format Recordio, pilih RecorDio. Jika kumpulan data Anda tidak disimpan sebagai file berformat RecorDo, pilih Tidak Ada.
-
Untuk tipe data S3, jika dataset disimpan sebagai satu file, pilih S3Prefix. Jika dataset disimpan sebagai beberapa file dalam folder, pilih Manifest.
-
Untuk lokasi S3, berikan URL ke jalur tempat Anda menyimpan kumpulan data yang diperluas.
-
Pilih Selesai.
-
-
Untuk menggunakan artefak model dalam pekerjaan pelatihan, Anda perlu menambahkan saluran baru dan memberikan informasi yang diperlukan tentang artefak model.
-
Untuk konfigurasi data input, pilih Tambah saluran.
-
Untuk nama Saluran, masukkan
model
untuk mengidentifikasi saluran ini sebagai sumber artefak model. -
Untuk InputMode, pilih File. Artefak model disimpan sebagai file.
-
Untuk tipe distribusi data S3, pilih FullyReplicated. Ini menunjukkan bahwa setiap instance komputasi MS harus menggunakan semua artefak model untuk pelatihan.
-
Untuk jenis Kompresi, pilih None karena kami menggunakan model untuk saluran.
-
Biarkan jenis Konten kosong. Jenis konten adalah jenis multipurpose internet mail extension (MIME) dari data. Untuk artefak model, kami membiarkannya kosong.
-
Setel Record wrapper ke None karena artefak model tidak disimpan dalam format RecorDo.
-
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.
-
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. -
Pilih Selesai.
-
-
Untuk konfigurasi data Output, berikan informasi berikut:
-
Untuk lokasi S3, ketik path ke bucket S3 tempat Anda ingin menyimpan data output.
-
(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.
-
-
(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, sepertiHome value forecasts
. -
Pilih Buat pekerjaan pelatihan. SageMaker 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
Lakukan Pelatihan Inkremental (API)
Contoh ini menunjukkan cara menggunakan SageMaker API untuk melatih model menggunakan algoritma klasifikasi SageMaker gambar dan Caltech 256 Image Dataset
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