

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

# Support untuk Kontainer Anda Sendiri Dengan Monitor SageMaker Model Amazon
<a name="model-monitor-byoc-containers"></a>

Amazon SageMaker Model Monitor menyediakan wadah bawaan dengan kemampuan untuk menganalisis data yang diambil dari titik akhir atau pekerjaan transformasi batch untuk kumpulan data tabular. Jika Anda ingin membawa wadah Anda sendiri, Model Monitor menyediakan titik ekstensi yang dapat Anda manfaatkan.

Di bawah tenda, saat Anda membuat`MonitoringSchedule`, Model Monitor akhirnya memulai pekerjaan pemrosesan. Oleh karena itu wadah perlu mengetahui kontrak kerja pemrosesan yang didokumentasikan dalam [Cara Membangun Wadah Pemrosesan Anda Sendiri (Skenario Lanjutan)](build-your-own-processing-container.md) topik tersebut. Perhatikan bahwa Model Monitor memulai pekerjaan pemrosesan atas nama Anda sesuai jadwal. Saat menjalankan, Model Monitor menyiapkan variabel lingkungan tambahan untuk Anda sehingga penampung Anda memiliki konteks yang cukup untuk memproses data untuk eksekusi tertentu dari pemantauan terjadwal. Untuk informasi tambahan tentang input kontainer, lihat. [Input Kontrak Kontainer](model-monitor-byoc-contract-inputs.md)

Dalam wadah, menggunakan variabel/konteks lingkungan di atas, Anda sekarang dapat menganalisis kumpulan data untuk periode saat ini dalam kode kustom Anda. Setelah analisis ini selesai, Anda dapat memilih untuk mengeluarkan laporan Anda untuk diunggah ke bucket S3. Laporan yang dihasilkan oleh kontainer bawaan didokumentasikan[Output Kontrak Kontainer](model-monitor-byoc-contract-outputs.md). Jika Anda ingin visualisasi laporan berfungsi di SageMaker Studio, Anda harus mengikuti format yang sama. Anda juga dapat memilih untuk mengeluarkan laporan yang sepenuhnya disesuaikan.

Anda juga memancarkan CloudWatch metrik dari wadah dengan mengikuti petunjuk di. [CloudWatch Metrik untuk Membawa Kontainer Anda Sendiri](model-monitor-byoc-cloudwatch.md)

**Topics**
+ [Input Kontrak Kontainer](model-monitor-byoc-contract-inputs.md)
+ [Output Kontrak Kontainer](model-monitor-byoc-contract-outputs.md)
+ [CloudWatch Metrik untuk Membawa Kontainer Anda Sendiri](model-monitor-byoc-cloudwatch.md)

# Input Kontrak Kontainer
<a name="model-monitor-byoc-contract-inputs"></a>

Platform Amazon SageMaker Model Monitor memanggil kode penampung Anda sesuai dengan jadwal yang ditentukan. Jika Anda memilih untuk menulis kode kontainer Anda sendiri, variabel lingkungan berikut tersedia. Dalam konteks ini, Anda dapat menganalisis kumpulan data saat ini atau mengevaluasi kendala jika Anda memilih dan memancarkan metrik, jika berlaku.

Variabel lingkungan yang tersedia adalah sama untuk titik akhir real-time dan pekerjaan transformasi batch, kecuali untuk `dataset_format` variabel. Jika Anda menggunakan titik akhir real-time, `dataset_format` variabel mendukung opsi berikut:

```
{\"sagemakerCaptureJson\": {\"captureIndexNames\": [\"endpointInput\",\"endpointOutput\"]}}
```

Jika Anda menggunakan pekerjaan transformasi batch, `dataset_format` mendukung opsi berikut:

```
{\"csv\": {\"header\": [\"true\",\"false\"]}}
```

```
{\"json\": {\"line\": [\"true\",\"false\"]}}
```

```
{\"parquet\": {}}
```

Contoh kode berikut menunjukkan set lengkap variabel lingkungan yang tersedia untuk kode kontainer Anda (dan menggunakan `dataset_format` format untuk titik akhir waktu nyata).

```
"Environment": {
 "dataset_format": "{\"sagemakerCaptureJson\": {\"captureIndexNames\": [\"endpointInput\",\"endpointOutput\"]}}",
 "dataset_source": "/opt/ml/processing/endpointdata",
 "end_time": "2019-12-01T16: 20: 00Z",
 "output_path": "/opt/ml/processing/resultdata",
 "publish_cloudwatch_metrics": "Disabled",
 "sagemaker_endpoint_name": "endpoint-name",
 "sagemaker_monitoring_schedule_name": "schedule-name",
 "start_time": "2019-12-01T15: 20: 00Z"
}
```

Parameter 


