Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tentukan metrik dan variabel lingkungan
Pekerjaan penyetelan mengoptimalkan hiperparameter untuk pekerjaan pelatihan yang diluncurkan dengan menggunakan metrik untuk mengevaluasi kinerja. Panduan ini menunjukkan cara menentukan metrik sehingga Anda dapat menggunakan algoritme khusus untuk pelatihan, atau menggunakan algoritme bawaan dari Amazon SageMaker. Panduan ini juga menunjukkan cara menentukan variabel lingkungan selama pekerjaan Automatic model tuning (AMT).
Tentukan metrik
Penyetelan SageMaker hiperparameter Amazon mem-parsing algoritme pembelajaran mesin stdout
dan stderr
aliran Anda untuk menemukan metrik, seperti kehilangan atau akurasi validasi. Metrik menunjukkan seberapa baik kinerja model pada dataset.
Bagian berikut menjelaskan cara menggunakan dua jenis algoritma untuk pelatihan: built-in dan custom.
Gunakan algoritma bawaan untuk pelatihan
Jika Anda menggunakan salah satu algoritma SageMaker bawaan, metrik sudah ditentukan untuk Anda. Selain itu, algoritme bawaan secara otomatis mengirim metrik ke penyetelan hyperparameter untuk pengoptimalan. Metrik ini juga ditulis ke CloudWatch log Amazon. Untuk informasi selengkapnya, lihat Log SageMaker Acara Amazon dengan Amazon CloudWatch.
Untuk metrik objektif untuk pekerjaan penyetelan, pilih salah satu metrik yang dipancarkan oleh algoritme bawaan. Untuk daftar metrik yang tersedia, lihat bagian penyetelan model untuk algoritme yang sesuai di Gunakan Algoritma SageMaker Bawaan Amazon atau Model Pra-terlatih.
Anda dapat memilih hingga 40 metrik untuk dipantau dalam pekerjaan penyetelan Anda. Pilih salah satu metrik tersebut untuk menjadi metrik objektif. Pekerjaan tuning hyperparameter mengembalikan pekerjaan pelatihan yang berkinerja terbaik terhadap metrik objektif.
catatan
Penyetelan hyperparameter secara otomatis mengirimkan hyperparameter tambahan _tuning_objective_metric
untuk meneruskan metrik objektif Anda ke pekerjaan penyetelan untuk digunakan selama pelatihan.
Gunakan algoritma khusus untuk pelatihan
Bagian ini menunjukkan cara menentukan metrik Anda sendiri untuk menggunakan algoritme kustom Anda sendiri untuk pelatihan. Saat melakukannya, pastikan algoritme Anda menulis setidaknya satu metrik ke stderr
ataustdout
. Penyetelan hyperparameter mem-parsing aliran ini untuk menemukan metrik algoritme yang menunjukkan seberapa baik kinerja model pada kumpulan data.
Anda dapat menentukan metrik kustom dengan menentukan nama dan ekspresi reguler untuk setiap metrik yang dipantau oleh pekerjaan penyetelan Anda. Kemudian, berikan definisi metrik ini ke dalam TrainingJobDefinition
parameter di MetricDefinitions
bidangAlgorithmSpecification
. CreateHyperParameterTuningJob
API
Berikut ini menunjukkan contoh output dari log yang ditulis ke stderr
atau stdout
oleh algoritma pelatihan.
GAN_loss=0.138318; Scaled_reg=2.654134; disc:[-0.017371,0.102429] real 93.3% gen 0.0% disc-combined=0.000000; disc_train_loss=1.374587; Loss = 16.020744; Iteration 0 took 0.704s; Elapsed=0s
Contoh kode berikut menunjukkan bagaimana menggunakan ekspresi reguler di Python (regex). Ini digunakan untuk mencari output log sampel dan menangkap nilai numerik dari empat metrik yang berbeda.
[ { "Name": "ganloss", "Regex": "GAN_loss=(.*?);", }, { "Name": "disc-combined", "Regex": "disc-combined=(.*?);", }, { "Name": "discloss", "Regex": "disc_train_loss=(.*?);", }, { "Name": "loss", "Regex": "Loss = (.*?);", }, ]
Dalam ekspresi reguler, tanda kurung ()
digunakan untuk mengelompokkan bagian-bagian dari ekspresi reguler bersama-sama.
-
Untuk
loss
metrik yang didefinisikan dalam contoh kode, ekspresi(.*?);
menangkap karakter apa pun antara teks yang tepat"Loss="
dan karakter titik koma () pertama.;
-
Karakter
.
menginstruksikan ekspresi reguler untuk mencocokkan karakter apa pun. -
Karakter
*
berarti mencocokkan nol atau lebih karakter. -
Karakter
?
berarti menangkap hanya sampai contoh pertama dari;
karakter.
Metrik kerugian yang ditentukan dalam sampel kode akan menangkap Loss = 16.020744
dari output sampel.
Pilih salah satu metrik yang Anda definisikan sebagai metrik objektif untuk pekerjaan penyetelan. Jika Anda menggunakan SageMaker API, tentukan nilai name
kunci di HyperParameterTuningJobObjective
bidang HyperParameterTuningJobConfig
parameter yang Anda kirim ke CreateHyperParameterTuningJob
operasi.
Tentukan variabel lingkungan
SageMaker AMTmengoptimalkan hiperparameter dalam pekerjaan penyetelan untuk menemukan parameter terbaik untuk kinerja model. Anda dapat menggunakan variabel lingkungan untuk mengonfigurasi pekerjaan penyetelan Anda untuk mengubah perilakunya. Anda juga dapat menggunakan variabel lingkungan yang Anda gunakan selama pelatihan di dalam pekerjaan penyetelan Anda.
Jika Anda ingin menggunakan variabel lingkungan dari pekerjaan penyetelan Anda atau menentukan variabel lingkungan baru, masukkan nilai string untuk Environment
dalam SageMaker HyperParameterTrainingJobDefinitionAPI. Lulus definisi pekerjaan pelatihan ini ke CreateHyperParameterTuningJobAPI.
Misalnya, variabel lingkungan SM_LOG_LEVEL
dapat diatur ke nilai-nilai berikut untuk menyesuaikan output dari wadah Python.
NOTSET=0 DEBUG=10 INFO=20 WARN=30 ERROR=40 CRITICAL=50
Sebagai contoh, untuk mengatur tingkat log 10
untuk men-debug log kontainer Anda, atur variabel lingkungan di dalam HyperParameterTrainingJobDefinition, sebagai berikut.
{ "HyperParameterTuningJobConfig": { ..., } "TrainingJobDefinition": { ..., "Environment" : [ { "SM_LOG_LEVEL": 10 } ], ..., }, ..., }