

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

# Jadwalkan pekerjaan pemantauan
<a name="model-monitor-scheduling"></a>

Amazon SageMaker Model Monitor memberi Anda kemampuan untuk memantau data yang dikumpulkan dari titik akhir waktu nyata Anda. Anda dapat memantau data Anda pada jadwal berulang, atau Anda dapat memantaunya satu kali, segera. Anda dapat membuat jadwal pemantauan dengan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html)API.

Dengan jadwal pemantauan, SageMaker AI dapat mulai memproses pekerjaan untuk menganalisis data yang dikumpulkan selama periode tertentu. Dalam pekerjaan pemrosesan, SageMaker AI membandingkan kumpulan data untuk analisis saat ini dengan statistik dasar dan kendala yang Anda berikan. Kemudian, SageMaker AI menghasilkan laporan pelanggaran. Selain itu, CloudWatch metrik dipancarkan untuk setiap fitur yang dianalisis.

SageMaker AI menyediakan wadah bawaan untuk melakukan analisis pada kumpulan data tabel. Atau, Anda dapat memilih untuk membawa wadah Anda sendiri seperti yang diuraikan dalam [Support untuk Kontainer Anda Sendiri Dengan Monitor SageMaker Model Amazon](model-monitor-byoc-containers.md) topik.

Anda dapat membuat jadwal pemantauan model untuk titik akhir real-time atau pekerjaan transformasi batch Anda. Gunakan sumber daya dasar (kendala dan statistik) untuk membandingkan dengan lalu lintas real-time atau input pekerjaan batch. 

**Example tugas dasar**  
Dalam contoh berikut, kumpulan data pelatihan yang digunakan untuk melatih model diunggah ke Amazon S3. Jika Anda sudah memilikinya di Amazon S3, Anda dapat mengarahkannya secara langsung.  

```
# copy over the training dataset to Amazon S3 (if you already have it in Amazon S3, you could reuse it)
baseline_prefix = prefix + '/baselining'
baseline_data_prefix = baseline_prefix + '/data'
baseline_results_prefix = baseline_prefix + '/results'

baseline_data_uri = 's3://{}/{}'.format(bucket,baseline_data_prefix)
baseline_results_uri = 's3://{}/{}'.format(bucket, baseline_results_prefix)
print('Baseline data uri: {}'.format(baseline_data_uri))
print('Baseline results uri: {}'.format(baseline_results_uri))
```

```
training_data_file = open("test_data/training-dataset-with-header.csv", 'rb')
s3_key = os.path.join(baseline_prefix, 'data', 'training-dataset-with-header.csv')
boto3.Session().resource('s3').Bucket(bucket).Object(s3_key).upload_fileobj(training_data_file)
```

**Example jadwal untuk analisis berulang**  
Jika Anda menjadwalkan monitor model untuk titik akhir real-time, gunakan batasan dasar dan statistik untuk membandingkan dengan lalu lintas waktu nyata. Cuplikan kode berikut menunjukkan format umum yang Anda gunakan untuk menjadwalkan monitor model untuk titik akhir real-time. Contoh ini menjadwalkan monitor model untuk berjalan setiap jam.  

```
from sagemaker.model_monitor import CronExpressionGenerator
from time import gmtime, strftime

mon_schedule_name = 'my-model-monitor-schedule-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
my_default_monitor.create_monitoring_schedule(
    monitor_schedule_name=mon_schedule_name,
    endpoint_input=EndpointInput(
        endpoint_name=endpoint_name,
        destination="/opt/ml/processing/input/endpoint"
    ),
    post_analytics_processor_script=s3_code_postprocessor_uri,
    output_s3_uri=s3_report_path,
    statistics=my_default_monitor.baseline_statistics(),
    constraints=my_default_monitor.suggested_constraints(),
    schedule_cron_expression=CronExpressionGenerator.hourly(),
    enable_cloudwatch_metrics=True,
)
```

**Example jadwal untuk analisis satu kali**  
Anda juga dapat menjadwalkan analisis untuk dijalankan sekali tanpa berulang dengan meneruskan argumen seperti berikut ke `create_monitoring_schedule` metode:  