| Nama Parameter | Deskripsi | 
| --- | --- | 
| dataset\$1format |  Untuk pekerjaan yang dimulai dari yang `MonitoringSchedule` didukung oleh`Endpoint`, ini `sageMakerCaptureJson` dengan indeks penangkapan`endpointInput`, atau`endpointOutput`, atau keduanya. Untuk pekerjaan transformasi batch, ini menentukan format data, apakah CSV, JSON, atau Parquet.  | 
| dataset\$1source |  Jika Anda menggunakan titik akhir real-time, jalur lokal di mana data yang sesuai dengan periode pemantauan, sebagaimana ditentukan oleh `start_time` dan`end_time`, tersedia. Pada jalur ini, data tersedia di` /{endpoint-name}/{variant-name}/yyyy/mm/dd/hh`. Kami terkadang mengunduh lebih dari yang ditentukan oleh waktu mulai dan akhir. Terserah kode kontainer untuk mengurai data sesuai kebutuhan.  | 
| output\$1path |  Jalur lokal untuk menulis laporan output dan file lainnya. Anda menentukan parameter ini dalam `CreateMonitoringSchedule` permintaan sebagai`MonitoringOutputConfig.MonitoringOutput[0].LocalPath`. Itu diunggah ke `S3Uri` jalur yang ditentukan dalam`MonitoringOutputConfig.MonitoringOutput[0].S3Uri`.  | 
| publish\$1cloudwatch\$1metrics |  Untuk pekerjaan yang diluncurkan oleh`CreateMonitoringSchedule`, parameter ini diatur ke`Enabled`. Wadah dapat memilih untuk menulis file CloudWatch output Amazon di`[filepath]`.  | 
| sagemaker\$1endpoint\$1name |  Jika Anda menggunakan titik akhir real-time, nama tempat `Endpoint` pekerjaan terjadwal ini diluncurkan.  | 
| sagemaker\$1monitoring\$1schedule\$1name |  Nama `MonitoringSchedule` yang meluncurkan pekerjaan ini.  | 
| \$1sagemaker\$1endpoint\$1datacapture\$1prefix\$1 |  Jika Anda menggunakan titik akhir real-time, awalan yang ditentukan dalam `DataCaptureConfig` parameter. `Endpoint` Wadah dapat menggunakan ini jika perlu mengakses lebih banyak data secara langsung daripada yang sudah diunduh oleh SageMaker AI di `dataset_source` jalur.  | 
| start\$1time, end\$1time |  Jendela waktu untuk analisis ini berjalan. Misalnya, untuk pekerjaan yang dijadwalkan berjalan pada 05:00 UTC dan pekerjaan yang berjalan pada 20/02/2020,`start_time`: adalah 2020-02-19T 06:00:00 Z dan: adalah 2020-02-20T 05:00:00 Z `end_time`  | 
| baseline\$1constraints: |  Jalur lokal dari file kendala dasar yang ditentukan dalam. ` BaselineConfig.ConstraintResource.S3Uri` Ini hanya tersedia jika parameter ini ditentukan dalam `CreateMonitoringSchedule` permintaan.  | 
| baseline\$1statistics |  Jalur lokal ke file statistik dasar yang ditentukan dalam. `BaselineConfig.StatisticsResource.S3Uri` Ini hanya tersedia jika parameter ini ditentukan dalam `CreateMonitoringSchedule` permintaan. :   | 

# Output Kontrak Kontainer
<a name="model-monitor-byoc-contract-outputs"></a>

Wadah dapat menganalisis data yang tersedia di `*dataset_source*` jalur dan menulis laporan ke jalur di `*output_path*.` Kode kontainer dapat menulis laporan apa pun yang sesuai dengan kebutuhan Anda.

Jika Anda menggunakan struktur dan kontrak berikut, file output tertentu diperlakukan secara khusus oleh SageMaker AI dalam visualisasi dan API. Ini hanya berlaku untuk kumpulan data tabular.

File Output untuk Dataset Tabular


| Nama berkas | Deskripsi | 
| --- | --- | 
| statistics.json |  File ini diharapkan memiliki statistik kolumnar untuk setiap fitur dalam kumpulan data yang dianalisis. Skema untuk file ini tersedia di bagian selanjutnya.  | 
| constraints.json |  File ini diharapkan memiliki kendala pada fitur yang diamati. Skema untuk file ini tersedia di bagian selanjutnya.  | 
| constraints\$1violations.json |  File ini diharapkan memiliki daftar pelanggaran yang ditemukan dalam kumpulan data saat ini dibandingkan dengan statistik dasar dan file kendala yang ditentukan di jalur dan. `baseline_constaints` `baseline_statistics`  | 

Selain itu, jika `publish_cloudwatch_metrics` nilainya adalah kode `"Enabled"` kontainer dapat memancarkan CloudWatch metrik Amazon di lokasi ini:. `/opt/ml/output/metrics/cloudwatch` Skema untuk file-file ini dijelaskan di bagian berikut.

**Topics**
+ [Skema untuk Statistik (file statistik.json)](model-monitor-byoc-statistics.md)
+ [Skema untuk Kendala (file kendala json)](model-monitor-byoc-constraints.md)

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

