Panduan ini menjelaskan cara mendapatkan penjelasan dari resource Model
di Vertex AI. Anda bisa mendapatkan penjelasan dengan dua cara:
Penjelasan online: Permintaan sinkron ke Vertex AI API, mirip dengan prediksi online yang menampilkan prediksi dengan atribusi fitur.
Penjelasan batch: Permintaan asinkron ke Vertex AI API yang menampilkan prediksi dengan atribusi fitur. Penjelasan batch merupakan bagian opsional dari permintaan prediksi batch.
Sebelum memulai
Sebelum mendapatkan penjelasan, Anda harus melakukan langkah berikut:
Langkah ini berbeda-beda, bergantung pada jenis model machine learning yang Anda gunakan:
Jika Anda ingin mendapatkan penjelasan dari model yang dilatih khusus, ikuti Mengonfigurasi penjelasan berbasis contoh atau Mengonfigurasi penjelasan berbasis fitur untuk membuat
Model
yang mendukung Vertex Explainable AI.Jika Anda ingin mendapatkan penjelasan dari model klasifikasi atau regresi tabular AutoML, latih model AutoML berdasarkan set data tabel. Tidak diperlukan konfigurasi khusus untuk menggunakan Vertex Explainable AI. Penjelasan untuk model perkiraan tidak didukung.
Jika Anda ingin mendapatkan penjelasan dari model klasifikasi gambar AutoML, latih model AutoML berdasarkan set data gambar dan aktifkan penjelasan saat Anda men-deploy model tersebut. Tidak diperlukan konfigurasi khusus untuk menggunakan Vertex Explainable AI. Penjelasan untuk model deteksi objek tidak didukung.
Jika Anda ingin mendapatkan penjelasan online, deploy
Model
yang Anda buat pada langkah sebelumnya ke resourceEndpoint
.
Mendapatkan penjelasan online
Untuk mendapatkan penjelasan online, ikuti sebagian besar langkah yang sama seperti yang Anda lakukan untuk mendapatkan prediksi online. Namun, alih-alih mengirim permintaan projects.locations.endpoints.predict
ke Vertex AI API, kirim permintaan projects.locations.endpoints.explain
.
Panduan berikut memberikan petunjuk terperinci untuk menyiapkan dan mengirim permintaan penjelasan online:
Untuk model klasifikasi gambar AutoML, baca Mendapatkan prediksi online dari model AutoML.
Untuk model klasifikasi dan regresi tabular AutoML, baca Mendapatkan prediksi online dari model AutoML.
Untuk model yang dilatih khusus, baca Mendapatkan prediksi online dari model yang dilatih khusus.
Mendapatkan penjelasan batch
Hanya penjelasan batch berbasis fitur yang didukung; Anda tidak bisa mendapatkan penjelasan batch berbasis contoh.
Untuk mendapatkan penjelasan batch, tetapkan kolom generateExplanation
ke true
saat Anda membuat tugas prediksi batch.
Untuk petunjuk terperinci tentang menyiapkan dan membuat tugas prediksi batch, baca Mendapatkan prediksi batch.
Mendapatkan penjelasan secara lokal di notebook Vertex AI Workbench yang dikelola pengguna
Di notebook Vertex AI Workbench yang dikelola pengguna, Anda dapat menghasilkan penjelasan untuk model yang dilatih khusus dengan menjalankan Vertex Explainable AI dalam kernel atau runtime lokal notebook Anda tanpa men-deploy model ke Vertex AI untuk mendapatkan penjelasan. Dengan menggunakan penjelasan lokal, Anda dapat mencoba berbagai setelan Vertex Explainable AI tanpa menyesuaikan deployment model Vertex AI untuk setiap perubahan. Hal ini mempermudah dan mempercepat pengevaluasian dampak dari menggunakan baseline yang berbeda, mencoba berbagai setelan visualisasi untuk penjelasan, atau menyesuaikan jumlah langkah atau jalur yang digunakan untuk algoritma.
Penjelasan lokal hanya tersedia di notebook yang dikelola pengguna. Oleh karena itu, fitur ini tidak berfungsi di notebook Jupyter yang dijalankan di luar instance notebook yang dikelola pengguna.
Untuk menghasilkan penjelasan secara lokal di instance notebook yang dikelola pengguna:
- Membuat instance notebook yang dikelola pengguna
- Luncurkan lingkungan JupyterLab dari instance notebook yang dikelola pengguna, lalu buat atau impor notebook.
- Simpan artefak model ke lingkungan lokal notebook Anda, atau bucket Cloud Storage.
- Buat dan simpan metadata untuk mendeskripsikan model dan mengonfigurasi permintaan penjelasan Anda.
Dapatkan Penjelasan Serentak
Explainable AI mendukung penjelasan serentak. Dengan penjelasan serentak, Anda dapat meminta penjelasan berbasis fitur dan berbasis contoh dari endpoint model yang di-deploy yang sama tanpa harus men-deploy model secara terpisah untuk setiap metode penjelasan.
Untuk mendapatkan penjelasan serentak, upload model Anda dan konfigurasikan penjelasan berbasis contoh atau berbasis fitur. Kemudian, deploy model seperti biasa.
Setelah model di-deploy, Anda dapat meminta penjelasan yang dikonfigurasi seperti biasa.
Selain itu, Anda dapat meminta penjelasan serentak dengan menentukan concurrent_explanation_spec_override
.
Perhatikan hal berikut saat menggunakan penjelasan serentak:
- Penjelasan serentak hanya tersedia dengan menggunakan versi API
v1beta1
. Jika menggunakan Vertex python SDK, Anda harus menggunakan modelpreview
untuk menggunakan penjelasan serentak. - Penjelasan berbasis contoh tidak dapat diminta setelah melakukan deployment dengan penjelasan berbasis fitur. Jika Anda menginginkan Penjelasan berbasis Contoh dan Penjelasan berbasis Fitur, deploy model Anda menggunakan Penjelasan berbasis contoh dan minta Berbasis fitur menggunakan kolom penjelasan serentak.
- Penjelasan Batch tidak didukung untuk Penjelasan serentak. Penjelasan Online adalah satu-satunya cara untuk menggunakan fitur ini.
Menggunakan Explainable AI SDK di notebook yang dikelola pengguna
Explainable AI SDK sudah diinstal sebelumnya di instance notebook yang dikelola pengguna. Di notebook, Anda dapat menggunakan Explainable AI SDK untuk menyimpan artefak model dan otomatis mengidentifikasi metadata tentang input dan output model Anda untuk permintaan penjelasan. Anda juga dapat menentukan parameter lain untuk mengonfigurasi permintaan penjelasan, lalu memvisualisasikan hasil penjelasan.
Anda dapat menyimpan model dan metadata di lingkungan lokal notebook Anda atau di bucket Cloud Storage. Jika menggunakan TensorFlow, Anda dapat menggunakan metode save_model_with_metadata()
untuk menginferensi input dan output model Anda, lalu menyimpan metadata penjelasan ini bersama model Anda.
Selanjutnya, muat model ke Explainable AI SDK menggunakan load_model_from_local_path()
. Jika perlu, Anda dapat menyesuaikan konfigurasi untuk algoritma Vertex Explainable AI tertentu. Misalnya, Anda dapat mengubah jumlah jalur yang akan digunakan untuk metode Sampled Shapley, atau jumlah langkah yang akan digunakan untuk metode Integrated Gradients atau XRAI.
Terakhir, panggil explain()
dengan instance data, dan visualisasikan atribusi fitur.
Anda dapat menggunakan contoh kode berikut guna mendapatkan penjelasan lokal untuk model TensorFlow 2 di instance notebook yang dikelola pengguna:
# This sample code only works within a user-managed notebooks instance.
import explainable_ai_sdk
from explainable_ai_sdk.metadata.tf.v2 import SavedModelMetadataBuilder
metadata_and_model_builder = SavedModelMetadataBuilder('LOCAL_PATH_TO_MODEL')
metadata_and_model_builder.save_model_with_metadata('LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT')
# Load the model and adjust the configuration for Explainable AI parameters
num_paths = 20
model_artifact_with_metadata = explainable_ai_sdk.load_model_from_local_path(
'LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT',
explainable_ai_sdk.SampledShapleyConfig(num_paths))
# Explainable AI supports generating explanations for multiple predictions
instances = [{feature_a: 10, feature_2: 100,...}, ... ]
explanations = model_artifact_with_metadata.explain(instances)
explanations[0].visualize_attributions()
Untuk informasi selengkapnya tentang Explainable AI SDK, termasuk berbagai konfigurasi dan parameter, lihat file config.py SDK di GitHub. Pelajari lebih lanjut notebook Vertex AI Workbench yang dikelola pengguna.
Pemecahan masalah
Bagian ini menjelaskan langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah saat meminta penjelasan.
Error: indeks daftar di luar rentang
Jika Anda mendapatkan pesan error berikut saat meminta penjelasan:
"error": "Explainability failed with exception: listindex out of range"
Pastikan Anda tidak meneruskan array kosong ke kolom yang mengharapkan array objek. Misalnya, jika field1
menerima array objek, isi permintaan berikut mungkin akan menghasilkan error:
{
"instances": [
{
"field1": [],
}
]
}
Sebagai gantinya, pastikan array tidak kosong, misalnya:
{
"instances": [
{
"field1": [
{}
],
}
]
}
Langkah selanjutnya
- Berdasarkan penjelasan yang Anda terima, pelajari cara menyesuaikan
Model
untuk meningkatkan kualitas penjelasan. - Coba contoh notebook yang menunjukkan penggunaan Vertex Explainable AI dengan data berbentuk tabel atau gambar.