

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

# Penyimpangan atribusi fitur untuk model dalam produksi
<a name="clarify-model-monitor-feature-attribution-drift"></a>

Penyimpangan dalam distribusi data langsung untuk model dalam produksi dapat menghasilkan penyimpangan yang sesuai dalam nilai atribusi fitur, seperti halnya dapat menyebabkan penyimpangan bias saat memantau metrik bias. Pemantauan atribusi fitur Amazon SageMaker Clarify membantu ilmuwan data dan teknisi ML memantau prediksi penyimpangan atribusi fitur secara teratur. Saat model dipantau, pelanggan dapat melihat laporan dan grafik yang dapat diekspor yang merinci atribusi fitur di SageMaker Studio dan mengonfigurasi peringatan di Amazon CloudWatch untuk menerima pemberitahuan jika terdeteksi bahwa nilai atribusi melayang melampaui ambang batas tertentu. 

Untuk mengilustrasikan hal ini dengan situasi tertentu, pertimbangkan skenario hipotetis untuk penerimaan perguruan tinggi. Asumsikan bahwa kami mengamati nilai atribusi fitur (agregat) berikut dalam data pelatihan dan dalam data langsung:

Skenario Hipotesis Penerimaan Perguruan Tinggi


| Fitur | Atribusi dalam data pelatihan | Atribusi dalam data langsung | 
| --- | --- | --- | 
| Skor SAT | 0,70 | 0,10 | 
| IPK | 0,50 | 0,20 | 
| Peringkat kelas | 0,05 | 0,70 | 

Perubahan dari data pelatihan ke data langsung tampak signifikan. Peringkat fitur telah sepenuhnya terbalik. Mirip dengan penyimpangan bias, penyimpangan atribusi fitur mungkin disebabkan oleh perubahan dalam distribusi data langsung dan memerlukan pandangan lebih dekat ke perilaku model pada data langsung. Sekali lagi, langkah pertama dalam skenario ini adalah menaikkan alarm bahwa penyimpangan telah terjadi.

Kami dapat mendeteksi penyimpangan dengan membandingkan bagaimana peringkat fitur individu berubah dari data pelatihan menjadi data langsung. Selain sensitif terhadap perubahan urutan peringkat, kami juga ingin peka terhadap skor atribusi mentah fitur. Misalnya, mengingat dua fitur yang termasuk dalam peringkat dengan jumlah posisi yang sama mulai dari pelatihan ke data langsung, kami ingin lebih sensitif terhadap fitur yang memiliki skor atribusi lebih tinggi dalam data pelatihan. Dengan mempertimbangkan properti ini, kami menggunakan skor Normalized Discounted Cumulative Gain (NDCG) untuk membandingkan peringkat atribusi fitur pelatihan dan data langsung.

Secara khusus, asumsikan kita memiliki yang berikut:
+ *F= [f1,..., fm]* adalah daftar fitur yang diurutkan sehubungan dengan skor atribusi mereka dalam data pelatihan di mana *m* adalah jumlah total fitur. Misalnya, dalam kasus kami, *F* = [Skor SAT, IPK, Peringkat Kelas].
+ *a (f)* adalah fungsi yang mengembalikan skor atribusi fitur pada data pelatihan yang diberikan fitur *f*. Misalnya, *a* (Skor SAT) = 0,70.
+ *F′= [f′1,..., f′m]* adalah daftar fitur yang diurutkan sehubungan dengan skor atribusi mereka dalam data langsung. Misalnya, *F* ′= [Peringkat Kelas, IPK, Skor SAT].

Kemudian, kita dapat menghitung NDCG sebagai:

        ndcg=dcg/idcg

