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 hyperparameter untuk pekerjaan pelatihan yang diluncurkan dengan menggunakan metrik untuk mengevaluasi kinerja. Panduan ini menunjukkan cara menentukan metrik sehingga Anda dapat menggunakan algoritma khusus untuk pelatihan, atau menggunakan algoritma bawaan dari Amazon SageMaker AI. Panduan ini juga menunjukkan cara menentukan variabel lingkungan selama pekerjaan penyetelan model otomatis (AMT).
Tentukan metrik
Penyet SageMaker elan hyperparameter Amazon AI mem-parsing algoritma stdout dan stderr aliran pembelajaran mesin 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 bawaan SageMaker AI, metrik sudah ditentukan untuk Anda. Selain itu, algoritma bawaan secara otomatis mengirim metrik ke penyetelan hyperparameter untuk pengoptimalan. Metrik ini juga ditulis ke CloudWatch log Amazon. Untuk informasi selengkapnya, lihat Log A SageMaker cara Amazon AI dengan Amazon CloudWatch.
Untuk metrik objektif untuk pekerjaan penyetelan, pilih salah satu metrik yang dipancarkan oleh algoritma bawaan. Untuk daftar metrik yang tersedia, lihat bagian penyetelan model untuk algoritma yang sesuai di Gunakan Algorit Built-in ma atau Pre-trained Model SageMaker AI Amazon.
Anda dapat memilih hingga 40 metrik untuk dipantau dalam pekerjaan penyetelan Anda. Pilih salah satu metrik tersebut untuk menjadi metrik objektif. Pekerjaan penyetelan 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 algoritma kustom Anda sendiri untuk pelatihan. Saat melakukannya, pastikan bahwa algoritma Anda menulis setidaknya satu metrik ke stderr ataustdout. Penyetelan hyperparameter mem-parsing aliran ini untuk menemukan metrik algoritma yang menunjukkan seberapa baik kinerja model pada dataset.
Anda dapat menentukan metrik khusus dengan menentukan nama dan ekspresi reguler untuk setiap metrik yang dipantau oleh pekerjaan penyetelan Anda. Kemudian, berikan definisi metrik ini CreateHyperParameterTuningJob ke API di TrainingJobDefinition parameter di MetricDefinitions bidangAlgorithmSpecification.
Berikut ini menunjukkan contoh keluaran 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 cara 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
lossmetrik yang didefinisikan dalam contoh kode, ekspresi(.*?);menangkap karakter apa pun antara teks yang tepat"Loss="dan karakter titik koma (;) pertama. -
Karakter meng
.instruksikan ekspresi reguler untuk mencocokkan karakter apa pun. -
Karakter
*berarti mencocokkan nol atau lebih karakter. -
Karakter
?berarti menangkap hanya sampai contoh pertama;karakter.
Metrik kerugian yang ditentukan dalam sampel kode akan Loss = 16.020744 diambil dari output sampel.
Pilih salah satu metrik yang Anda tentukan 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 AI AMT mengoptimalkan hyperparameter dalam pekerjaan penyetelan untuk menemukan parameter terbaik untuk kinerja model. Anda dapat menggunakan variabel lingkungan untuk mengonfigurasi pekerjaan penyetelan 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 HyperParameterTrainingJobDefinition API SageMaker AI. Teruskan definisi pekerjaan pelatihan ini ke CreateHyperParameterTuningJob API.
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 level log 10 untuk men-debug log kontainer Anda, atur variabel lingkungan di dalam HyperParameterTrainingJobDefinition, sebagai berikut.
{ "HyperParameterTuningJobConfig": { ..., } "TrainingJobDefinition": { ..., "Environment" : [ { "SM_LOG_LEVEL": 10 } ], ..., }, ..., }