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
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 dataset yang diperluas untuk melatih model baru. Pelatihan tambahan menghemat waktu dan sumber daya.
Gunakan pelatihan tambahan untuk:
-
Latih model baru menggunakan dataset yang diperluas yang berisi pola mendasar yang tidak diperhitungkan dalam pelatihan sebelumnya dan yang mengakibatkan kinerja model yang buruk.
-
Gunakan artefak model atau sebagian 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 konsol SageMaker AI atau Amazon SageMaker Python SDK
penting
Hanya tiga algoritma bawaan yang saat ini mendukung pelatihan tambahan:Deteksi Objek - MxNet,Klasifikasi Gambar - MXNet, danAlgoritma 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 Docker Registry Paths dan Contoh Kode.
-
URL bucket S3 tempat Anda menyimpan artefak model yang ingin Anda gunakan dalam pelatihan tambahan. Untuk menemukan URL untuk 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 diselesaikan.
Untuk melakukan pelatihan tambahan (konsol)
Buka konsol Amazon SageMaker AI di https://console.aws.amazon.com/sagemaker/
. -
Di panel navigasi, pilih Pel atihan, lalu pilih Pekerjaan pelatihan.
-
Pilih Buat pekerjaan pelatihan.
-
Berikan nama untuk pekerjaan pelatihan. Nama harus unik dalam Wil AWS ayah dalam 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, lihatBuilt-in algoritma dan model terlatih di Amazon SageMaker.
-
(Opsional) Untuk konfigurasi Sumber daya, tinggalkan nilai default atau tingkatkan konsumsi sumber daya untuk mengurangi waktu komputasi.
-
(Opsional) Untuk tipe Inst ance, pilih jenis instance komputasi ML yang ingin Anda gunakan. Dalam kebanyakan kasus, ml.m4. xlarge sudah cukup.
-
Untuk Jumlah contoh, gunakan default, 1.
-
(Opsional) Untuk Volume tambahan per instans (GB), pilih ukuran volume penyimpanan ML yang ingin Anda sediakan. Dalam kebanyakan kasus, Anda dapat menggunakan default, 1. Jika Anda menggunakan dataset besar, gunakan ukuran yang lebih besar.
-
-
Berikan informasi tentang data input untuk dataset pelatihan.
-
Untuk nama Sal uran, 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 ML menggunakan ulangan penuh dari kumpulan data yang diperluas saat berlatih secara bertahap.
-
Jika dataset yang diperluas tidak terkompresi, setel tipe Kompresi ke Tidak Ada. Jika dataset yang diperluas dikompresi menggunakan Gzip, atur ke G zip.
-
(Opsional) Jika Anda menggunakan mode input File, biarkan jenis Konten kosong. Untuk mode input Pipe, tentukan jenis MIME yang sesuai. Jenis konten adalah jenis ekstensi surat internet multiguna (MIME) dari data.
-
Untuk Record wrapper, jika dataset disimpan dalam format Recordio, pilih Recordio. Jika dataset Anda tidak disimpan sebagai file berformat Recordio, pilih Tidak Ada.
-
Untuk tipe data S3, jika dataset disimpan sebagai satu file, pilih S3 Prefix. Jika dataset disimpan sebagai beberapa file dalam folder, pilih Manifest.
-
Untuk lokasi S3, berikan URL ke jalur tempat Anda menyimpan dataset 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 Konfigur asi data input, pilih Tambah saluran.
-
Untuk Nama saluran, masukkan
modeluntuk 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 ML harus menggunakan semua artefak model untuk pelatihan.
-
Untuk tipe kompresi, pilih Tidak ada karena kita menggunakan model untuk saluran.
-
Biarkan jenis Konten kosong. Jenis konten adalah jenis ekstensi surat internet multiguna (MIME) dari data. Untuk artefak model, kami membiarkannya kosong.
-
Set el Record wrapper ke None karena artefak model tidak disimpan dalam format Recordio.
-
Untuk tipe data S3, jika Anda menggunakan algoritma bawaan atau algoritma yang menyimpan model sebagai satu file, pilih S3 Prefix. 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 untuk 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 utama. -
Pilih Selesai.
-
-
Untuk konfigurasi data keluaran, berikan informasi berikut:
-
Untuk lokasi S3, ketik jalur ke bucket S3 tempat Anda ingin menyimpan data keluaran.
-
(Opsional) Untuk kunci enkripsi, Anda dapat menambahkan kunci enkripsi AWS Key Management Service (AWS KMS) untuk mengenkripsi data keluaran saat diam. Berikan ID kunci atau Nomor Sumber Daya Amazon (ARN). Untuk informasi selengkapnya, lihat K KMS-Managed unci Enkripsi.
-
-
(Opsional) Untuk Tag, tambahkan satu atau beberapa tag ke pekerjaan pelatihan. Tag adalah metadata yang dapat Anda tentukan dan tetapkan ke AWS sumber daya. Dalam hal ini, Anda dapat menggunakan tag untuk membantu mengelola pekerjaan pelatihan Anda. Tag terdiri dari kunci dan nilai, yang Anda tentukan. Misalnya, Anda mungkin ingin membuat tag dengan
Projectsebagai kunci dan nilai yang mengacu pada proyek yang terkait dengan pekerjaan pelatihan, sepertiHome value forecasts. -
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 keluaran. Untuk menerapkan model untuk mendapatkan prediksi, lihatTerapkan model ke Amazon EC2.
Lakukan Pelatihan Inkremental (API)
Contoh ini menunjukkan cara menggunakan API SageMaker AI untuk melatih model menggunakan algoritma klasifikasi gambar SageMaker AI dan Dataset Gambar Caltech 256
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.core.helper.session_helper import Session, get_execution_role from sagemaker.train import ModelTrainer from sagemaker.train.configs import Compute role = get_execution_role() print(role) sess = 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 hyperparameter 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:
from sagemaker.train.configs import InputData, StoppingCondition from sagemaker.core.shapes import OutputDataConfig, Channel, DataSource, S3DataSource # Train the base ModelTrainer s3_output_location = 's3://{}/{}/output'.format(bucket, prefix) ic = ModelTrainer(training_image=training_image, role=role, compute=Compute( instance_count=1, instance_type='ml.p2.xlarge', volume_size_in_gb=50, ), stopping_condition=StoppingCondition(max_runtime_in_seconds=360000), training_input_mode='File', output_data_config=OutputDataConfig(s3_output_path=s3_output_location), hyperparameters=hyperparams) train_data = Channel( channel_name="train", data_source=DataSource( s3_data_source=S3DataSource( s3_data_type='S3Prefix', s3_uri=s3train, s3_data_distribution_type='FullyReplicated', ) ), content_type='application/x-recordio', ) validation_data = Channel( channel_name="validation", data_source=DataSource( s3_data_source=S3DataSource( s3_data_type='S3Prefix', s3_uri=s3validation, s3_data_distribution_type='FullyReplicated', ) ), content_type='application/x-recordio', ) data_channels = {'train': train_data, 'validation': validation_data} ic.train(input_data_config=[train_data, validation_data])
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 model_uri input:
# Given the base ModelTrainer, create a new one for incremental training incr_ic = ModelTrainer(training_image=training_image, role=role, compute=Compute( instance_count=1, instance_type='ml.p2.xlarge', volume_size_in_gb=50, ), stopping_condition=StoppingCondition(max_runtime_in_seconds=360000), training_input_mode='File', output_data_config=OutputDataConfig(s3_output_path=s3_output_location), hyperparameters=hyperparams, # Pass the previous model artifacts as an input data channel input_data_config=[ InputData(channel_name="model", data_source=ic.model_data), ]) incr_ic.train(input_data_config=[train_data, validation_data])
Setelah pekerjaan pelatihan selesai, artefak model yang baru dilatih disimpan di bawah S3 output path yang Anda berikanOutput_path. Untuk menerapkan model untuk mendapatkan prediksi, lihatTerapkan model ke Amazon EC2.