dengan 
+ *DCG = Σ 1 m *a* (*f' i*) /log (i \$112​)*
+ *idCG = Σ 1 m *a* (*f i*) /log 2​ (i \$11)*

DCG kuantitas mengukur apakah fitur dengan atribusi tinggi dalam data pelatihan juga diberi peringkat lebih tinggi dalam atribusi fitur yang dihitung pada data langsung. Kuantitas idCG mengukur *skor ideal* dan itu hanya faktor normalisasi untuk memastikan bahwa kuantitas akhir berada dalam kisaran [0, 1], dengan 1 menjadi nilai terbaik. Nilai NDCG 1 berarti bahwa peringkat atribusi fitur dalam data langsung sama dengan yang ada di data pelatihan. Dalam contoh khusus ini, karena peringkat berubah sedikit, nilai NDCG adalah 0,69.

Di SageMaker Clarify, jika nilai NDCG di bawah 0,90, kami secara otomatis menaikkan peringatan.

## Model Monitor Contoh Notebook
<a name="clarify-model-monitor-sample-notebooks-feature-drift"></a>

SageMaker Clarify memberikan contoh buku catatan berikut yang menunjukkan cara menangkap data inferensi untuk titik akhir waktu nyata, membuat garis dasar untuk memantau bias yang berkembang, dan memeriksa hasilnya: 
+ [Memantau penyimpangan bias dan penyimpangan atribusi fitur Amazon SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker_model_monitor/fairness_and_explainability/SageMaker-Model-Monitor-Fairness-and-Explainability.html) Clarify — Gunakan Monitor Model SageMaker Amazon untuk memantau penyimpangan bias dan fitur penyimpangan atribusi dari waktu ke waktu.

Notebook ini telah diverifikasi untuk berjalan di SageMaker Studio saja. Jika Anda memerlukan petunjuk tentang cara membuka notebook di SageMaker Studio, lihat[Membuat atau Membuka Notebook Amazon SageMaker Studio Classic](notebooks-create-open.md). Jika Anda diminta untuk memilih kernel, pilih **Python 3 (Ilmu Data)**. Topik berikut berisi sorotan dari dua langkah terakhir, dan berisi contoh kode dari contoh buku catatan. 

**Topics**
+ [Model Monitor Contoh Notebook](#clarify-model-monitor-sample-notebooks-feature-drift)
+ [Buat Baseline SHAP untuk Model dalam Produksi](clarify-model-monitor-shap-baseline.md)
+ [Pelanggaran Drift Atribusi Fitur Model](clarify-model-monitor-model-attribution-drift-violations.md)
+ [Parameter untuk Memantau Atribusi Drift](clarify-config-json-monitor-model-explainability-parameters.md)
+ [Jadwal Fitur Atribut Pekerjaan Pemantauan Drift](clarify-model-monitor-feature-attribute-drift-schedule.md)
+ [Periksa Laporan untuk Penyimpangan Atribut Fitur dalam Model Produksi](clarify-feature-attribute-drift-report.md)
+ [CloudWatch Metrik untuk Analisis Drift Fitur](clarify-feature-attribute-drift-cw.md)

# Buat Baseline SHAP untuk Model dalam Produksi
<a name="clarify-model-monitor-shap-baseline"></a>

Penjelasan biasanya kontras, yaitu menjelaskan penyimpangan dari garis dasar. Untuk informasi tentang garis dasar penjelasan, lihat. [Garis Dasar SHAP untuk Penjelasan](clarify-feature-attribute-shap-baselines.md)

Selain memberikan penjelasan untuk inferensi per instance, SageMaker Clarify juga mendukung penjelasan global untuk model ML yang membantu Anda memahami perilaku model secara keseluruhan dalam hal fitur-fiturnya. SageMaker Clarify menghasilkan penjelasan global dari model ML dengan menggabungkan nilai-nilai Shapley pada beberapa contoh. SageMaker Clarify mendukung berbagai cara agregasi berikut, yang dapat Anda gunakan untuk menentukan garis dasar:
+ `mean_abs`— Rata-rata nilai SHAP absolut untuk semua contoh.
+ `median`— Median nilai SHAP untuk semua instance.
+ `mean_sq`— Rata-rata nilai SHAP kuadrat untuk semua instance.

Setelah Anda mengonfigurasi aplikasi untuk menangkap data inferensi transformasi real-time atau batch, tugas pertama untuk memantau drift dalam atribusi fitur adalah membuat baseline untuk dibandingkan. Ini melibatkan konfigurasi input data, grup mana yang sensitif, bagaimana prediksi ditangkap, dan model serta metrik bias pasca-pelatihannya. Maka Anda perlu memulai pekerjaan baselining. Monitor penjelasan model dapat menjelaskan prediksi model yang diterapkan yang menghasilkan kesimpulan dan mendeteksi penyimpangan atribusi fitur secara teratur.

```
model_explainability_monitor = ModelExplainabilityMonitor(
    role=role,
    sagemaker_session=sagemaker_session,
    max_runtime_in_seconds=1800,
)
```

Dalam contoh ini, pekerjaan baselining yang dapat dijelaskan membagikan kumpulan data pengujian dengan pekerjaan dasar bias, sehingga menggunakan pekerjaan yang sama`DataConfig`, dan satu-satunya perbedaan adalah URI keluaran pekerjaan.

```
model_explainability_baselining_job_result_uri = f"{baseline_results_uri}/model_explainability"
model_explainability_data_config = DataConfig(
    s3_data_input_path=validation_dataset,
    s3_output_path=model_explainability_baselining_job_result_uri,
    label=label_header,
    headers=all_headers,
    dataset_type=dataset_type,
)
```

Saat ini penjelasan SageMaker Clarify menawarkan implementasi SHAP yang dapat diskalakan dan efisien, sehingga konfigurasi yang dapat dijelaskan adalah, termasuk yang berikut: SHAPConfig
+ `baseline`— Daftar baris (setidaknya satu) atau URI objek S3 yang akan digunakan sebagai dataset dasar dalam algoritma Kernel SHAP. Formatnya harus sama dengan format dataset. Setiap baris harus berisi hanya fitur columns/values dan menghilangkan kolom/nilai label.
+ `num_samples`— Jumlah sampel yang akan digunakan dalam algoritma Kernel SHAP. Angka ini menentukan ukuran kumpulan data sintetis yang dihasilkan untuk menghitung nilai SHAP.
+ agg\$1method — Metode agregasi untuk nilai SHAP global. Berikut ini adalah nilai yang valid:
  + `mean_abs`— Rata-rata nilai SHAP absolut untuk semua contoh.
  + `median`— Median nilai SHAP untuk semua instance.
  + `mean_sq`— Rata-rata nilai SHAP kuadrat untuk semua instance.
+ `use_logit`— Indikator apakah fungsi logit akan diterapkan pada prediksi model. Default-nya adalah `False`. Jika `use_logit` ya`True`, nilai SHAP akan memiliki unit log-odds.
+ `save_local_shap_values`(bool) — Indikator apakah akan menyimpan nilai SHAP lokal di lokasi output. Default-nya adalah `False`.

```
# Here use the mean value of test dataset as SHAP baseline
test_dataframe = pd.read_csv(test_dataset, header=None)
shap_baseline = [list(test_dataframe.mean())]

shap_config = SHAPConfig(
    baseline=shap_baseline,
    num_samples=100,
    agg_method="mean_abs",
    save_local_shap_values=False,
)
```

Mulai pekerjaan dasar. `model_config`Hal yang sama diperlukan karena pekerjaan dasar penjelasan perlu membuat titik akhir bayangan untuk mendapatkan prediksi untuk kumpulan data sintetis yang dihasilkan.

```
model_explainability_monitor.suggest_baseline(
    data_config=model_explainability_data_config,
    model_config=model_config,
    explainability_config=shap_config,
)
print(f"ModelExplainabilityMonitor baselining job: {model_explainability_monitor.latest_baselining_job_name}")
```

# Pelanggaran Drift Atribusi Fitur Model
<a name="clarify-model-monitor-model-attribution-drift-violations"></a>

Pekerjaan drift atribusi fitur mengevaluasi kendala dasar yang disediakan oleh konfigurasi [dasar](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelExplainabilityJobDefinition.html#sagemaker-CreateModelExplainabilityJobDefinition-request-ModelExplainabilityBaselineConfig) terhadap hasil analisis saat ini. `MonitoringExecution` Jika pelanggaran terdeteksi, pekerjaan mencantumkannya ke file *constraint\$1violations.json* di lokasi keluaran eksekusi, dan menandai status eksekusi sebagai. [Menafsirkan hasil](model-monitor-interpreting-results.md)

Berikut adalah skema file pelanggaran drift atribusi fitur.
+ `label`— Nama label, konfigurasi analisis pekerjaan `label_headers` atau placeholder seperti. `"label0"`
+ `metric_name`— Nama metode analisis eksplainabilitas. Saat ini hanya mendukung `shap`.
+ `constraint_check_type`— Jenis pelanggaran yang dipantau. Saat ini hanya mendukung `feature_attribution_drift_check`.
+ `description`— Pesan deskriptif untuk menjelaskan pelanggaran.

```
{
    "version": "1.0",
    "violations": [{
        "label": "string",
        "metric_name": "string",
        "constraint_check_type": "string",
        "description": "string"
    }]
}
```

*Untuk setiap label di `explanations` bagian tersebut, pekerjaan pemantauan menghitung [skor NdCG](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.ndcg_score.html) dari nilai SHAP globalnya di file batasan dasar dan dalam file hasil analisis pekerjaan (analysis.json).* Jika skor kurang dari 0,9, maka pelanggaran dicatat. Nilai SHAP global gabungan dievaluasi, sehingga tidak ada `“feature”` bidang dalam entri pelanggaran. Output berikut memberikan contoh beberapa pelanggaran yang dicatat.

```
{
    "version": "1.0",
    "violations": [{
        "label": "label0",
        "metric_name": "shap",
        "constraint_check_type": "feature_attribution_drift_check",
        "description": "Feature attribution drift 0.7639720923277322 exceeds threshold 0.9"
    }, {
        "label": "label1",
        "metric_name": "shap",
        "constraint_check_type": "feature_attribution_drift_check",
        "description": "Feature attribution drift 0.7323763972092327 exceeds threshold 0.9"
    }]
}
```

# Parameter untuk Memantau Atribusi Drift
<a name="clarify-config-json-monitor-model-explainability-parameters"></a>

Amazon SageMaker Clarify Explainability Monitor menggunakan kembali subset parameter yang digunakan dalam konfigurasi analisis. [File Konfigurasi Analisis](clarify-processing-job-configure-analysis.md) Parameter berikut harus disediakan dalam file JSON dan jalur harus disediakan dalam `ConfigUri` parameter. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityAppSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityAppSpecification)
+ `"version"`— (Opsional) Versi skema dari file konfigurasi. Jika tidak disediakan, versi terbaru yang didukung digunakan.
+ `"headers"`— (Opsional) Daftar nama fitur dalam dataset. Analisis penjelasan tidak memerlukan label. 
+ `"methods"`— Daftar metode dan parameternya untuk analisis dan laporan. Jika ada bagian yang dihilangkan, maka itu tidak dihitung.
  + `"shap"`- (Opsional) Bagian tentang perhitungan nilai SHAP.
    + `"baseline"`— (Opsional) Daftar baris (setidaknya satu), atau URI objek Amazon Simple Storage Service Amazon S3. Untuk digunakan sebagai dataset dasar (juga dikenal sebagai dataset latar belakang) dalam algoritma Kernel SHAP. Formatnya harus sama dengan format dataset. Setiap baris harus berisi hanya kolom fitur (atau nilai). Sebelum Anda mengirim setiap baris ke model, hilangkan kolom apa pun yang harus dikecualikan.
    + `"num_samples"`— Jumlah sampel yang akan digunakan dalam algoritma Kernel SHAP. Angka ini menentukan ukuran kumpulan data sintetis yang dihasilkan untuk menghitung nilai SHAP. Jika tidak disediakan, maka pekerjaan SageMaker Clarify memilih nilai berdasarkan jumlah fitur.
    + `"agg_method"`— Metode agregasi untuk nilai SHAP global. Nilai yang valid adalah sebagai berikut:
      + `"mean_abs"`— Rata-rata nilai SHAP absolut untuk semua contoh.
      + `"median"`— Median nilai SHAP untuk semua instance.
      + `"mean_sq"`— Rata-rata nilai SHAP kuadrat untuk semua instance.
    + `"use_logit"`— (Opsional) Nilai Boolean untuk menunjukkan apakah fungsi logit akan diterapkan pada prediksi model. Jika `"use_logit"` ya`true`, maka nilai SHAP memiliki unit log-odds. Nilai default-nya adalah `false`. 
    + `"save_local_shap_values"`— (Opsional) Nilai Boolean untuk menunjukkan apakah nilai SHAP lokal akan disimpan di lokasi output. Gunakan `true` untuk menyelamatkan mereka. Gunakan `false` untuk tidak menyelamatkan mereka. Nilai default-nya `false`.
+ `"predictor"`— (Opsional untuk titik akhir real-time, diperlukan untuk transformasi batch) Bagian tentang parameter model, diperlukan jika `"shap"` dan `"post_training_bias"` bagian ada.
  + `"model_name"`— Nama model yang dibuat oleh `CreateModel` API, dengan mode kontainer sebagai`SingleModel`.
  + `"instance_type"`— Jenis instance untuk titik akhir bayangan.
  + `"initial_instance_count"`— Jumlah instance untuk titik akhir bayangan.
  + `"content_type"`— (Opsional) Format input model yang akan digunakan untuk mendapatkan kesimpulan dengan titik akhir bayangan. Nilai yang valid adalah `"text/csv"` untuk CSV, `"application/jsonlines"` untuk JSON Lines, untuk Apache Parquet, dan `application/x-parquet` `application/x-image` untuk memungkinkan penjelasan Computer Vision. Nilai defaultnya sama dengan `dataset_type` formatnya.
  + `"accept_type"`— (Opsional) Format *keluaran* model yang akan digunakan untuk mendapatkan kesimpulan dengan titik akhir bayangan. Nilai yang valid adalah `"text/csv"` untuk CSV, `"application/jsonlines"` untuk JSON Lines. Jika dihilangkan, SageMaker Clarify menggunakan tipe data respons dari data yang diambil.
  + `"content_template"`— (Opsional) String template yang digunakan untuk membangun input model dari instance dataset. Ini hanya digunakan ketika `"content_type"` ada`"application/jsonlines"`. Template seharusnya hanya memiliki satu placeholder`$features`, yang digantikan oleh daftar fitur saat runtime. Misalnya, diberikan`"content_template":"{\"myfeatures\":$features}"`, jika sebuah instance (tidak ada label)`1,2,3`, maka input model menjadi JSON Lines`'{"myfeatures":[1,2,3]}'`.
  + `"label_headers"`— (Opsional) Daftar nilai yang `"label"` diambil dalam dataset. Mengaitkan skor yang dikembalikan oleh titik akhir model atau pekerjaan transformasi batch dengan nilai label yang sesuai. Jika disediakan, maka laporan analisis menggunakan header alih-alih placeholder seperti. `“label0”`

Parameter lain harus disediakan di `EndpointInput` (untuk titik akhir waktu nyata) atau `BatchTransformInput` (untuk pekerjaan transformasi batch) dari [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityJobInput](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelExplainabilityJobInput)API.
+ `FeaturesAttribute`— Parameter ini diperlukan jika format data input pekerjaan endpoint atau batch. `"application/jsonlines"` Ini JMESPath digunakan untuk menemukan kolom fitur jika format dataset adalah JSON Lines.
+ `ProbabilityAttribute`— Indeks atau JMESPath lokasi dalam output model untuk probabilitas. Jika keluaran model adalah JSON Lines dengan daftar label dan probabilitas, misalnya, maka label yang sesuai dengan probabilitas maksimum dipilih untuk perhitungan bias.

## Contoh File Konfigurasi JSON untuk Kumpulan Data Garis CSV dan JSON
<a name="clarify-config-json-monitor-model-explainability-parameters-examples"></a>

Berikut adalah contoh file JSON yang digunakan untuk mengonfigurasi kumpulan data CSV dan JSON Lines untuk memantaunya untuk penyimpangan atribusi fitur.

**Topics**
+ [Kumpulan Data CSV](#clarify-config-json-monitor-model-explainability-parameters-example-csv)
+ [Kumpulan Data JSON Lines](#clarify-config-json-monitor-model-explainability-parameters-example-jsonlines)

### Kumpulan Data CSV
<a name="clarify-config-json-monitor-model-explainability-parameters-example-csv"></a>

Pertimbangkan kumpulan data yang memiliki tiga kolom fitur numerik, seperti pada contoh berikut.

```
0.5814568701544718, 0.6651538910132964, 0.3138080342665499
0.6711642728531724, 0.7466687034026017, 0.1215477472819713
0.0453256543003371, 0.6377430803264152, 0.3558625219713576
0.4785191813363956, 0.0265841045263860, 0.0376935084990697
```

Asumsikan bahwa keluaran model memiliki dua kolom, di mana yang pertama adalah label yang diprediksi dan yang kedua adalah probabilitas, seperti pada contoh berikut.

```
1, 0.5385257417814224
```

Contoh file konfigurasi JSON berikut menunjukkan bagaimana kumpulan data CSV ini dapat dikonfigurasi.

```
{
                    
    "headers": [
        "feature_1",
        "feature_2",
        "feature_3"
    ],
    "methods": {
        "shap": {
            "baseline": [
                [0.4441164946610942, 0.5190374448171748, 0.20722795300473712]
            ],
            "num_samples": 100,
            "agg_method": "mean_abs"
        }
    },
    "predictor": {
        "model_name": "my_model",
        "instance_type": "ml.m5.xlarge",
        "initial_instance_count": 1
    }
}
```

Label yang diprediksi dipilih oleh `"ProbabilityAttribute"` parameter. Penomoran berbasis nol digunakan, jadi 1 menunjukkan kolom kedua dari output model.

```
"EndpointInput": {
    ...
    "ProbabilityAttribute": 1
    ...
}
```

### Kumpulan Data JSON Lines
<a name="clarify-config-json-monitor-model-explainability-parameters-example-jsonlines"></a>

Pertimbangkan kumpulan data yang memiliki empat kolom fitur dan satu kolom label, di mana fitur pertama dan labelnya adalah biner, seperti pada contoh berikut.

```
{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0}
{"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1}
{"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1}
{"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}
```

Masukan model sama dengan format dataset, dan output modelnya adalah JSON Lines, seperti pada contoh berikut.

```
{"predicted_label":1, "probability":0.5385257417814224}
```

Dalam contoh berikut, file konfigurasi JSON menunjukkan bagaimana dataset JSON Lines ini dapat dikonfigurasi.

```
{
    "headers": [
        "feature_1",
        "feature_2",
        "feature_3"
    ],
    "methods": {
        "shap": {
            "baseline": [
                {"features":[0.4441164946610942, 0.5190374448171748, 0.20722795300473712]}
            ],
            "num_samples": 100,
            "agg_method": "mean_abs"
        }
    },
    "predictor": {
        "model_name": "my_model",
        "instance_type": "ml.m5.xlarge",
        "initial_instance_count": 1,
        "content_template":"{\"features\":$features}"
    }
}
```

Kemudian nilai `"features"` parameter di `EndpointInput` (untuk titik akhir waktu nyata) atau `BatchTransformInput` (untuk pekerjaan transformasi batch) digunakan untuk menemukan fitur dalam kumpulan data, dan nilai `"probability"` parameter memilih nilai probabilitas dari keluaran model.

```
"EndpointInput": {
    ...
    "FeaturesAttribute": "features",
    "ProbabilityAttribute": "probability",
    ...
}
```

# Jadwal Fitur Atribut Pekerjaan Pemantauan Drift
<a name="clarify-model-monitor-feature-attribute-drift-schedule"></a>

Setelah Anda membuat baseline SHAP Anda, Anda dapat memanggil `create_monitoring_schedule()` metode instance `ModelExplainabilityMonitor` kelas Anda untuk menjadwalkan monitor penjelasan model per jam. Bagian berikut menunjukkan kepada Anda cara membuat monitor penjelasan model untuk model yang diterapkan ke titik akhir waktu nyata serta untuk pekerjaan transformasi batch.

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

Jika pekerjaan baselining telah dikirimkan, monitor secara otomatis mengambil konfigurasi analisis dari pekerjaan baselining. Namun, jika Anda melewati langkah dasar atau kumpulan data pengambilan memiliki sifat yang berbeda dari kumpulan data pelatihan, Anda harus menyediakan konfigurasi analisis. `ModelConfig`diperlukan oleh karena `ExplainabilityAnalysisConfig` alasan yang sama yang diperlukan untuk pekerjaan baselining. Perhatikan bahwa hanya fitur yang diperlukan untuk menghitung atribusi fitur, jadi Anda harus mengecualikan pelabelan Ground Truth.

## Pemantauan drift atribusi fitur untuk model yang digunakan ke titik akhir waktu nyata
<a name="model-monitor-explain-quality-rt"></a>

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

```
from sagemaker.model_monitor import CronExpressionGenerator

model_exp_model_monitor = ModelExplainabilityMonitor(
   role=sagemaker.get_execution_role(),
   ... 
)

schedule = model_exp_model_monitor.create_monitoring_schedule(
   monitor_schedule_name=schedule_name,
   post_analytics_processor_script=s3_code_postprocessor_uri,
   output_s3_uri=s3_report_path,
   statistics=model_exp_model_monitor.baseline_statistics(),
   constraints=model_exp_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",
    )
)
```

## Fitur pemantauan drift atribusi untuk pekerjaan transformasi batch
<a name="model-monitor-explain-quality-bt"></a>

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

```
from sagemaker.model_monitor import CronExpressionGenerator

model_exp_model_monitor = ModelExplainabilityMonitor(
   role=sagemaker.get_execution_role(),
   ... 
)

schedule = model_exp_model_monitor.create_monitoring_schedule(
   monitor_schedule_name=schedule_name,
   post_analytics_processor_script=s3_code_postprocessor_uri,
   output_s3_uri=s3_report_path,
   statistics=model_exp_model_monitor.baseline_statistics(),
   constraints=model_exp_model_monitor.suggested_constraints(),
   schedule_cron_expression=CronExpressionGenerator.hourly(),
   enable_cloudwatch_metrics=True,
   batch_transform_input=BatchTransformInput(
        destination="opt/ml/processing/data",
        model_name="batch-fraud-detection-model",
        input_manifests_s3_uri="s3://amzn-s3-demo-bucket/batch-fraud-detection/on-schedule-monitoring/in/",
        excludeFeatures="0",
   )
)
```

# Periksa Laporan untuk Penyimpangan Atribut Fitur dalam Model Produksi
<a name="clarify-feature-attribute-drift-report"></a>

Setelah jadwal yang Anda atur dimulai secara default, Anda harus menunggu eksekusi pertamanya dimulai, dan kemudian menghentikan jadwal untuk menghindari biaya yang dikenakan.

Untuk memeriksa laporan, gunakan kode berikut:

```
schedule_desc = model_explainability_monitor.describe_schedule()
execution_summary = schedule_desc.get("LastMonitoringExecutionSummary")
if execution_summary and execution_summary["MonitoringExecutionStatus"] in ["Completed", "CompletedWithViolations"]:
    last_model_explainability_monitor_execution = model_explainability_monitor.list_executions()[-1]
    last_model_explainability_monitor_execution_report_uri = last_model_explainability_monitor_execution.output.destination
    print(f'Report URI: {last_model_explainability_monitor_execution_report_uri}')
    last_model_explainability_monitor_execution_report_files = sorted(S3Downloader.list(last_model_explainability_monitor_execution_report_uri))
    print("Found Report Files:")
    print("\n ".join(last_model_explainability_monitor_execution_report_files))
else:
    last_model_explainability_monitor_execution = None
    print("====STOP==== \n No completed executions to inspect further. Please wait till an execution completes or investigate previously reported failures.")
```

 Jika ada pelanggaran dibandingkan dengan baseline, mereka tercantum di sini:

```
if last_model_explainability_monitor_execution:
    model_explainability_violations = last_model_explainability_monitor_execution.constraint_violations()
    if model_explainability_violations:
        print(model_explainability_violations.body_dict)
```

Jika model Anda diterapkan ke titik akhir real-time, Anda dapat melihat visualisasi di SageMaker Studio hasil analisis dan CloudWatch metrik dengan memilih tab Endpoints, lalu mengklik dua **kali titik akhir**.

# CloudWatch Metrik untuk Analisis Drift Fitur
<a name="clarify-feature-attribute-drift-cw"></a>

Panduan ini menunjukkan CloudWatch metrik dan propertinya yang dapat Anda gunakan untuk analisis drift atribut fitur di SageMaker Clarify. Pekerjaan pemantauan drift atribut fitur menghitung dan menerbitkan dua jenis metrik:
+ Nilai SHAP global dari setiap fitur.
**catatan**  
Nama metrik ini menambahkan nama fitur yang disediakan oleh konfigurasi analisis pekerjaan ke`feature_`. Misalnya, `feature_X` adalah nilai SHAP global untuk fitur`X`.
+ `ExpectedValue`Dari metrik.

Metrik ini dipublikasikan ke CloudWatch namespace berikut:
+ Untuk titik akhir waktu nyata: `aws/sagemaker/Endpoints/explainability-metrics`
+ Untuk pekerjaan transformasi batch: `aws/sagemaker/ModelMonitoring/explainability-metrics`

Setiap metrik memiliki sifat sebagai berikut:
+ `Endpoint`: Nama titik akhir yang dipantau, jika berlaku.
+ `MonitoringSchedule`: Nama jadwal untuk pekerjaan pemantauan. 
+ `ExplainabilityMethod`: Metode yang digunakan untuk menghitung nilai-nilai Shapley. Pilih `KernelShap`.
+ `Label`: Nama yang disediakan oleh konfigurasi analisis pekerjaan`label_headers`, atau placeholder seperti. `label0`
+ `ValueType`: Jenis nilai yang dikembalikan oleh metrik. Pilih salah satu `GlobalShapValues` atau`ExpectedValue`.

Untuk menghentikan pekerjaan pemantauan dari penerbitan metrik, atur `publish_cloudwatch_metrics` ke `Disabled` dalam `Environment` peta definisi pekerjaan [penjelasan model.](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModelExplainabilityJobDefinition.html)