Vertex AI fornisce metriche di valutazione dei modelli per aiutarti a determinare le prestazioni dei tuoi modelli, come le metriche di precisione e richiamo. Vertex AI calcola le metriche di valutazione utilizzando il set di test.
Come utilizzare le metriche di valutazione del modello
Le metriche di valutazione del modello forniscono misure quantitative del rendimento del modello sul set di test. L'interpretazione e l'utilizzo di queste metriche dipendono dalle esigenze aziendali e dal problema che il modello è addestrato a risolvere. Ad esempio, potresti avere una tolleranza inferiore per i falsi positivi rispetto ai falsi negativi o viceversa. Questi tipi di domande influiscono sulle metriche su cui concentrarti.
Per ulteriori informazioni sull'iterazione del modello per migliorarne il rendimento, consulta Iterazione del modello.
Metriche di valutazione restituite da Vertex AI
Vertex AI restituisce diverse metriche di valutazione, come precisione, richiamo e soglie di confidenza. Le metriche restituite da Vertex AI dipendono dall'obiettivo del modello. Ad esempio, Vertex AI fornisce metriche di valutazione diverse per un modello di rilevamento di oggetti immagine rispetto a un modello di classificazione di oggetti immagine.
Un file di schema, scaricabile da una posizione Cloud Storage, determina quali metriche di valutazione fornisce Vertex AI per ogni obiettivo. Le schede seguenti forniscono i link ai file dello schema e descrivono le metriche di valutazione per ogni obiettivo del modello.
Puoi visualizzare e scaricare i file di schema dalla seguente posizione di Cloud Storage:
gs://google-cloud-aiplatform/schema/modelevaluation/
- Soglia IoU: un valore di soglia di intersezione su unione che determina quali previsioni restituire. Un modello restituisce previsioni pari o superiori a questo valore. Più alta è la soglia, più i valori del riquadro di delimitazione previsto devono essere vicini ai valori del riquadro di delimitazione effettivo.
- Precisione media: nota anche come precisione media. Il valore va da zero a uno, dove un valore più elevato indica un modello di qualità superiore.
- Soglia di confidenza: un punteggio di confidenza che determina quali previsioni restituire. Un modello restituisce previsioni pari o superiori a questo valore. Una soglia di confidenza più alta aumenta la precisione, ma riduce il richiamo. Vertex AI restituisce metriche di confidenza a diversi valori di soglia per mostrare l'impatto della soglia su precisione e richiamo.
- Richiamo: la frazione di previsioni con questa classe che il modello ha previsto correttamente. Chiamata anche percentuale di veri positivi.
- Precisione: la frazione delle previsioni di classificazione prodotte dal modello che sono risultate corrette.
- Punteggio F1: la media armonica di precisione e richiamo. F1 è una metrica utile per trovare un equilibrio tra precisione e richiamo qualora esista una distribuzione non uniforme delle classi.
-
Precisione media del riquadro di delimitazione: la singola metrica per le valutazioni del riquadro di delimitazione: il
meanAveragePrecision
calcolato in media su tutti iboundingBoxMetrics
.
Recupero delle metriche di valutazione
Puoi ottenere un insieme aggregato di metriche di valutazione per il tuo modello e, per alcuni obiettivi, metriche di valutazione per una determinata classe o etichetta. Le metriche di valutazione per una determinata classe o etichetta sono note anche come sezione di valutazione. I seguenti contenuti descrivono come ottenere metriche di valutazione aggregate e sezioni di valutazione utilizzando la console Google Cloud o l'API.
Google Cloud console
Nella console Google Cloud , nella sezione Vertex AI, vai alla pagina Modelli.
Nel menu a discesa Regione, seleziona la regione in cui si trova il modello.
Nell'elenco dei modelli, fai clic sul tuo modello per aprire la scheda Valuta.
Nella scheda Valuta puoi visualizzare le metriche di valutazione aggregate del modello, come precisione media e richiamo.
Se l'obiettivo del modello ha sezioni di valutazione, la console mostra un elenco di etichette. Puoi fare clic su un'etichetta per visualizzare le metriche di valutazione per quell'etichetta, come mostrato nell'esempio seguente:
API
Le richieste API per ottenere le metriche di valutazione sono le stesse per ogni tipo di dati e obiettivo, ma gli output sono diversi. Gli esempi seguenti mostrano la stessa richiesta, ma risposte diverse.
Recupero delle metriche di valutazione del modello aggregate
Le metriche di valutazione del modello aggregate forniscono informazioni sul modello nel suo complesso. Per visualizzare informazioni su una sezione specifica, elenca le sezioni di valutazione del modello.
Per visualizzare le metriche di valutazione del modello aggregate, utilizza il metodo
projects.locations.models.evaluations.get
.
Per la metrica del riquadro di delimitazione, Vertex AI restituisce un array di valori della metrica in corrispondenza di diverse soglie IoU (tra 0 e 1) e soglie di confidenza (tra 0 e 1). Ad esempio, puoi concentrarti sulle metriche di valutazione con una soglia IoU di 0,85 e una soglia di confidenza di 0,8228. Visualizzando questi diversi valori di soglia, puoi vedere come influiscono su altre metriche come precisione e richiamo.
Seleziona una scheda corrispondente alla tua lingua o al tuo ambiente:
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione in cui è archiviato il modello.
- PROJECT: il tuo ID progetto
- MODEL_ID: l'ID della risorsa modello.
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto.
- EVALUATION_ID: ID per la valutazione del modello (visualizzato nella risposta).
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Elenco di tutte le sezioni di valutazione
Il metodo
projects.locations.models.evaluations.slices.list
elenca tutte le sezioni di valutazione per il tuo modello. Devi avere l'ID valutazione del modello, che puoi ottenere quando visualizzi le metriche di valutazione aggregate.
Puoi utilizzare le sezioni di valutazione del modello per determinare il rendimento del modello su un'etichetta specifica. Il campo value
indica l'etichetta a cui si riferiscono le metriche.
Per la metrica del riquadro di delimitazione, Vertex AI restituisce un array di valori della metrica in corrispondenza di diverse soglie IoU (tra 0 e 1) e soglie di confidenza (tra 0 e 1). Ad esempio, puoi concentrarti sulle metriche di valutazione con una soglia IoU di 0,85 e una soglia di confidenza di 0,8228. Visualizzando questi diversi valori di soglia, puoi vedere come influiscono su altre metriche come precisione e richiamo.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione in cui si trova il modello. Ad esempio,
us-central1
. - PROJECT: il tuo ID progetto
- MODEL_ID: l'ID del modello.
- EVALUATION_ID: l'ID della valutazione del modello che contiene le sezioni di valutazione da elencare.
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Ottenere le metriche per una singola sezione
Per visualizzare le metriche di valutazione per una singola sezione, utilizza il metodo
projects.locations.models.evaluations.slices.get
. Devi disporre dell'ID slice, che viene fornito quando elenco di tutti gli slice. Il seguente esempio si applica a tutti i tipi di dati e
obiettivi.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la regione in cui si trova il modello. Ad esempio, us-central1.
- PROJECT: il tuo ID progetto
- MODEL_ID: l'ID del modello.
- EVALUATION_ID: ID della valutazione modello che contiene la sezione di valutazione da recuperare.
- SLICE_ID: l'ID di una sezione di valutazione da recuperare.
- PROJECT_NUMBER: il numero di progetto generato automaticamente per il tuo progetto.
- EVALUATION_METRIC_SCHEMA_FILE_NAME: Il nome di un file di schema
che definisce le metriche di valutazione da restituire, ad esempio
classification_metrics_1.0.0
.
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID/evaluations/EVALUATION_ID/slices/SLICE_ID" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Java.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Vertex AI per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Vertex AI Node.js.
Per autenticarti in Vertex AI, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Iterare il modello
Le metriche di valutazione del modello forniscono un punto di partenza per il debug del modello quando non soddisfa le tue aspettative. Ad esempio, punteggi di precisione e richiamo bassi possono indicare che il modello ha bisogno di dati di addestramento aggiuntivi o contiene etichette incoerenti. Precisione e richiamo perfetti possono indicare che i dati di test sono troppo facili da prevedere e potrebbero non generalizzare bene.
Puoi eseguire l'iterazione sui dati di addestramento e creare un nuovo modello. Dopo aver creato un nuovo modello, puoi confrontare le metriche di valutazione tra il modello esistente e quello nuovo.
I seguenti suggerimenti possono aiutarti a migliorare i modelli che etichettano gli elementi, ad esempio i modelli di rilevamento oggetti o di rilevamento:
- Valuta la possibilità di aggiungere più esempi o una gamma più ampia di esempi nei dati di addestramento. Ad esempio, per un modello di rilevamento di oggetti immagine, potresti includere immagini con un angolo più ampio, immagini a risoluzione più alta o più bassa o diversi punti di vista. Per ulteriori indicazioni, consulta Preparare i dati.
- Valuta la possibilità di rimuovere classi o etichette che non hanno molti esempi. Un numero insufficiente di esempi impedisce al modello di fare previsioni in modo coerente e affidabile su queste classi o etichette.
- Le macchine non possono interpretare il nome delle classi o delle etichette e non comprendono le sfumature tra di loro, ad esempio "porta" e "porta_con_maniglia". Devi fornire dati per aiutare le macchine a riconoscere queste sfumature.
- Arricchisci i tuoi dati con altri esempi di veri positivi e veri negativi, in particolare esempi vicini a un limite decisionale per mitigare la confusione del modello.
- Specifica la tua suddivisione dei dati (addestramento, convalida e test). Vertex AI assegna casualmente gli elementi a ogni set. Pertanto, i quasi duplicati possono essere allocati nei set di addestramento e convalida, il che potrebbe portare a un overfitting e quindi a un rendimento scarso nel set di test. Per saperne di più sulla configurazione della tua suddivisione dei dati, consulta la sezione Informazioni sulle suddivisioni di dati per i modelli AutoML.
- Se le metriche di valutazione del modello includono una matrice di confusione, puoi vedere se il modello confonde due etichette, dove il modello prevede un'etichetta particolare in modo significativo rispetto all'etichetta vera. Esamina i dati e assicurati che gli esempi siano etichettati correttamente.
- Se hai impostato un tempo di addestramento breve (numero massimo di ore nodo basso), potresti ottenere un modello di qualità superiore consentendo l'addestramento per un periodo di tempo più lungo (numero massimo di ore nodo più alto).