Konfigurasikan Parameter untuk Memantau Bias Drift - Amazon SageMaker

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

Konfigurasikan Parameter untuk Memantau Bias Drift

Amazon SageMaker Clarify bias monitoring menggunakan kembali subset parameter yang digunakan dalam konfigurasi analisis. Konfigurasikan Analisis Setelah menjelaskan parameter konfigurasi, topik ini memberikan contoh file JSON. File-file ini digunakan untuk mengonfigurasi kumpulan data CSV dan JSON Lines untuk memantau penyimpangan bias saat model pembelajaran mesin sedang diproduksi.

Parameter berikut harus disediakan dalam file JSON. Jalur ke file JSON ini harus disediakan dalam ConfigUri parameter ModelBiasAppSpecificationAPI.

  • "version"— (Opsional) Versi skema dari file konfigurasi. Jika tidak disediakan, versi terbaru yang didukung digunakan.

  • "headers"— (Opsional) Daftar nama kolom dalam dataset. Jika dataset_type "label" adalah "application/jsonlines" dan ditentukan, maka header terakhir menjadi header kolom label.

  • "label"— (Opsional) Atribut target untuk model yang akan digunakan untuk metrik bias. Ditentukan baik sebagai nama kolom, atau indeks (jika format dataset CSV), atau sebagai JMESPath (jika format dataset adalah JSON Lines).

  • "label_values_or_threshold"— (Opsional) Daftar nilai label atau ambang batas. Menunjukkan hasil positif yang digunakan untuk metrik bias.

  • "facet"— (Opsional) Daftar fitur yang merupakan atribut sensitif, disebut sebagai aspek. Segi digunakan untuk metrik bias dalam bentuk pasangan, dan meliputi yang berikut:

    • "name_or_index"— Nama atau indeks kolom facet.

    • "value_or_threshold"— (Opsional) Daftar nilai atau ambang batas yang dapat diambil oleh kolom facet. Menunjukkan kelompok sensitif, seperti kelompok yang digunakan untuk mengukur bias terhadap. Jika tidak disediakan, metrik bias dihitung sebagai satu grup untuk setiap nilai unik (bukan semua nilai). Jika kolom faset adalah numerik, nilai ambang ini diterapkan sebagai batas bawah untuk memilih grup sensitif.

  • "group_variable"— (Opsional) Nama kolom atau indeks untuk menunjukkan variabel grup yang akan digunakan untuk metrik bias Disparitas Demografis Bersyarat.

Parameter lain harus disediakan di EndpointInput (untuk titik akhir waktu nyata) atau BatchTransformInput (untuk pekerjaan transformasi batch) dari ModelBiasJobInputAPI.

  • FeaturesAttribute- Parameter ini diperlukan jika format data input titik akhir. "application/jsonlines" Ini adalah JMESPath yang digunakan untuk menemukan kolom fitur jika format dataset adalah JSON Lines.

  • InferenceAttribute— Lokasi indeks atau JMESPath dalam keluaran model untuk atribut target yang akan digunakan untuk dipantau bias menggunakan metrik bias. Jika tidak disediakan dalam accept_type kasus CSV, maka diasumsikan bahwa output model adalah nilai numerik tunggal yang sesuai dengan skor atau probabilitas.

  • ProbabilityAttribute— Indeks atau lokasi JMESPath 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.

  • ProbabilityThresholdAttribute— (Opsional) Nilai float untuk menunjukkan ambang batas untuk memilih label biner, dalam kasus klasifikasi biner. Nilai defaultnya adalah 0,5.

Contoh File Konfigurasi JSON untuk Kumpulan Data CSV dan JSON Lines

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

Kumpulan Data CSV

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

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

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

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

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "target", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

Label yang diprediksi dipilih oleh "InferenceAttribute" parameter. Penomoran berbasis nol digunakan, jadi 0 menunjukkan kolom pertama dari output model,

"EndpointInput": { ... "InferenceAttribute": 0 ... }

Atau, Anda dapat menggunakan parameter yang berbeda untuk mengubah nilai probabilitas menjadi label prediksi biner. Penomoran berbasis nol digunakan: 1 menunjukkan kolom kedua; ProbabilityThresholdAttribute nilai 0,6 menunjukkan bahwa probabilitas lebih besar dari 0,6 memprediksi label biner sebagai 1.

"EndpointInput": { ... "ProbabilityAttribute": 1, "ProbabilityThresholdAttribute": 0.6 ... }

Kumpulan Data JSON Lines

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}

Asumsikan bahwa output model memiliki dua kolom, di mana yang pertama adalah label yang diprediksi dan yang kedua adalah probabilitas.

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

File konfigurasi JSON berikut menunjukkan contoh bagaimana dataset JSON Lines ini dapat dikonfigurasi.

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "label", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

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 "predicted_label" parameter memilih label yang diprediksi dari keluaran model.

"EndpointInput": { ... "FeaturesAttribute": "features", "InferenceAttribute": "predicted_label" ... }

Atau, Anda dapat mengonversi nilai probabilitas menjadi label biner yang diprediksi menggunakan nilai ProbabilityThresholdAttribute parameter. Nilai 0,6, misalnya, menunjukkan bahwa probabilitas lebih besar dari 0,6 memprediksi label biner sebagai 1.

"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", "ProbabilityThresholdAttribute": 0.6 ... }