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 adalahFalse
. Jikause_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 adalahFalse
.
# 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}")