```
    schedule_cron_expression=CronExpressionGenerator.now(),
    data_analysis_start_time="-PT1H",
    data_analysis_end_time="-PT0H",
```
Dalam argumen ini, `schedule_cron_expression` parameter menjadwalkan analisis untuk dijalankan sekali, segera, dengan nilainya`CronExpressionGenerator.now()`. Untuk jadwal apa pun dengan pengaturan ini, `data_analysis_end_time` parameter `data_analysis_start_time` dan diperlukan. Parameter ini mengatur waktu mulai dan waktu akhir jendela analisis. Tentukan waktu ini sebagai offset yang relatif terhadap waktu saat ini, dan gunakan format durasi ISO 8601. Dalam contoh ini, waktu `-PT1H` dan `-PT0H` tentukan jendela antara satu jam di masa lalu dan waktu saat ini. Dengan jadwal ini, analisis hanya mengevaluasi data yang dikumpulkan selama jendela yang ditentukan.

**Example jadwal untuk pekerjaan transformasi batch**  
Cuplikan kode berikut menunjukkan format umum yang Anda gunakan untuk menjadwalkan monitor model untuk pekerjaan transformasi batch.  

```
from sagemaker.model_monitor import (
    CronExpressionGenerator,
    BatchTransformInput, 
    MonitoringDatasetFormat, 
)
from time import gmtime, strftime

mon_schedule_name = 'my-model-monitor-schedule-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
my_default_monitor.create_monitoring_schedule(
    monitor_schedule_name=mon_schedule_name,
    batch_transform_input=BatchTransformInput(
        destination="opt/ml/processing/input",
        data_captured_destination_s3_uri=s3_capture_upload_path,
        dataset_format=MonitoringDatasetFormat.csv(header=False),
    ),
    post_analytics_processor_script=s3_code_postprocessor_uri,
    output_s3_uri=s3_report_path,
    statistics=my_default_monitor.baseline_statistics(),
    constraints=my_default_monitor.suggested_constraints(),
    schedule_cron_expression=CronExpressionGenerator.hourly(),
    enable_cloudwatch_metrics=True,
)
```

```
desc_schedule_result = my_default_monitor.describe_schedule()
print('Schedule status: {}'.format(desc_schedule_result['MonitoringScheduleStatus']))
```

# Ekspresi cron untuk jadwal pemantauan
<a name="model-monitor-schedule-expression"></a>

Untuk memberikan rincian untuk jadwal pemantauan, gunakan [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ScheduleConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ScheduleConfig.html), yang merupakan `cron` ungkapan yang menjelaskan rincian tentang jadwal pemantauan.

Amazon SageMaker Model Monitor mendukung `cron` ekspresi berikut:
+ Untuk mengatur pekerjaan untuk memulai setiap jam, gunakan yang berikut ini:

  `Hourly: cron(0 * ? * * *)`
+ Untuk menjalankan pekerjaan setiap hari, gunakan yang berikut ini:

  `cron(0 [00-23] ? * * *)`
+ Jalankan pekerjaan satu kali, segera, gunakan kata kunci berikut:

  `NOW`

Misalnya, berikut ini adalah `cron` ekspresi yang valid:
+ Setiap hari pukul 12 PM UTC: `cron(0 12 ? * * *)`
+ Setiap hari pukul 12 pagi UTC: `cron(0 0 ? * * *)`

Untuk mendukung berjalan setiap 6, 12 jam, Model Monitor mendukung ekspresi berikut:

`cron(0 [00-23]/[01-24] ? * * *)`

Misalnya, berikut ini adalah `cron` ekspresi yang valid:
+ Setiap 12 jam, mulai pukul 5 sore UTC: `cron(0 17/12 ? * * *)`
+ Setiap dua jam, mulai pukul 12 pagi UTC: `cron(0 0/2 ? * * *)`

**Catatan**  
Meskipun `cron` ekspresi diatur untuk dimulai pada pukul 5 sore UTC, perhatikan bahwa mungkin ada penundaan 0-20 menit dari waktu yang diminta sebenarnya untuk menjalankan eksekusi.
Jika Anda ingin menjalankan jadwal harian, jangan berikan parameter ini. SageMaker AI memilih waktu untuk berlari setiap hari.
Saat ini, SageMaker AI hanya mendukung tarif bilangan bulat per jam antara 1 jam dan 24 jam.

# Mengkonfigurasi kebijakan kontrol layanan untuk jadwal pemantauan
<a name="model-monitor-scp-rules"></a>

 Anda harus menentukan parameter pekerjaan pemantauan saat Anda membuat atau memperbarui jadwal untuk itu dengan [CreateMonitoringSchedule](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateMonitoringSchedule.html)API atau [UpdateMonitoringSchedule](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateMonitoringSchedule.html)API, masing-masing. Tergantung pada kasus penggunaan Anda, Anda dapat melakukan ini dengan salah satu cara berikut: 
