Parameter untuk Memantau Atribusi Drift - Amazon SageMaker

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

Parameter untuk Memantau Atribusi Drift

Amazon SageMaker Clarify Explainability Monitor menggunakan kembali subset parameter yang digunakan dalam konfigurasi analisis. File Konfigurasi Analisis Parameter berikut harus disediakan dalam JSON file dan jalur harus disediakan dalam ConfigUri parameter 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 SHAP nilai.

      • "baseline"— (Opsional) Daftar baris (setidaknya satu), atau objek Amazon Simple Storage Service Amazon S3. URI 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 SHAP algoritma Kernel. Angka ini menentukan ukuran dataset sintetis yang dihasilkan untuk menghitung nilainya. SHAP Jika tidak disediakan, maka pekerjaan SageMaker Clarify memilih nilai berdasarkan jumlah fitur.

      • "agg_method"— Metode agregasi untuk SHAP nilai global. Nilai yang valid adalah sebagai berikut:

        • "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"— (Opsional) Nilai Boolean untuk menunjukkan apakah fungsi logit akan diterapkan pada prediksi model. Jika "use_logit" yatrue, maka SHAP nilainya memiliki unit log-odds. Nilai default-nya adalah false.

      • "save_local_shap_values"— (Opsional) Nilai Boolean untuk menunjukkan apakah SHAP nilai lokal akan disimpan di lokasi output. Gunakan true untuk menyelamatkan mereka. Gunakan false untuk tidak menyelamatkan mereka. Default-nya adalah 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 CreateModelAPI, dengan mode kontainer sebagaiSingleModel.

    • "instance_type"— Jenis instance untuk titik akhir bayangan.

    • "initial_instance_count"— Jumlah instans 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" untukCSV, "application/jsonlines" untuk JSON Lines, application/x-parquet untuk Apache Parquet, dan 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" untukCSV, "application/jsonlines" untuk JSON Garis. 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 masukan model menjadi JSON Garis'{"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 ModelExplainabilityJobInputAPI.

  • 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 Garis.

  • ProbabilityAttribute— Indeks atau JMESPath lokasi dalam output model untuk probabilitas. Jika keluaran model adalah JSON Garis dengan daftar label dan probabilitas, misalnya, maka label yang sesuai dengan probabilitas maksimum dipilih untuk perhitungan bias.

Contoh File JSON Konfigurasi untuk CSV dan Kumpulan Data JSON Garis

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

CSVDataset

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 JSON konfigurasi berikut menunjukkan bagaimana CSV dataset 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 ... }

JSONKumpulan Data Garis

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 Garis, seperti pada contoh berikut.

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

Dalam contoh berikut, file JSON konfigurasi 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", ... }