Skema yang didefinisikan dalam `statistics.json` file menentukan parameter statistik yang akan dihitung untuk baseline dan data yang ditangkap. Ini juga mengonfigurasi bucket yang akan digunakan oleh [KLL](https://datasketches.apache.org/docs/KLL/KLLSketch.html), sketsa kuantil yang sangat ringkas dengan skema pemadatan malas.

```
{
    "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
        }
    ]
}
```

**Catatan**  
Metrik yang ditentukan dikenali oleh SageMaker AI dalam perubahan visualisasi selanjutnya. Wadah dapat memancarkan lebih banyak metrik jika diperlukan.
Sketsa [KLL adalah sketsa](https://datasketches.apache.org/docs/KLL/KLLSketch.html) yang diakui. Wadah khusus dapat menulis representasi mereka sendiri, tetapi tidak akan dikenali oleh SageMaker AI dalam visualisasi.
Secara default, distribusi diwujudkan dalam 10 ember. Kau tak bisa mengubah ini.

# Skema untuk Kendala (file kendala json)
<a name="model-monitor-byoc-constraints"></a>

File constraints.json digunakan untuk mengekspresikan kendala yang harus dipenuhi oleh dataset. Container Amazon SageMaker Model Monitor dapat menggunakan file constraints.json untuk mengevaluasi kumpulan data. Kontainer bawaan menyediakan kemampuan untuk menghasilkan file constraints.json secara otomatis untuk dataset dasar. Jika Anda membawa wadah Anda sendiri, Anda dapat menyediakannya dengan kemampuan serupa atau Anda dapat membuat file constraints.json dengan cara lain. Berikut adalah skema untuk file kendala yang digunakan kontainer bawaan. Bawa wadah Anda sendiri dapat mengadopsi format yang sama atau meningkatkannya sesuai kebutuhan.

```
{
    "version": 0,
    "features":
    [
        {
            "name": "string",
            "inferred_type": "Integral" | "Fractional" | 
                    | "String" | "Unknown",
            "completeness": number,
            "num_constraints":
            {
                "is_non_negative": boolean
            },
            "string_constraints":
            {
                "domains":
                [
                    "list of",
                    "observed values",
                    "for small cardinality"
                ]
            },
            "monitoringConfigOverrides":
            {}
        }
    ],
    "monitoring_config":
    {
        "evaluate_constraints": "Enabled",
        "emit_metrics": "Enabled",
        "datatype_check_threshold": 0.1,
        "domain_content_threshold": 0.1,
        "distribution_constraints":
        {
            "perform_comparison": "Enabled",
            "comparison_threshold": 0.1,
            "comparison_method": "Simple"||"Robust",
            "categorical_comparison_threshold": 0.1,
            "categorical_drift_method": "LInfinity"||"ChiSquared"
        }
    }
}
```

`monitoring_config`Objek berisi opsi untuk pekerjaan pemantauan untuk fitur tersebut. Tabel berikut menjelaskan setiap opsi.

Kendala Pemantauan

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/model-monitor-byoc-constraints.html)

# CloudWatch Metrik untuk Membawa Kontainer Anda Sendiri
<a name="model-monitor-byoc-cloudwatch"></a>

Jika `publish_cloudwatch_metrics` nilainya ada `Enabled` di `Environment` peta dalam `/opt/ml/processing/processingjobconfig.json` file, kode penampung memancarkan CloudWatch metrik Amazon di lokasi ini:. `/opt/ml/output/metrics/cloudwatch` 

Skema untuk file ini sangat didasarkan pada CloudWatch `PutMetrics` API. Namespace tidak ditentukan di sini. Ini defaultnya sebagai berikut:
+ `For real-time endpoints: /aws/sagemaker/Endpoint/data-metrics`
+ `For batch transform jobs: /aws/sagemaker/ModelMonitoring/data-metrics`

Namun, Anda dapat menentukan dimensi. Kami menyarankan Anda menambahkan dimensi berikut minimal:
+ `Endpoint`dan `MonitoringSchedule` untuk titik akhir real-time
+ `MonitoringSchedule`untuk pekerjaan transformasi batch

Cuplikan JSON berikut menunjukkan cara mengatur dimensi Anda.

Untuk titik akhir real-time, lihat cuplikan JSON berikut yang mencakup dan dimensi: `Endpoint` `MonitoringSchedule`

```
{ 
    "MetricName": "", # Required
    "Timestamp": "2019-11-26T03:00:00Z", # Required
    "Dimensions" : [{"Name":"Endpoint","Value":"endpoint_0"},{"Name":"MonitoringSchedule","Value":"schedule_0"}]
    "Value": Float,
    # Either the Value or the StatisticValues field can be populated and not both.
    "StatisticValues": {
        "SampleCount": Float,
        "Sum": Float,
        "Minimum": Float,
        "Maximum": Float
    },
    "Unit": "Count", # Optional
}
```

Untuk pekerjaan transformasi batch, lihat cuplikan JSON berikut yang mencakup dimensi: `MonitoringSchedule`

```
{ 
    "MetricName": "", # Required
    "Timestamp": "2019-11-26T03:00:00Z", # Required
    "Dimensions" : [{"Name":"MonitoringSchedule","Value":"schedule_0"}]
    "Value": Float,
    # Either the Value or the StatisticValues field can be populated and not both.
    "StatisticValues": {
        "SampleCount": Float,
        "Sum": Float,
        "Minimum": Float,
        "Maximum": Float
    },
    "Unit": "Count", # Optional
}
```