Tentukan metrik dan variabel lingkungan - Amazon SageMaker

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. CreateHyperParameterTuningJobAPI

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 CreateHyperParameterTuningJoboperasi.

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 } ], ..., }, ..., }