+  Anda dapat menentukan [MonitoringJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MonitoringJobDefinition.html)bidang [MonitoringScheduleConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_MonitoringScheduleConfig.html), ketika Anda memanggil `CreateMonitoringSchedule` atau`UpdateMonitoringSchedule`. Anda dapat menggunakan ini hanya untuk membuat atau memperbarui jadwal untuk pekerjaan pemantauan kualitas data. 
+  Anda dapat menentukan nama definisi pekerjaan pemantauan, yang telah Anda buat, untuk `MonitoringJobDefinitionName` bidang`MonitoringScheduleConfig`, saat Anda memanggil `CreateMonitoringSchedule` atau`UpdateMonitoringSchedule`. Anda dapat menggunakan ini untuk definisi pekerjaan apa pun yang Anda buat dengan salah satu dari berikut ini APIs: 
  +  [CreateDataQualityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDataQualityJobDefinition.html) 
  +  [CreateModelQualityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelQualityJobDefinition.html) 
  +  [CreateModelBiasJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelBiasJobDefinition.html) 
  +  [CreateModelExplainabilityJobDefinition](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelExplainabilityJobDefinition.html) 

   Jika Anda ingin menggunakan SageMaker Python SDK untuk membuat atau memperbarui jadwal, maka Anda harus menggunakan proses ini. 

 Proses yang disebutkan di atas saling eksklusif, yaitu, Anda dapat menentukan `MonitoringJobDefinition` bidang atau `MonitoringJobDefinitionName` bidang saat membuat atau memperbarui jadwal pemantauan. 

 Saat Anda membuat definisi pekerjaan pemantauan, atau menentukannya di `MonitoringJobDefinition` bidang, Anda dapat mengatur parameter keamanan, seperti `NetworkConfig` dan`VolumeKmsKeyId`. Sebagai administrator, Anda mungkin ingin agar parameter ini selalu disetel ke nilai tertentu, sehingga pekerjaan pemantauan selalu berjalan di lingkungan yang aman. Untuk memastikan hal ini, siapkan [kebijakan kontrol Layanan](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) yang sesuai (SCPs). SCPs adalah jenis kebijakan organisasi yang dapat Anda gunakan untuk mengelola izin di organisasi Anda. 

 Contoh berikut menunjukkan SCP yang dapat Anda gunakan untuk memastikan bahwa parameter infrastruktur diatur dengan benar saat membuat atau memperbarui jadwal untuk pekerjaan pemantauan. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDataQualityJobDefinition",
                "sagemaker:CreateModelBiasJobDefinition",
                "sagemaker:CreateModelExplainabilityJobDefinition",
                "sagemaker:CreateModelQualityJobDefinition"
            ],
            "Resource": "arn:*:sagemaker:*:*:*",
            "Condition": {
                "Null": {
                    "sagemaker:VolumeKmsKey":"true",
                    "sagemaker:VpcSubnets": "true",
                    "sagemaker:VpcSecurityGroupIds": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDataQualityJobDefinition",
                "sagemaker:CreateModelBiasJobDefinition",
                "sagemaker:CreateModelExplainabilityJobDefinition",
                "sagemaker:CreateModelQualityJobDefinition"
            ],
            "Resource": "arn:*:sagemaker:*:*:*",
            "Condition": {
                "Bool": {
                    "sagemaker:InterContainerTrafficEncryption": "false"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateMonitoringSchedule",
                "sagemaker:UpdateMonitoringSchedule"
            ],
            "Resource": "arn:*:sagemaker:*:*:monitoring-schedule/*",
            "Condition": {
                "Null": {
                    "sagemaker:ModelMonitorJobDefinitionName": "true"
                }
            }
        }
    ]
}
```

------

 Dua aturan pertama dalam contoh, memastikan bahwa parameter keamanan selalu ditetapkan untuk memantau definisi pekerjaan. Aturan akhir mensyaratkan bahwa siapa pun, di organisasi Anda, membuat atau memperbarui jadwal, harus selalu menentukan `MonitoringJobDefinitionName` bidang. Ini memastikan bahwa tidak ada seorang pun di organisasi Anda, dapat menetapkan nilai tidak aman untuk parameter keamanan dengan menentukan `MonitoringJobDefinition` bidang, saat membuat atau memperbarui jadwal. 