Buat Aturan Kustom Debugger untuk Training Job Analysis - Amazon SageMaker

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

Buat Aturan Kustom Debugger untuk Training Job Analysis

Anda dapat membuat aturan khusus untuk memantau pekerjaan pelatihan Anda menggunakan API Aturan Debugger dan pustaka Python smdebug sumber terbuka yang menyediakan alat untuk membangun wadah aturan Anda sendiri.

Prasyarat untuk Membuat Aturan Kustom Debugger

Untuk membuat aturan kustom Debugger, Anda memerlukan prasyarat berikut.

Gunakan Pustaka Klien Debugger smdebug untuk Membuat Skrip Python Aturan Kustom

smdebugRule API menyediakan antarmuka untuk mengatur aturan kustom Anda sendiri. Script python berikut adalah contoh bagaimana membangun aturan kustom,. CustomGradientRule Aturan kustom tutorial ini mengawasi jika gradien menjadi terlalu besar dan menetapkan ambang default sebagai 10. Aturan khusus mengambil uji coba dasar yang dibuat oleh SageMaker estimator saat memulai pekerjaan pelatihan.

from smdebug.rules.rule import Rule class CustomGradientRule(Rule): def __init__(self, base_trial, threshold=10.0): super().__init__(base_trial) self.threshold = float(threshold) def invoke_at_step(self, step): for tname in self.base_trial.tensor_names(collection="gradients"): t = self.base_trial.tensor(tname) abs_mean = t.reduction_value(step, "mean", abs=True) if abs_mean > self.threshold: return True return False

Anda dapat menambahkan beberapa kelas aturan khusus sebanyak yang Anda inginkan dalam skrip python yang sama dan menerapkannya ke uji coba pekerjaan pelatihan apa pun dengan membuat objek aturan khusus di bagian berikut.

Gunakan API Debugger untuk Menjalankan Aturan Kustom Anda Sendiri

Contoh kode berikut menunjukkan cara mengonfigurasi aturan kustom dengan Amazon SageMaker Python SDK. Contoh ini mengasumsikan bahwa skrip aturan khusus yang Anda buat pada langkah sebelumnya terletak di 'path/to/my_custom_rule.py'.

from sagemaker.debugger import Rule, CollectionConfig custom_rule = Rule.custom( name='MyCustomRule', image_uri='759209512951.dkr.ecr.us-west-2.amazonaws.com/sagemaker-debugger-rule-evaluator:latest', instance_type='ml.t3.medium', source='path/to/my_custom_rule.py', rule_to_invoke='CustomGradientRule', collections_to_save=[CollectionConfig("gradients")], rule_parameters={"threshold": "20.0"} )

Daftar berikut menjelaskan argumen Rule.custom API Debugger.

  • name(str): Tentukan nama aturan khusus yang Anda inginkan.

  • image_uri(str): Ini adalah gambar wadah yang memiliki logika untuk memahami aturan kustom Anda. Ini sumber dan mengevaluasi koleksi tensor tertentu yang Anda simpan dalam pekerjaan pelatihan. Anda dapat menemukan daftar gambar evaluator SageMaker aturan open source dariURL Registri Amazon SageMaker Debugger untuk Evaluator Aturan Kustom.

  • instance_type(str): Anda perlu menentukan instance untuk membangun wadah docker aturan. Ini memutar instance secara paralel dengan wadah pelatihan.

  • source(str): Ini adalah jalur lokal atau URI Amazon S3 ke skrip aturan kustom Anda.

  • rule_to_invoke(str): Ini menentukan implementasi kelas Aturan tertentu dalam skrip aturan kustom Anda. SageMaker hanya mendukung satu aturan untuk dievaluasi pada satu waktu dalam pekerjaan aturan.

  • collections_to_save(str): Ini menentukan koleksi tensor mana yang akan Anda simpan untuk menjalankan aturan.

  • rule_parameters(kamus): Ini menerima input parameter dalam format kamus. Anda dapat menyesuaikan parameter yang Anda konfigurasikan dalam skrip aturan kustom.

Setelah Anda mengatur custom_rule objek, Anda dapat menggunakannya untuk membangun SageMaker estimator untuk pekerjaan pelatihan apa pun. Tentukan entry_point skrip pelatihan Anda. Anda tidak perlu mengubah skrip pelatihan Anda.

from sagemaker.tensorflow import TensorFlow estimator = TensorFlow( role=sagemaker.get_execution_role(), base_job_name='smdebug-custom-rule-demo-tf-keras', entry_point='path/to/your_training_script.py' train_instance_type='ml.p2.xlarge' ... # debugger-specific arguments below rules = [custom_rule] ) estimator.fit()

Untuk lebih banyak variasi dan contoh lanjutan menggunakan aturan kustom Debugger, lihat contoh buku catatan berikut.