Saat bekerja dengan model yang dilatih khusus, Anda dapat mengonfigurasi parameter tertentu untuk meningkatkan kualitas penjelasan. Panduan ini menjelaskan cara memeriksa penjelasan yang Anda dapatkan dari Vertex Explainable AI untuk menemukan error, dan menjelaskan cara menyesuaikan konfigurasi Vertex Explainable AI untuk mengurangi error.
Jika ingin menggunakan Vertex Explainable AI dengan model tabel AutoML, Anda tidak perlu melakukan konfigurasi apa pun; Vertex AI akan otomatis mengonfigurasi model untuk Vertex Explainable AI. Lewati dokumen ini dan baca Mendapatkan penjelasan.
Metode atribusi fitur Vertex Explainable AI didasarkan pada varian nilai Shapley. Karena nilai Shapley sangat mahal secara komputasi, Vertex Explainable AI hanya memberikan perkiraan, bukan nilai tepatnya.
Anda dapat mengurangi error perkiraan dan mendapatkan nilai yang mendekati nilai yang tepat dengan mengubah input berikut:
- Meningkatkan jumlah langkah integral atau jumlah jalur.
- Mengubah dasar pengukuran input yang Anda pilih.
- Menambahkan lebih banyak dasar pengukuran input. Dengan gradien terintegrasi dan metode XRAI, penggunaan dasar pengukuran tambahan akan meningkatkan latensi. Menggunakan dasar pengukuran tambahan dengan metode Shapley yang dijadikan sampel tidak akan meningkatkan latensi.
Memeriksa penjelasan untuk menemukan error
Setelah meminta dan menerima penjelasan dari Vertex Explainable AI, Anda dapat memeriksa penjelasan untuk mengetahui kesalahan perkiraan. Jika penjelasan memiliki kesalahan perkiraan yang tinggi, penjelasan mungkin tidak dapat diandalkan. Bagian ini menjelaskan beberapa cara untuk memeriksa error.
Periksa kolom approximationError
Untuk setiap
Attribution
,
Vertex Explainable AI akan menampilkan error perkiraan di kolom approximationError
. Jika
error perkiraan Anda melebihi 0,05, sebaiknya sesuaikan konfigurasi
Vertex Explainable AI.
Untuk teknik gradien terintegrasi, kita menghitung error perkiraan dengan membandingkan jumlah atribusi fitur dengan selisih antara prediksi nilai untuk skor input dan skor dasar pengukuran. Untuk teknik gradien terintegrasi, atribusi fitur adalah perkiraan integral nilai gradien antara dasar pengukuran dan input. Kita menggunakan aturan kuadrat Gaussian untuk memperkirakan integral karena lebih akurat jika dibandingkan metode Riemann Sum.
Memeriksa selisih antara prediksi dan output dasar pengukuran
Untuk setiap
Attribution
,
Vertex Explainable AI akan menampilkan instanceOutputValue
, yang mewakili bagian dari
output prediksi yang menjadi tujuan atribusi fitur, dan
baselineOutputValue
, yang mewakili bagian output prediksi
ini jika prediksi dilakukan di dasar pengukuran input, bukan
instance input sebenarnya.
Jika selisih antara instanceOutputValue
dan baselineOutputValue
kurang dari 0,05 untuk setiap atribusi, Anda mungkin perlu mengubah
dasar pengukuran input.
Menyesuaikan konfigurasi Anda
Bagian berikut menjelaskan cara menyesuaikan konfigurasi Vertex Explainable AI
untuk mengurangi error. Untuk melakukan perubahan berikut, Anda harusmengonfigurasi
Model
baru dengan
ExplanationSpec
atauganti
ExplanationSpec
dari aplikasi
Model
dengan men-deploy-nya ulang ke Endpoint
atau dengan mendapatkan
prediksi batch baru.
Meningkatkan langkah atau jalur
Untuk mengurangi error perkiraan, Anda dapat meningkatkan:
- jumlah jalur untuk sampel Shapley
(
SampledShapleyAttribution.pathCount
) - jumlah langkah integral untuk gradien terintegrasi
(
IntegratedGradientsAttribution.stepCount
) atau XRAI (XraiAttribution.stepCount
)
Menyesuaikan dasar pengukuran
Dasar pengukuran input mewakili fitur yang tidak menyediakan informasi tambahan. Dasar pengukuran untuk model tabel dapat berupa nilai median, minimum, maksimum, atau acak yang terkait dengan data pelatihan Anda. Demikian pula, untuk model gambar, dasar pengukuran Anda dapat berupa gambar hitam, gambar putih, gambar abu-abu, atau gambar dengan nilai piksel acak.
Saat mengonfigurasi Vertex Explainable AI, Anda dapat menentukan
kolom input_baselines
secara opsional.
Jika tidak, Vertex AI akan memilih dasar pengukuran input untuk Anda. Jika mengalami
masalah yang dijelaskan di bagian sebelumnya dalam panduan ini, Anda
mungkin perlu menyesuaikan input_baselines
untuk setiap input Model
.
Secara umum:
- Memulai dengan satu dasar pengukuran yang mewakili nilai median.
- Ubah dasar pengukuran ini menjadi dasar yang mewakili nilai acak.
- Coba dua dasar pengukuran, yang masing-masing mewakili nilai minimum dan maksimum.
- Tambahkan dasar pengukuran lain yang mewakili nilai acak.
Contoh untuk data tabulasi
Kode Python berikut membuat pesan ExplanationMetadata
untuk model TensorFlow hipotetis
yang dilatih dengan data tabulasi.
Perhatikan bahwa input_baselines
adalah daftar tempat Anda dapat menentukan beberapa
dasar pengukuran. Contoh ini hanya menetapkan satu dasar pengukuran. Dasar pengukuran adalah daftar nilai median
untuk data pelatihan (dalam contoh ini train_data
).
explanation_metadata = {
"inputs": {
"FEATURE_NAME": {
"input_tensor_name": "INPUT_TENSOR_NAME",
"input_baselines": [train_data.median().values.tolist()],
"encoding": "bag_of_features",
"index_feature_mapping": train_data.columns.tolist()
}
},
"outputs": {
"OUTPUT_NAME": {
"output_tensor_name": "OUTPUT_TENSOR_NAME"
}
}
}
Lihat Mengonfigurasi penjelasan untuk model yang dilatih
khusus guna mendapatkan konteks selengkapnya tentang cara menggunakan
ExplanationMetadata
ini
Untuk menetapkan dua dasar pengukuran yang mewakili nilai minimum dan maksimum, tetapkan
input_baselines
sebagai berikut:
[train_data.min().values.tolist(), train_data.max().values.tolist()]
Contoh untuk data gambar
Kode Python berikut membuat pesan ExplanationMetadata
untuk model TensorFlow hipotetis
yang dilatih dengan data gambar.
Perhatikan bahwa input_baselines
adalah daftar tempat Anda dapat menentukan beberapa
dasar pengukuran. Contoh ini hanya menetapkan satu dasar pengukuran. Dasar pengukuran adalah daftar
nilai acak. Menggunakan nilai acak untuk dasar pengukuran gambar adalah pendekatan yang baik jika
gambar dalam set data pelatihan berisi banyak warna hitam putih.
Jika tidak, tetapkan input_baselines
ke [0, 1]
untuk mewakili gambar hitam putih.
random_baseline = np.random.rand(192,192,3)
explanation_metadata = {
"inputs": {
"FEATURE_NAME": {
"input_tensor_name": "INPUT_TENSOR_NAME",
"modality": "image",
"input_baselines": [random_baseline.tolist()]
}
},
"outputs": {
"OUTPUT_NAME": {
"output_tensor_name": "OUTPUT_TENSOR_NAME"
}
}
}
Langkah selanjutnya
- Ikuti panduan mengonfigurasi penjelasan untuk menerapkan perubahan konfigurasi yang dijelaskan di halaman ini.