Konfigurasikan Aturan Built-in Debugger - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan Aturan Built-in Debugger

Aturan bawaan Amazon SageMaker Debugger menganalisis tensor yang dipancarkan selama pelatihan model. SageMakerDebugger menawarkan operasi Rule API yang memantau kemajuan pekerjaan pelatihan dan kesalahan untuk keberhasilan melatih model Anda. Misalnya, aturan dapat mendeteksi apakah gradien menjadi terlalu besar atau terlalu kecil, apakah model overfitting atau overtraining, dan apakah pekerjaan pelatihan tidak mengurangi fungsi kehilangan dan meningkatkan. Untuk melihat daftar lengkap aturan bawaan yang tersedia, lihatDaftar Aturan Built-in Debugger.

Dalam topik berikut, Anda akan belajar cara menggunakan aturan bawaan SageMaker Debugger.

Gunakan Aturan Built-in Debugger dengan Pengaturan Parameter Default

Untuk menentukan aturan bawaan Debugger di estimator, Anda perlu mengonfigurasi objek daftar. Kode contoh berikut menunjukkan struktur dasar daftar aturan bawaan Debugger:

from sagemaker.debugger import Rule, rule_configs rules=[ Rule.sagemaker(rule_configs.built_in_rule_name_1()), Rule.sagemaker(rule_configs.built_in_rule_name_2()), ... Rule.sagemaker(rule_configs.built_in_rule_name_n()), ... # You can also append more profiler rules in the ProfilerRule.sagemaker(rule_configs.*()) format. ]

Untuk informasi selengkapnya tentang nilai parameter default dan deskripsi aturan bawaan, lihatDaftar Aturan Built-in Debugger.

Untuk menemukan referensi API SageMaker Debugger, lihat sagemaker.debugger.rule_configsdan. sagemaker.debugger.Rule

Misalnya, untuk memeriksa keseluruhan kinerja pelatihan dan kemajuan model Anda, buat SageMaker estimator dengan konfigurasi aturan bawaan berikut.

from sagemaker.debugger import Rule, rule_configs rules=[ Rule.sagemaker(rule_configs.loss_not_decreasing()), Rule.sagemaker(rule_configs.overfit()), Rule.sagemaker(rule_configs.overtraining()), Rule.sagemaker(rule_configs.stalled_training_rule()) ]

Saat Anda memulai pekerjaan pelatihan, Debugger mengumpulkan data pemanfaatan sumber daya sistem setiap 500 milidetik dan nilai kehilangan dan akurasi setiap 500 langkah secara default. Debugger menganalisis pemanfaatan sumber daya untuk mengidentifikasi apakah model Anda mengalami masalah bottleneck. Theloss_not_decreasing, overfitovertraining, dan stalled_training_rule monitor jika model Anda mengoptimalkan fungsi kerugian tanpa masalah pelatihan tersebut. Jika aturan mendeteksi anomali pelatihan, status evaluasi aturan berubah menjadi. IssueFound Anda dapat mengatur tindakan otomatis, seperti memberi tahu masalah pelatihan dan menghentikan pekerjaan pelatihan menggunakan CloudWatch Acara Amazon dan AWS Lambda. Untuk informasi selengkapnya, lihat Tindakan pada Aturan SageMaker Debugger Amazon.

Gunakan Aturan Built-in Debugger dengan Nilai Parameter Kustom

Jika Anda ingin menyesuaikan nilai parameter aturan bawaan dan menyesuaikan regex koleksi tensor, konfigurasikan rule_parameters parameter base_config dan untuk metode kelas dan. ProfilerRule.sagemaker Rule.sagemaker Dalam kasus metode Rule.sagemaker kelas, Anda juga dapat menyesuaikan koleksi tensor melalui collections_to_save parameter. Instruksi tentang cara menggunakan CollectionConfig kelas disediakan diKonfigurasikan Koleksi Tensor Menggunakan CollectionConfig API.

Gunakan templat konfigurasi berikut untuk aturan bawaan untuk menyesuaikan nilai parameter. Dengan mengubah parameter aturan sesuai keinginan, Anda dapat menyesuaikan sensitivitas aturan yang akan dipicu.

  • base_configArgumennya adalah di mana Anda memanggil metode aturan bawaan.

  • rule_parametersArgumennya adalah untuk menyesuaikan nilai kunci default dari aturan bawaan yang tercantum dalamDaftar Aturan Built-in Debugger.

  • collections_to_saveArgumen tersebut menggunakan konfigurasi tensor melalui CollectionConfig API, yang membutuhkan name dan parameters argumen.

Untuk informasi selengkapnya tentang kelas aturan Debugger, metode, dan parameter, lihat kelas Aturan SageMaker Debugger di Amazon Python SDK. SageMaker

from sagemaker.debugger import Rule, ProfilerRule, rule_configs, CollectionConfig rules=[ Rule.sagemaker( base_config=rule_configs.built_in_rule_name(), rule_parameters={ "key": "value" }, collections_to_save=[ CollectionConfig( name="tensor_collection_name", parameters={ "key": "value" } ) ] ) ]

Deskripsi parameter dan contoh kustomisasi nilai disediakan untuk setiap aturan diDaftar Aturan Built-in Debugger.

Contoh Notebook dan Sampel Kode untuk Mengonfigurasi Aturan Debugger

Di bagian berikut, buku catatan dan contoh kode tentang cara menggunakan aturan Debugger untuk memantau pekerjaan SageMaker pelatihan disediakan.

Debugger Built-in Aturan Contoh Notebook

Contoh buku catatan berikut menunjukkan cara menggunakan aturan bawaan Debugger saat menjalankan pekerjaan pelatihan dengan Amazon: SageMaker

Saat menjalankan contoh buku catatan di SageMaker Studio, Anda dapat menemukan uji coba kerja pelatihan yang dibuat di tab Daftar Eksperimen Studio. Misalnya, seperti yang ditunjukkan pada gambar berikut, Anda dapat menemukan dan membuka jendela Describe Trial Component dari pekerjaan pelatihan Anda saat ini. Pada tab Debugger, Anda dapat memeriksa apakah aturan Debugger, vanishing_gradient() danloss_not_decreasing(), memantau sesi pelatihan secara paralel. Untuk instruksi lengkap tentang cara menemukan komponen uji coba kerja pelatihan Anda di UI Studio, lihat SageMaker Studio - View Experiments, Trials, dan Trial Components.

Gambar menjalankan pekerjaan pelatihan dengan aturan bawaan Debugger diaktifkan di Studio SageMaker

Ada dua cara untuk menggunakan aturan bawaan Debugger di SageMaker lingkungan: menerapkan aturan bawaan saat disiapkan atau sesuaikan parameternya sesuai keinginan. Topik berikut menunjukkan cara menggunakan aturan bawaan dengan kode contoh.

Kode Contoh Aturan Bawaan Debugger

Contoh kode berikut menunjukkan cara mengatur aturan bawaan Debugger menggunakan metode iniRule.sagemaker. Untuk menentukan aturan bawaan yang ingin Anda jalankan, gunakan operasi rules_configs API untuk memanggil aturan bawaan. Untuk menemukan daftar lengkap aturan bawaan Debugger dan nilai parameter default, lihat. Daftar Aturan Built-in Debugger

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call built-in rules that you want to use. built_in_rules=[ Rule.sagemaker(rule_configs.vanishing_gradient()) Rule.sagemaker(rule_configs.loss_not_decreasing()) ] # construct a SageMaker estimator with the Debugger built-in rules sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name='debugger-built-in-rules-demo', instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules ) sagemaker_estimator.fit()
catatan

Aturan bawaan Debugger berjalan secara paralel dengan pekerjaan pelatihan Anda. Jumlah maksimum wadah aturan bawaan untuk pekerjaan pelatihan adalah 20.

Untuk informasi selengkapnya tentang kelas aturan Debugger, metode, dan parameter, lihat kelas Aturan SageMaker Debugger di Amazon Python SDK. SageMaker

Untuk menemukan contoh cara menyesuaikan parameter aturan Debugger, lihat bagian berikutGunakan Aturan Built-in Debugger dengan Modifikasi Parameter.

Gunakan Aturan Built-in Debugger dengan Modifikasi Parameter

Contoh kode berikut menunjukkan struktur aturan bawaan untuk menyesuaikan parameter. Dalam contoh ini, stalled_training_rule mengumpulkan koleksi losses tensor dari pekerjaan pelatihan di setiap 50 langkah dan tahap evaluasi di setiap 10 langkah. Jika proses pelatihan mulai terhenti dan tidak mengumpulkan output tensor selama 120 detik, pekerjaan pelatihan akan stalled_training_rule berhenti.

import sagemaker from sagemaker.tensorflow import TensorFlow from sagemaker.debugger import Rule, CollectionConfig, rule_configs # call the built-in rules and modify the CollectionConfig parameters base_job_name_prefix= 'smdebug-stalled-demo-' + str(int(time.time())) built_in_rules_modified=[ Rule.sagemaker( base_config=rule_configs.stalled_training_rule(), rule_parameters={ 'threshold': '120', 'training_job_name_prefix': base_job_name_prefix, 'stop_training_on_fire' : 'True' } collections_to_save=[ CollectionConfig( name="losses", parameters={ "train.save_interval": "50" "eval.save_interval": "10" } ) ] ) ] # construct a SageMaker estimator with the modified Debugger built-in rule sagemaker_estimator=TensorFlow( entry_point='directory/to/your_training_script.py', role=sm.get_execution_role(), base_job_name=base_job_name_prefix, instance_count=1, instance_type="ml.p3.2xlarge", framework_version="2.9.0", py_version="py39", # debugger-specific arguments below rules=built_in_rules_modified ) sagemaker_estimator.fit()

Untuk konfigurasi lanjutan dari aturan bawaan Debugger yang menggunakan CreateTrainingJob API, lihat. Konfigurasikan Debugger Menggunakan Amazon API SageMaker