

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

# Kualitas data
<a name="model-monitor-data-quality"></a>

Pemantauan kualitas data secara otomatis memantau model pembelajaran mesin (ML) dalam produksi dan memberi tahu Anda saat masalah kualitas data muncul. Model ML dalam produksi harus membuat prediksi pada data kehidupan nyata yang tidak dikuratori dengan hati-hati seperti kebanyakan kumpulan data pelatihan. Jika sifat statistik dari data yang diterima model Anda saat dalam produksi menjauh dari sifat data dasar yang dilatihnya, model mulai kehilangan akurasi dalam prediksinya. Amazon SageMaker Model Monitor menggunakan aturan untuk mendeteksi penyimpangan data dan memberi tahu Anda ketika itu terjadi. Untuk memantau kualitas data, ikuti langkah-langkah berikut:
+ Aktifkan pengambilan data. Ini menangkap input dan output inferensi dari titik akhir inferensi real-time atau pekerjaan transformasi batch dan menyimpan data di Amazon S3. Untuk informasi selengkapnya, lihat [Pengambilan data](model-monitor-data-capture.md).
+ Buat garis dasar. Pada langkah ini, Anda menjalankan pekerjaan dasar yang menganalisis kumpulan data input yang Anda berikan. Baseline menghitung batasan skema dasar dan statistik untuk setiap fitur menggunakan [Deequ](https://github.com/awslabs/deequ), pustaka open source yang dibangun di atas Apache Spark, yang digunakan untuk mengukur kualitas data dalam kumpulan data besar. Untuk informasi selengkapnya, lihat [Buat Baseline](model-monitor-create-baseline.md).
+ Menentukan dan menjadwalkan pekerjaan pemantauan kualitas data. Untuk informasi spesifik dan contoh kode pekerjaan pemantauan kualitas data, lihat[Jadwalkan pekerjaan pemantauan kualitas data](model-monitor-schedule-data-monitor.md). Untuk informasi umum tentang pemantauan pekerjaan, lihat[Jadwalkan pekerjaan pemantauan](model-monitor-scheduling.md).
  + Secara opsional gunakan skrip preprocessing dan postprocessing untuk mengubah data yang keluar dari analisis kualitas data Anda. Untuk informasi selengkapnya, lihat [Preprocessing dan Postprocessing](model-monitor-pre-and-post-processing.md).
+ Lihat metrik kualitas data. Untuk informasi selengkapnya, lihat [Skema untuk Statistik (file statistik.json)](model-monitor-interpreting-statistics.md).
+ Integrasikan pemantauan kualitas data dengan Amazon CloudWatch. Untuk informasi selengkapnya, lihat [CloudWatch Metrik](model-monitor-interpreting-cloudwatch.md).
+ Menafsirkan hasil pekerjaan pemantauan. Untuk informasi selengkapnya, lihat [Menafsirkan hasil](model-monitor-interpreting-results.md).
+ Gunakan SageMaker Studio untuk mengaktifkan pemantauan kualitas data dan memvisualisasikan hasil jika Anda menggunakan titik akhir real-time. Untuk informasi selengkapnya, lihat [Visualisasikan hasil untuk titik akhir real-time di Amazon Studio SageMaker](model-monitor-interpreting-visualize-results.md).

**catatan**  
Model Monitor menghitung metrik model dan statistik hanya pada data tabular. Misalnya, model klasifikasi gambar yang mengambil gambar sebagai input dan mengeluarkan label berdasarkan gambar itu masih dapat dipantau. Model Monitor akan dapat menghitung metrik dan statistik untuk output, bukan input.

**Topics**
+ [Buat Baseline](model-monitor-create-baseline.md)
+ [Jadwalkan pekerjaan pemantauan kualitas data](model-monitor-schedule-data-monitor.md)
+ [Skema untuk Statistik (file statistik.json)](model-monitor-interpreting-statistics.md)
+ [CloudWatch Metrik](model-monitor-interpreting-cloudwatch.md)
+ [Skema untuk Pelanggaran (file constraint\$1violations.json)](model-monitor-interpreting-violations.md)

# Buat Baseline
<a name="model-monitor-create-baseline"></a>

Perhitungan dasar statistik dan kendala diperlukan sebagai standar di mana penyimpangan data dan masalah kualitas data lainnya dapat dideteksi. Model Monitor menyediakan wadah bawaan yang menyediakan kemampuan untuk menyarankan kendala secara otomatis untuk input CSV dan JSON datar. *sagemaker-model-monitor-analyzer*Container ini juga memberi Anda berbagai kemampuan pemantauan model, termasuk validasi kendala terhadap baseline, dan memancarkan metrik Amazon. CloudWatch Wadah ini didasarkan pada Spark versi 3.3.0 dan dibangun dengan [Deequ](https://github.com/awslabs/deequ) versi 2.0.2. Semua nama kolom dalam dataset dasar Anda harus sesuai dengan Spark. Untuk nama kolom, gunakan hanya karakter huruf kecil, dan `_` sebagai satu-satunya karakter khusus.

Dataset pelatihan yang Anda gunakan untuk melatih model biasanya merupakan kumpulan data dasar yang baik. Skema data kumpulan data pelatihan dan skema kumpulan data inferensi harus sama persis (jumlah dan urutan fitur). Perhatikan bahwa prediction/output kolom diasumsikan sebagai kolom pertama dalam kumpulan data pelatihan. Dari kumpulan data pelatihan, Anda dapat meminta SageMaker AI untuk menyarankan serangkaian batasan dasar dan menghasilkan statistik deskriptif untuk menjelajahi data. Untuk contoh ini, unggah kumpulan data pelatihan yang digunakan untuk melatih model yang telah dilatih sebelumnya yang termasuk dalam contoh ini. Jika Anda sudah menyimpan kumpulan data pelatihan di Amazon S3, Anda dapat mengarahkannya secara langsung.

**Membuat baseline dari dataset pelatihan** 

[Saat data pelatihan Anda siap dan disimpan di Amazon S3, mulailah pekerjaan pemrosesan dasar dengan menggunakan `DefaultModelMonitor.suggest_baseline(..)` Amazon Python SDK. SageMaker ](https://sagemaker.readthedocs.io/en/stable) Ini menggunakan [Amazon SageMaker Model Monitor wadah bawaan](model-monitor-pre-built-container.md) yang menghasilkan statistik dasar dan menyarankan batasan dasar untuk kumpulan data dan menuliskannya ke lokasi yang Anda tentukan. `output_s3_uri`

```
from sagemaker.model_monitor import DefaultModelMonitor
from sagemaker.model_monitor.dataset_format import DatasetFormat

my_default_monitor = DefaultModelMonitor(
    role=role,
    instance_count=1,
    instance_type='ml.m5.xlarge',
    volume_size_in_gb=20,
    max_runtime_in_seconds=3600,
)

my_default_monitor.suggest_baseline(
    baseline_dataset=baseline_data_uri+'/training-dataset-with-header.csv',
    dataset_format=DatasetFormat.csv(header=True),
    output_s3_uri=baseline_results_uri,
    wait=True
)
```

**catatan**  
Jika Anda memberikan feature/column nama dalam kumpulan data pelatihan sebagai baris pertama dan menetapkan `header=True` opsi seperti yang ditunjukkan pada sampel kode sebelumnya, SageMaker AI menggunakan nama fitur dalam file batasan dan statistik.

Statistik dasar untuk kumpulan data terkandung dalam file statistics.json dan batasan dasar yang disarankan terkandung dalam file constraints.json di lokasi yang Anda tentukan. `output_s3_uri`

File Output untuk Statistik dan Kendala Set Data Tabular


| Nama berkas | Deskripsi | 
| --- | --- | 
| statistics.json |  File ini diharapkan memiliki statistik kolumnar untuk setiap fitur dalam kumpulan data yang dianalisis. Untuk informasi selengkapnya tentang skema untuk file ini, lihat[Skema untuk Statistik (file statistik.json)](model-monitor-byoc-statistics.md).  | 
| constraints.json |  File ini diharapkan memiliki kendala pada fitur yang diamati. Untuk informasi selengkapnya tentang skema untuk file ini, lihat[Skema untuk Kendala (file kendala json)](model-monitor-byoc-constraints.md).  | 

[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) menyediakan fungsi kenyamanan yang dijelaskan untuk menghasilkan statistik dan batasan dasar. Tetapi jika Anda ingin memanggil pekerjaan pemrosesan secara langsung untuk tujuan ini, Anda perlu mengatur `Environment` peta seperti yang ditunjukkan pada contoh berikut:

```
"Environment": {
    "dataset_format": "{\"csv\”: { \”header\”: true}",
    "dataset_source": "/opt/ml/processing/sm_input",
    "output_path": "/opt/ml/processing/sm_output",
    "publish_cloudwatch_metrics": "Disabled",
}
```

# Jadwalkan pekerjaan pemantauan kualitas data
<a name="model-monitor-schedule-data-monitor"></a>

Setelah Anda membuat baseline Anda, Anda dapat memanggil `create_monitoring_schedule()` metode instance `DefaultModelMonitor` kelas Anda untuk menjadwalkan monitor kualitas data per jam. Bagian berikut menunjukkan cara membuat monitor kualitas data untuk model yang diterapkan ke titik akhir real-time serta untuk pekerjaan transformasi batch.

**penting**  
Anda dapat menentukan input transformasi batch atau input titik akhir, tetapi tidak keduanya, saat Anda membuat jadwal pemantauan.

## Pemantauan kualitas data untuk model yang digunakan ke titik akhir waktu nyata
<a name="model-monitor-data-quality-rt"></a>

Untuk menjadwalkan monitor kualitas data untuk titik akhir real-time, teruskan `EndpointInput` instance Anda ke `endpoint_input` argumen `DefaultModelMonitor` instance Anda, seperti yang ditunjukkan dalam contoh kode berikut:

```
from sagemaker.model_monitor import CronExpressionGenerator
                
data_quality_model_monitor = DefaultModelMonitor(
   role=sagemaker.get_execution_role(),
   ...
)

schedule = data_quality_model_monitor.create_monitoring_schedule(
   monitor_schedule_name=schedule_name,
   post_analytics_processor_script=s3_code_postprocessor_uri,
   output_s3_uri=s3_report_path,
   schedule_cron_expression=CronExpressionGenerator.hourly(),
   statistics=data_quality_model_monitor.baseline_statistics(),
   constraints=data_quality_model_monitor.suggested_constraints(),
   schedule_cron_expression=CronExpressionGenerator.hourly(),
   enable_cloudwatch_metrics=True,
   endpoint_input=EndpointInput(
        endpoint_name=endpoint_name,
        destination="/opt/ml/processing/input/endpoint",
   )
)
```

## Pemantauan kualitas data untuk pekerjaan transformasi batch
<a name="model-monitor-data-quality-bt"></a>

Untuk menjadwalkan monitor kualitas data untuk pekerjaan transformasi batch, teruskan `BatchTransformInput` instance Anda ke `batch_transform_input` argumen `DefaultModelMonitor` instance Anda, seperti yang ditunjukkan dalam contoh kode berikut:

```
from sagemaker.model_monitor import CronExpressionGenerator
                
data_quality_model_monitor = DefaultModelMonitor(
   role=sagemaker.get_execution_role(),
   ...
)

schedule = data_quality_model_monitor.create_monitoring_schedule(
    monitor_schedule_name=mon_schedule_name,
    batch_transform_input=BatchTransformInput(
        data_captured_destination_s3_uri=s3_capture_upload_path,
        destination="/opt/ml/processing/input",
        dataset_format=MonitoringDatasetFormat.csv(header=False),
    ),
    output_s3_uri=s3_report_path,
    statistics= statistics_path,
    constraints = constraints_path,
    schedule_cron_expression=CronExpressionGenerator.hourly(),
    enable_cloudwatch_metrics=True,
)
```

# Skema untuk Statistik (file statistik.json)
<a name="model-monitor-interpreting-statistics"></a>

Amazon SageMaker Model Monitor penghitungan kontainer bawaan per column/feature statistik. Statistik dihitung untuk dataset dasar dan juga untuk dataset saat ini yang sedang dianalisis.

```
{
    "version": 0,
    # dataset level stats
    "dataset": {
        "item_count": number
    },
    # feature level stats
    "features": [
        {
            "name": "feature-name",
            "inferred_type": "Fractional" | "Integral",
            "numerical_statistics": {
                "common": {
                    "num_present": number,
                    "num_missing": number
                },
                "mean": number,
                "sum": number,
                "std_dev": number,
                "min": number,
                "max": number,
                "distribution": {
                    "kll": {
                        "buckets": [
                            {
                                "lower_bound": number,
                                "upper_bound": number,
                                "count": number
                            }
                        ],
                        "sketch": {
                            "parameters": {
                                "c": number,
                                "k": number
                            },
                            "data": [
                                [
                                    num,
                                    num,
                                    num,
                                    num
                                ],
                                [
                                    num,
                                    num
                                ][
                                    num,
                                    num
                                ]
                            ]
                        }#sketch
                    }#KLL
                }#distribution
            }#num_stats
        },
        {
            "name": "feature-name",
            "inferred_type": "String",
            "string_statistics": {
                "common": {
                    "num_present": number,
                    "num_missing": number
                },
                "distinct_count": number,
                "distribution": {
                    "categorical": {
                         "buckets": [
                                {
                                    "value": "string",
                                    "count": number
                                }
                          ]
                     }
                }
            },
            #provision for custom stats
        }
    ]
}
```

Perhatikan hal-hal berikut:
+ Kontainer prebuilt menghitung sketsa [KLL, yang merupakan sketsa](https://datasketches.apache.org/docs/KLL/KLLSketch.html) kuantil kompak.
+ Secara default, kami mewujudkan distribusi dalam 10 ember. Ini saat ini tidak dapat dikonfigurasi.

# CloudWatch Metrik
<a name="model-monitor-interpreting-cloudwatch"></a>

Anda dapat menggunakan wadah Monitor SageMaker Model Amazon bawaan untuk CloudWatch metrik. Saat `emit_metrics` opsi ada `Enabled` di file batasan dasar, SageMaker AI memancarkan metrik ini untuk setiap yang feature/column diamati dalam kumpulan data di namespace berikut:
+ `For real-time endpoints: /aws/sagemaker/Endpoints/data-metric`namespace dengan `EndpointName` dan `ScheduleName` dimensi.
+ `For batch transform jobs: /aws/sagemaker/ModelMonitoring/data-metric`namespace dengan `MonitoringSchedule` dimensi.

Untuk bidang numerik, wadah bawaan memancarkan metrik berikut: CloudWatch
+ Metrik: Maks → kueri untuk `MetricName: feature_data_{feature_name}, Stat: Max`
+ Metrik: Min → kueri untuk `MetricName: feature_data_{feature_name}, Stat: Min`
+ Metrik: Jumlah → kueri untuk `MetricName: feature_data_{feature_name}, Stat: Sum`
+ Metrik: SampleCount → kueri untuk `MetricName: feature_data_{feature_name}, Stat: SampleCount`
+ Metrik: Rata-rata → kueri untuk `MetricName: feature_data_{feature_name}, Stat: Average`

Untuk bidang numerik dan string, wadah bawaan memancarkan metrik berikut: CloudWatch 
+ Metrik: Kelengkapan → kueri untuk `MetricName: feature_non_null_{feature_name}, Stat: Sum`
+ Metrik: Baseline Drift → kueri untuk `MetricName: feature_baseline_drift_{feature_name}, Stat: Sum`

# Skema untuk Pelanggaran (file constraint\$1violations.json)
<a name="model-monitor-interpreting-violations"></a>

File pelanggaran dihasilkan sebagai output dari a`MonitoringExecution`, yang mencantumkan hasil evaluasi kendala (ditentukan dalam file constraints.json) terhadap kumpulan data saat ini yang dianalisis. Container prebuilt Amazon SageMaker Model Monitor menyediakan pemeriksaan pelanggaran berikut.

```
{
    "violations": [{
      "feature_name" : "string",
      "constraint_check_type" :
              "data_type_check",
            | "completeness_check",
            | "baseline_drift_check",
            | "missing_column_check",
            | "extra_column_check",
            | "categorical_values_check"
      "description" : "string"
    }]
}
```

Jenis Pelanggaran yang Dipantau 


| Jenis Pemeriksaan Pelanggaran | Deskripsi  | 
| --- | --- | 
| data\$1type\$1check | Jika tipe data dalam eksekusi saat ini tidak sama dengan pada dataset dasar, pelanggaran ini ditandai. Selama langkah dasar, kendala yang dihasilkan menyarankan tipe data yang disimpulkan untuk setiap kolom. `monitoring_config.datatype_check_threshold`Parameter dapat disetel untuk menyesuaikan ambang batas saat ditandai sebagai pelanggaran.  | 
| completeness\$1check | Jika kelengkapan (% item non-null) yang diamati dalam eksekusi saat ini melebihi ambang batas yang ditentukan dalam ambang kelengkapan yang ditentukan per fitur, pelanggaran ini ditandai. Selama langkah dasar, kendala yang dihasilkan menunjukkan nilai kelengkapan.   | 
| baseline\$1drift\$1check | Jika jarak distribusi yang dihitung antara kumpulan data saat ini dan baseline lebih dari ambang batas yang ditentukan dalam`monitoring_config.comparison_threshold`, pelanggaran ini ditandai.  | 
| missing\$1column\$1check | Jika jumlah kolom dalam kumpulan data saat ini kurang dari jumlah dalam kumpulan data dasar, pelanggaran ini ditandai.  | 
| extra\$1column\$1check | Jika jumlah kolom dalam kumpulan data saat ini lebih dari jumlah di baseline, pelanggaran ini ditandai.  | 
| categorical\$1values\$1check | Jika ada lebih banyak nilai yang tidak diketahui dalam kumpulan data saat ini daripada di kumpulan data dasar, pelanggaran ini ditandai. Nilai ini ditentukan oleh ambang batas di`monitoring_config.domain_content_threshold`.  | 