Questa guida descrive come ottenere spiegazioni da una risorsa Model
su Vertex AI. Puoi ottenere spiegazioni in due modi:
Spiegazioni online:richieste sincrone all'API Vertex AI, simili alle previsioni online che restituiscono le previsioni con le attribuzioni delle caratteristiche.
Spiegazione batch:richieste asincrone all'API Vertex AI che restituiscono le previsioni con le attribuzioni delle funzionalità. Le spiegazioni batch sono un componente facoltativo delle richieste di previsione batch.
Prima di iniziare
Prima di ricevere le spiegazioni, devi:
Questo passaggio varia in base al tipo di modello di machine learning utilizzato:
Se vuoi ottenere spiegazioni da un modello addestrato personalizzato, consulta Configurare le spiegazioni basate su esempi o Configurare le spiegazioni basate su caratteristiche per creare un
Model
che supporti Vertex Explainable AI.Se vuoi ottenere spiegazioni da un modello di classificazione o regressione tabulare AutoML, addestra un modello AutoML su un set di dati tabulare. Non è necessaria alcuna configurazione specifica per utilizzare Vertex Explainable AI. Le spiegazioni per i modelli di previsione non sono supportate.
Se vuoi ottenere spiegazioni da un modello di classificazione delle immagini AutoML, addestra un modello AutoML su un set di dati di immagini e abilita le spiegazioni quando esegui il deployment del modello. Non è richiesta alcuna configurazione specifica per utilizzare Vertex Explainable AI. Le spiegazioni per i modelli di rilevamento di oggetti non sono supportate.
Se vuoi ricevere spiegazioni online, esegui il deployment del
Model
creato nel passaggio precedente in una risorsaEndpoint
.
Ricevere spiegazioni online
Per ottenere spiegazioni online, segui la maggior parte della procedura utilizzata per ottenere le previsioni online. Tuttavia, anziché inviare una
projects.locations.endpoints.predict
richiesta all' API Vertex AI, invia una projects.locations.endpoints.explain
richiesta.
Le seguenti guide forniscono istruzioni dettagliate per preparare e inviare richieste di spiegazione online:
Per i modelli di classificazione delle immagini AutoML, leggi Generare previsioni online da modelli AutoML.
Per i modelli di classificazione e regressione tabulari AutoML, leggi Ottenere previsioni dai modelli AutoML.
Per i modelli con addestramento personalizzato,leggi l'articolo Generare previsioni online da modelli con addestramento personalizzato.
Richiesta di spiegazioni per i batch
Sono supportate solo le spiegazioni collettive basate su caratteristiche. Non puoi ottenere spiegazioni collettive basate su esempi.
Per ottenere spiegazioni batch, imposta il generateExplanation
campo
su true
quando crei un job di previsione batch.
Per istruzioni dettagliate su come preparare e creare job di previsione batch, consulta Ottenere previsioni batch.
Ottenere spiegazioni localmente nei notebook gestiti dall'utente di Vertex AI Workbench
Nei notebook gestiti dall'utente di Vertex AI Workbench, puoi generare spiegazioni per il tuo modello addestrato in base alle tue esigenze eseguendo Vertex Explainable AI all'interno del kernel o del runtime locale del notebook senza eseguire il deployment del modello in Vertex AI per ottenere le spiegazioni. L'utilizzo delle spiegazioni locali ti consente di provare diverse impostazioni di Vertex Explainable AI senza modificare il deployment del modello Vertex AI per ogni modifica. In questo modo, è più facile e veloce valutare l'impatto dell'utilizzo di linee di base diverse, provare diverse impostazioni di visualizzazione per le spiegazioni o regolare il numero di passaggi o percorsi utilizzati per l'algoritmo.
Le spiegazioni locali sono disponibili solo all'interno di blocchi note gestiti dall'utente, quindi questa funzionalità non funziona nei blocchi note Jupyter che vengono eseguiti al di fuori di un'istanza di blocchi note gestiti dall'utente.
Per generare spiegazioni localmente in un'istanza di notebook gestita dall'utente:
- Crea un'istanza di notebook gestiti dall'utente
- Avvia l'ambiente JupyterLab dall'istanza di blocchi note gestiti dall'utente, quindi crea o importa un blocco note.
- Salva l'artefatto del modello nell'ambiente locale del blocco note o in un bucket Cloud Storage.
- Genera e salva i metadati per descrivere il modello e configura la richiesta di spiegazione.
Ottieni spiegazioni simultanee
Explainable AI supporta le spiegazioni simultanee. Le spiegazioni contemporaneamente consentono di richiedere spiegazioni sia basate su funzionalità che su esempi dallo stesso endpoint del modello di cui è stato eseguito il deployment senza dover eseguire il deployment del modello separatamente per ogni metodo di spiegazione.
Per ottenere spiegazioni simultanee, carica il modello e configura le spiegazioni basate su esempi o sulla funzionalità. Poi, esegui il deployment del modello come di consueto.
Dopo aver eseguito il deployment del modello, puoi richiedere le spiegazioni configurate come di consueto.
Inoltre, puoi richiedere spiegazioni simultanee specificando
concurrent_explanation_spec_override
.
Tieni presente quanto segue quando utilizzi le spiegazioni simultanee:
- Le spiegazioni simultanee sono disponibili solo utilizzando la versione dell'API
v1beta1
. Se utilizzi l'SDK Vertex Python, devi utilizzare il modellopreview
per usare le spiegazioni simultanee. - Le spiegazioni basate su esempi non possono essere richieste dopo il deployment con spiegazioni basate su funzionalità. Se vuoi sia le spiegazioni basate su esempi sia quelle basate sulle funzionalità, esegui il deployment del modello utilizzando le spiegazioni basate su esempi e richiedi quelle basate sulle funzionalità utilizzando il campo delle spiegazioni concorrenti.
- Le spiegazioni batch non sono supportate per le spiegazioni simultanee. Le spiegazioni online sono l'unico modo per utilizzare questa funzionalità.
Utilizzare l'SDK Explainable AI nei blocchi note gestiti dall'utente
L'SDK Explainable AI è preinstallato nelle istanze di notebook gestite dall'utente. Nel tuo notebook, puoi utilizzare l'SDK Explainable AI per salvare l'elemento del modello e identificare automaticamente i metadati relativi agli input e agli output del modello per la richiesta di spiegazione. Puoi anche specificare altri parametri per configurare la richiesta di spiegazione e visualizzare i risultati della spiegazione.
Puoi salvare i modelli e i metadati nell'ambiente locale del tuo notebook o
in un bucket Cloud Storage. Se utilizzi TensorFlow, puoi utilizzare il metodo save_model_with_metadata()
per dedurre gli input e gli output del modello e salvare questi metadati di spiegazione con il modello.
Poi carica il modello nell'SDK Explainable AI utilizzando
load_model_from_local_path()
. Se necessario, puoi
modificare la configurazione per
l'algoritmo Vertex Explainable AI specifico. Ad esempio, puoi modificare il numero di percorsi da utilizzare per Sampled Shapley o il numero di passaggi da utilizzare per i gradienti integrati o XRAI.
Infine, chiama explain()
con istanze di dati e visualizza le attribuzioni delle funzionalità.
Puoi utilizzare il seguente codice di esempio per ottenere spiegazioni locali per un modello TensorFlow 2 all'interno di un'istanza di notebook gestita dall'utente:
# 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()
Per ulteriori informazioni sull'SDK di IA spiegabile, tra cui diverse configurazioni e parametri, consulta il file config.py dell'SDK su GitHub. Scopri di più sui notebook gestiti dall'utente di Vertex AI Workbench.
Risoluzione dei problemi
Questa sezione descrive i passaggi per la risoluzione dei problemi che potresti trovare utili se riscontri problemi durante la ricezione delle spiegazioni.
Errore: indice di elenco fuori intervallo
Se ricevi il seguente messaggio di errore quando richiedi spiegazioni:
"error": "Explainability failed with exception: listindex out of range"
Assicurati di non passare un array vuoto a un campo che prevede un array di oggetti. Ad esempio, se field1
accetta un array di oggetti, il seguente corpo della richiesta potrebbe generare un errore:
{
"instances": [
{
"field1": [],
}
]
}
Assicurati invece che l'array non sia vuoto, ad esempio:
{
"instances": [
{
"field1": [
{}
],
}
]
}
Passaggi successivi
- In base alle spiegazioni che ricevi, scopri come modificare
Model
per migliorare le spiegazioni. - Prova un notebook di esempio che mostra Vertex Explainable AI su dati tabulari o di immagini.