Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Siapkan Debugger untuk penghentian pekerjaan pelatihan otomatis menggunakan CloudWatch dan Lambda
catatan
Amazon SageMaker Debugger tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan seperti biasa. AWS terus berinvestasi dalam peningkatan keamanan dan ketersediaan untuk Debugger, tetapi kami tidak berencana untuk memperkenalkan fitur baru. Untuk informasi selengkapnya, lihat Perubahan ketersediaan debugger.
Aturan Debugger memantau status pekerjaan pelatihan, dan aturan Acara CloudWatch mengawasi status evaluasi pekerjaan pelatihan aturan Debugger. Bagian berikut menguraikan proses yang diperlukan untuk mengotomatiskan penghentian pekerjaan pelatihan menggunakan CloudWatch dan Lambda.
Topik
Langkah 1: Membuat fungsi Lambda
Untuk membuat fungsi Lambda
Buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/
. -
Di panel navigasi kiri, pilih Fungsi dan kemudian pilih Buat fungsi.
-
Pada halaman fungsi Buat, pilih opsi Penulis dari awal.
-
Di bagian Informasi dasar, masukkan nama Fungsi (misalnya, debugger- rule-stop-training-job).
-
Untuk Waktu pengoperasian, pilih Python 3.7.
-
Untuk Iz in, perluas opsi drop-down, dan pilih U bah peran eksekusi default.
-
Untuk Peran eksekusi, pilih Gunakan peran yang ada dan pilih peran IAM yang Anda gunakan untuk pekerjaan pelatihan di SageMaker AI.
catatan
Pastikan Anda menggunakan peran eksekusi dengan
AmazonSageMakerFullAccessdan dilampAWSLambdaBasicExecutionRoleirkan. Jika tidak, fungsi Lambda tidak akan bereaksi dengan benar terhadap perubahan status aturan Debugger dari pekerjaan pelatihan. Jika Anda tidak yakin peran eksekusi mana yang digunakan, jalankan kode berikut di sel notebook Jupyter untuk mengambil output peran eksekusi:import sagemaker from sagemaker.core.helper.session_helper import get_execution_role get_execution_role() -
Di bagian bawah halaman, pilih Buat Fungsi.
Gambar berikut menunjukkan contoh halaman fungsi Buat dengan bidang input dan pilihan selesai.
Langkah 2: Konfigurasikan fungsi Lambda
Untuk mengonfigurasi fungsi Lambda
-
Di bagian kode fungsi halaman konfigurasi, tempel skrip Python berikut di panel editor kode Lambda.
lambda_handlerFungsi memantau status evaluasi aturan Debugger yang dikumpulkan oleh CloudWatch dan memicu operasiStopTrainingJobAPI. AWS SDK untuk Python (Boto3)clientUntuk SageMaker AI menyediakan metode tingkat tinggi,stop_training_job, yang memicu operasiStopTrainingJobAPI.import json import boto3 import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): training_job_name = event.get("detail").get("TrainingJobName") logging.info(f'Evaluating Debugger rules for training job: {training_job_name}') eval_statuses = event.get("detail").get("DebugRuleEvaluationStatuses", None) if eval_statuses is None or len(eval_statuses) == 0: logging.info("Couldn't find any debug rule statuses, skipping...") return { 'statusCode': 200, 'body': json.dumps('Nothing to do') } # should only attempt stopping jobs with InProgress status training_job_status = event.get("detail").get("TrainingJobStatus", None) if training_job_status != 'InProgress': logging.debug(f"Current Training job status({training_job_status}) is not 'InProgress'. Exiting") return { 'statusCode': 200, 'body': json.dumps('Nothing to do') } client = boto3.client('sagemaker') for status in eval_statuses: logging.info(status.get("RuleEvaluationStatus") + ', RuleEvaluationStatus=' + str(status)) if status.get("RuleEvaluationStatus") == "IssuesFound": secondary_status = event.get("detail").get("SecondaryStatus", None) logging.info( f'About to stop training job, since evaluation of rule configuration {status.get("RuleConfigurationName")} resulted in "IssuesFound". ' + f'\ntraining job "{training_job_name}" status is "{training_job_status}", secondary status is "{secondary_status}"' + f'\nAttempting to stop training job "{training_job_name}"' ) try: client.stop_training_job( TrainingJobName=training_job_name ) except Exception as e: logging.error( "Encountered error while trying to " "stop training job {}: {}".format( training_job_name, str(e) ) ) raise e return NoneUntuk informasi selengkapnya tentang antarmuka editor kode Lambda, lihat Membuat fungsi menggunakan editor konsol AWS Lambda.
-
Lewati semua pengaturan lainnya dan pilih S impan di bagian atas halaman konfigurasi.
Langkah 3: Buat aturan CloudWatch acara dan tautkan ke fungsi Lambda untuk Debugger
Untuk membuat aturan Per CloudWatch istiwa dan menautkan ke fungsi Lambda untuk Debugger
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi kiri, pilih A turan di bawah node Acara.
-
Pilih Buat aturan.
-
Di bagian Sumber A cara pada halaman Langkah 1: Buat aturan, pilih SageMaker AI untuk Nama Layanan, dan pilih Perubahan Status SageMaker Pekerjaan Pelatihan AI untuk Jenis Peristiwa. Pratinjau Pola Peristiwa akan terlihat seperti contoh string JSON berikut:
{ "source": [ "aws.sagemaker" ], "detail-type": [ "SageMaker Training Job State Change" ] } -
Di bagian Target, pilih Tam bah target*, dan pilih fungsi debugger-rule-stop- training-job Lambda yang Anda buat. Langkah ini menghubungkan aturan CloudWatch Events dengan fungsi Lambda.
-
Pilih Konfigurasi detail dan buka halaman Langkah 2: Konfigurasikan detail aturan.
-
Tentukan nama definisi CloudWatch aturan. Misalnya, debugger-cw-event-rule.
-
Pilih Buat aturan untuk menyelesaikan.
-
Kembali ke halaman konfigurasi fungsi Lambda dan segarkan halaman. Konfirmasikan bahwa itu dikonfigurasi dengan benar di panel Des ainer. Aturan CloudWatch Events harus didaftarkan sebagai pemicu untuk fungsi Lambda. Desain konfigurasi akan terlihat seperti contoh berikut: