Questa guida descrive come ottenere spiegazioni da una risorsa Model
su
Vertex AI. Puoi ottenere le 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 con addestramento personalizzato, segui le istruzioni per configurare le spiegazioni basate su esempi o Configurazione delle spiegazioni basate sulle funzionalità per creare un
Model
che supporti Vertex Explainable AI.Se vuoi ricevere spiegazioni da un modello tabulare AutoML modello di classificazione o regressione,quindi addestra un modello AutoML su un set di dati tabulare. Non è necessaria alcuna configurazione specifica per utilizzare Vertex Explainable AI. Spiegazioni per modelli di previsione non sono supportati.
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 una configurazione specifica per utilizzare Vertex Explainable AI. Le spiegazioni per i modelli di rilevamento degli oggetti non sono supportate.
Se vuoi ricevere spiegazioni online, esegui il deployment di
Model
che creato nel passaggio precedente a unEndpoint
delle risorse.
Ricevere spiegazioni online
Per ottenere spiegazioni online, segui la maggior parte degli stessi passaggi che utilizzeresti
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 la preparazione e l'invio richieste di spiegazione online:
Per i modelli di classificazione delle immagini AutoML, leggi Ottenere previsioni online da AutoML di machine learning.
Per i modelli di classificazione e regressione tabulari AutoML, leggi Generare previsioni online da modelli AutoML.
Per i modelli con addestramento personalizzato, leggi Ottenere previsioni online da con addestramento personalizzato.
Ricevere spiegazioni sui batch
Sono supportate solo le spiegazioni collettive basate su caratteristiche. Non puoi ottenere spiegazioni collettive basate su esempi.
Per ottenere spiegazioni batch, imposta la classe generateExplanation
campo
a true
quando crei un job di previsione batch.
Per istruzioni dettagliate sulla preparazione e sulla creazione di job di previsione batch, consulta l'articolo Ottenere previsioni batch.
Ottenere spiegazioni localmente nei notebook gestiti dall'utente di Vertex AI Workbench
In Vertex AI Workbench blocchi note gestiti dall'utente, puoi generare spiegazioni per il tuo modello con addestramento personalizzato eseguendo Vertex Explainable AI all'interno del kernel o runtime locale del tuo blocco note senza eseguendo il deployment del modello Vertex AI per ottenere spiegazioni. Le spiegazioni locali ti consentono di provare diverse impostazioni di Vertex Explainable AI senza modificare il deployment del modello Vertex AI per ogni modifica. In questo modo, diventa più facile e più rapidamente per valutare l'impatto usando basi di riferimento diverse, provando impostazioni di visualizzazione diverse per i tuoi spiegazioni o la modifica del numero di passi o percorsi utilizzata 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 per un'istanza di blocchi note gestiti dall'utente:
- Crea un'istanza di notebook gestiti dall'utente
- Avvia l'ambiente JupyterLab dall'istanza dei blocchi note gestiti dall'utente, quindi crei o importi un blocco note.
- Salva l'artefatto del modello nell'ambiente locale del blocco note oppure nel 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 utilizzando solo 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 caratteristiche, esegui il deployment del modello utilizzando le spiegazioni basate su esempi e richiedi quelle basate sulle caratteristiche utilizzando il campo delle spiegazioni concorrenti.
- Le spiegazioni batch non sono supportate per spiegazioni simultanee. Le spiegazioni online sono l'unico modo per utilizzare questa funzionalità.
Utilizza l'SDK Explainable AI nei blocchi note gestiti dall'utente
L'SDK Explainable AI è preinstallato nelle istanze di notebook gestite dall'utente. All'interno del blocco note, puoi utilizzare l'SDK Explainable AI per salvare l'artefatto del modello e identificare automaticamente i metadati input e output per la richiesta di spiegazione. Puoi anche specificare altri parametri per configurare la richiesta di spiegazione e visualizzare i risultati della spiegazione.
Puoi salvare modelli e metadati nell'ambiente locale del tuo blocco note oppure
in un bucket Cloud Storage. Se utilizzi TensorFlow, puoi utilizzare
save_model_with_metadata()
per dedurre gli input e gli output del modello,
e salva questi metadati di spiegazione con il tuo 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 Explainable AI, tra cui configurazioni e parametri diversi, consulta l'interfaccia config.py su GitHub. Scopri di più su Vertex AI Workbench e gestire i blocchi note gestiti dall'utente.
Risoluzione dei problemi
In questa sezione vengono descritti i passaggi per la risoluzione dei problemi che potrebbero essere utili se si verificano problemi durante il recupero delle spiegazioni.
Errore: elenco indice 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 in un campo che prevede un
un array di oggetti. Ad esempio, se field1
accetta un array di oggetti, il parametro
il seguente corpo della richiesta potrebbe causare 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.