

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

# Tindakan pada aturan menggunakan Amazon CloudWatch dan AWS Lambda
<a name="debugger-cloudwatch-lambda"></a>

Amazon CloudWatch mengumpulkan log pekerjaan pelatihan model SageMaker AI Amazon dan log pekerjaan pemrosesan aturan Amazon SageMaker Debugger. Konfigurasikan Debugger dengan Amazon CloudWatch Events dan AWS Lambda untuk mengambil tindakan berdasarkan status evaluasi aturan Debugger. 

## Notebook contoh
<a name="debugger-test-stop-training"></a>

Anda dapat menjalankan contoh buku catatan berikut, yang disiapkan untuk bereksperimen dengan menghentikan pekerjaan pelatihan menggunakan tindakan pada aturan bawaan Debugger menggunakan Amazon dan. CloudWatch AWS Lambda
+ [Amazon SageMaker Debugger - Bereaksi terhadap CloudWatch Peristiwa dari Aturan](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/tf-mnist-stop-training-job.html)

  Notebook contoh ini menjalankan pekerjaan pelatihan yang memiliki masalah gradien menghilang. Aturan [VanishingGradient](debugger-built-in-rules.md#vanishing-gradient) bawaan Debugger digunakan saat membuat estimator AI. SageMaker TensorFlow Ketika aturan Debugger mendeteksi masalah, pekerjaan pelatihan dihentikan.
+ [Mendeteksi Pelatihan yang Terhenti dan Memanggil Tindakan Menggunakan SageMaker Aturan Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/tensorflow_action_on_rule/detect_stalled_training_job_and_actions.html)

  Notebook contoh ini menjalankan skrip pelatihan dengan baris kode yang memaksanya untuk tidur selama 10 menit. Aturan [StalledTrainingRule](debugger-built-in-rules.md#stalled-training) bawaan Debugger memanggil masalah dan menghentikan pekerjaan pelatihan.

**Topics**
+ [Notebook contoh](#debugger-test-stop-training)
+ [Akses CloudWatch log untuk aturan Debugger dan pekerjaan pelatihan](debugger-cloudwatch-metric.md)
+ [Siapkan Debugger untuk penghentian pekerjaan pelatihan otomatis menggunakan CloudWatch dan Lambda](debugger-stop-training.md)
+ [Nonaktifkan aturan CloudWatch Acara untuk berhenti menggunakan penghentian pekerjaan pelatihan otomatis](debugger-disable-cw.md)

# Akses CloudWatch log untuk aturan Debugger dan pekerjaan pelatihan
<a name="debugger-cloudwatch-metric"></a>

Anda dapat menggunakan status pekerjaan aturan pelatihan dan Debugger di CloudWatch log untuk mengambil tindakan lebih lanjut ketika ada masalah pelatihan. Prosedur berikut menunjukkan cara mengakses CloudWatch log terkait. Untuk informasi selengkapnya tentang pemantauan pekerjaan pelatihan yang digunakan CloudWatch, lihat [Memantau Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-overview.html).

**Untuk mengakses log pekerjaan pelatihan dan log pekerjaan aturan Debugger**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi kiri di bawah simpul **Log**, pilih **Grup Log**.

1. Dalam daftar grup log, lakukan hal berikut:
   + **aws/sagemaker/TrainingJobsPilih/untuk** log pekerjaan pelatihan.
   + Pilih**/aws/sagemaker/ProcessingJobs**untuk log pekerjaan aturan Debugger.

# Siapkan Debugger untuk penghentian pekerjaan pelatihan otomatis menggunakan CloudWatch dan Lambda
<a name="debugger-stop-training"></a>

Aturan Debugger memantau status pekerjaan pelatihan, dan aturan CloudWatch Acara mengawasi status evaluasi pekerjaan pelatihan aturan Debugger. Bagian berikut menguraikan proses yang diperlukan untuk mengotomatiskan pemutusan hubungan kerja pelatihan menggunakan using dan CloudWatch Lambda.

**Topics**
+ [Langkah 1: Membuat fungsi Lambda](#debugger-lambda-function-create)
+ [Langkah 2: Konfigurasikan fungsi Lambda](#debugger-lambda-function-configure)
+ [Langkah 3: Buat aturan CloudWatch acara dan tautkan ke fungsi Lambda untuk Debugger](#debugger-cloudwatch-events)

## Langkah 1: Membuat fungsi Lambda
<a name="debugger-lambda-function-create"></a>

**Untuk membuat fungsi Lambda**

1. Buka AWS Lambda konsol di [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Di panel navigasi kiri, pilih **Fungsi** dan kemudian pilih **Buat fungsi**.

1. Pada halaman **Create function**, pilih **Author from scratch** option.

1. Di bagian **Informasi dasar**, masukkan **nama Fungsi** (misalnya, **debugger-rule-stop-training-job**).

1. Untuk **Waktu pengoperasian**, pilih **Python 3.7**.

1. Untuk **Izin, perluas** opsi drop-down, dan pilih **Ubah peran eksekusi default**.

1. Untuk **peran Eksekusi**, pilih **Gunakan peran yang ada** dan pilih peran IAM yang Anda gunakan untuk melatih pekerjaan di SageMaker AI.
**catatan**  
Pastikan Anda menggunakan peran eksekusi dengan `AmazonSageMakerFullAccess` dan `AWSLambdaBasicExecutionRole` dilampirkan. 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
   sagemaker.get_execution_role()
   ```

1. Di bagian bawah halaman, pilih **Buat Fungsi**.

Gambar berikut menunjukkan contoh halaman **fungsi Buat** dengan bidang input dan pilihan selesai.

![\[Buat halaman Fungsi.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/debugger/debugger-lambda-create.png)


## Langkah 2: Konfigurasikan fungsi Lambda
<a name="debugger-lambda-function-configure"></a>

**Untuk mengonfigurasi fungsi Lambda**

1. Di bagian **Kode fungsi** pada halaman konfigurasi, tempel skrip Python berikut di panel editor kode Lambda. `lambda_handler`Fungsi ini memantau status evaluasi aturan Debugger yang dikumpulkan oleh CloudWatch dan memicu operasi API. `StopTrainingJob` The AWS SDK untuk Python (Boto3) `client` for SageMaker AI menyediakan metode tingkat tinggi`stop_training_job`, yang memicu operasi `StopTrainingJob` API.

   ```
   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 None
   ```

   Untuk informasi selengkapnya tentang antarmuka editor kode Lambda, lihat [Membuat fungsi menggunakan editor konsol AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/code-editor.html).

1. Lewati semua pengaturan lainnya dan pilih **Simpan** di bagian atas halaman konfigurasi.

## Langkah 3: Buat aturan CloudWatch acara dan tautkan ke fungsi Lambda untuk Debugger
<a name="debugger-cloudwatch-events"></a>

**Untuk membuat aturan CloudWatch Acara dan menautkan ke fungsi Lambda untuk Debugger**

1. Buka CloudWatch konsol di [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Di panel navigasi kiri, pilih **Aturan** di bawah simpul **Acara**.

1. Pilih **Buat aturan**.

1. Di bagian **Sumber Peristiwa** pada halaman **Langkah 1: Buat aturan**, pilih **SageMaker AI** untuk **Nama Layanan**, dan pilih **Perubahan Status Pekerjaan Pelatihan SageMaker AI** untuk **Jenis Acara**. Pratinjau Pola Peristiwa akan terlihat seperti contoh string JSON berikut: 

   ```
   {
       "source": [
           "aws.sagemaker"
       ],
       "detail-type": [
           "SageMaker Training Job State Change"
       ]
   }
   ```

1. Di bagian **Target**, pilih **Tambahkan target\$1**, dan pilih fungsi **debugger-rule-stop-trainingLambda -job** yang Anda buat. Langkah ini menautkan aturan CloudWatch Peristiwa dengan fungsi Lambda.

1. Pilih **Konfigurasikan detail** dan buka halaman **Langkah 2: Konfigurasikan detail aturan**.

1. Tentukan nama definisi CloudWatch aturan. Misalnya, **debugger-cw-event-rule**.

1. Pilih **Buat aturan** untuk menyelesaikan.

1. Kembali ke halaman konfigurasi fungsi Lambda dan segarkan halaman. Konfirmasikan bahwa itu dikonfigurasi dengan benar di panel **Designer**. Aturan CloudWatch Peristiwa harus didaftarkan sebagai pemicu fungsi Lambda. Desain konfigurasi akan terlihat seperti contoh berikut:  
<a name="lambda-designer-example"></a>![\[Panel desainer untuk CloudWatch konfigurasi.\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/debugger/debugger-lambda-designer.png)

# Nonaktifkan aturan CloudWatch Acara untuk berhenti menggunakan penghentian pekerjaan pelatihan otomatis
<a name="debugger-disable-cw"></a>

Jika Anda ingin menonaktifkan pemutusan pekerjaan pelatihan otomatis, Anda harus menonaktifkan aturan CloudWatch Acara. Di panel Lambda **Designer**, pilih blok **EventBridge (CloudWatch Events)** yang ditautkan ke fungsi Lambda. Ini menunjukkan **EventBridge**panel di bawah panel **Designer** (misalnya, lihat tangkapan layar sebelumnya). Pilih kotak centang di sebelah **EventBridge (CloudWatch Acara): debugger-cw-event-rule**, lalu pilih **Nonaktifkan**. Jika Anda ingin menggunakan fungsionalitas penghentian otomatis nanti, Anda dapat mengaktifkan aturan CloudWatch Acara lagi.