Buat SHAP Baseline untuk Model dalam Produksi - Amazon SageMaker

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

Buat SHAP Baseline untuk Model dalam Produksi

Penjelasan biasanya kontras, yaitu, mereka menjelaskan penyimpangan dari garis dasar. Untuk informasi tentang garis dasar penjelasan, lihat. SHAPBaseline untuk Keterjelasan

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 SHAP nilai absolut untuk semua contoh.

  • median— Median SHAP nilai untuk semua contoh.

  • mean_sq— Rata-rata SHAP nilai kuadrat untuk semua contoh.

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 berbagi kumpulan data pengujian dengan pekerjaan dasar bias, sehingga menggunakan yang samaDataConfig, dan satu-satunya perbedaan adalah output pekerjaan. URI

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 yang skalabel dan efisienSHAP, sehingga konfigurasi yang dapat dijelaskan adalahSHAPConfig, termasuk yang berikut:

  • baseline— Daftar baris (setidaknya satu) atau objek URI S3 yang akan digunakan sebagai dataset dasar dalam algoritma Kernel. SHAP Formatnya harus sama dengan format dataset. Setiap baris harus berisi hanya kolom/nilai fitur dan menghilangkan kolom/nilai label.

  • num_samples— Jumlah sampel yang akan digunakan dalam SHAP algoritma Kernel. Angka ini menentukan ukuran dataset sintetis yang dihasilkan untuk menghitung nilainya. SHAP

  • agg_method — Metode agregasi untuk nilai global. SHAP Berikut ini adalah nilai yang valid:

    • mean_abs— Rata-rata SHAP nilai absolut untuk semua contoh.

    • median— Median SHAP nilai untuk semua contoh.

    • mean_sq— Rata-rata SHAP nilai kuadrat untuk semua contoh.

  • use_logit— Indikator apakah fungsi logit akan diterapkan pada prediksi model. Default-nya adalah False. Jika use_logit yaTrue, SHAP nilainya akan memiliki unit log-odds.

  • save_local_shap_values(bool) — Indikator apakah akan menyimpan SHAP nilai 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_configHal 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}")