Mendapatkan penjelasan

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:

  1. Langkah ini berbeda-beda, bergantung pada jenis model machine learning yang Anda gunakan:

  2. Jika Anda ingin mendapatkan penjelasan online, deploy Model yang Anda buat pada langkah sebelumnya ke resource Endpoint.

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:

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.

Mendapatkan Penjelasan Serentak

Explainable AI mendukung penjelasan serentak. Penjelasan serentak memungkinkan Anda 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-hal berikut saat menggunakan penjelasan serentak:

  • Penjelasan serentak hanya tersedia menggunakan versi API v1beta1. Jika menggunakan Vertex python SDK, Anda harus menggunakan model preview untuk menggunakan penjelasan serentak.
  • Penjelasan berbasis contoh tidak dapat diminta setelah di-deploy dengan penjelasan berbasis fitur. Jika Anda menginginkan Penjelasan berbasis contoh dan Penjelasan berbasis fitur, deploy model Anda menggunakan Penjelasan berbasis contoh dan minta Penjelasan 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 mendapatkan 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 dapat menyebabkan error:

{
  "instances": [
    {
      "field1": [],
    }
  ]
}

Sebagai gantinya, pastikan array tidak kosong, misalnya:

{
  "instances": [
    {
      "field1": [
        {}
      ],
    }
  ]
}

Langkah selanjutnya