Puoi valutare le prestazioni dei modelli di base e dei modelli di IA generativa ottimizzati su Vertex AI. I modelli vengono valutati usando un set di metriche su un set di dati di valutazione da te fornito. Questa pagina spiega come funziona la valutazione dei modelli basata sul calcolo tramite il servizio della pipeline di valutazione, come creare e formattare il set di dati di valutazione e come eseguire la valutazione utilizzando la console Google Cloud, l'API Vertex AI o l'SDK Vertex AI per Python.
Come funziona la valutazione dei modelli basati su calcolo
Per valutare le prestazioni di un modello, devi prima creare un set di dati di valutazione contenente coppie di prompt e dati empirici reali. Per ogni coppia, il prompt è l'input che vuoi valutare e i dati empirici reali sono la risposta ideale per quel prompt. Durante la valutazione, il prompt in ogni coppia del set di dati di valutazione viene passato al modello per produrre un output. L'output generato dal modello e i dati empirici reali del set di dati di valutazione vengono utilizzati per calcolare le metriche di valutazione.
Il tipo di metriche utilizzate per la valutazione dipende dall'attività che stai valutando. La seguente tabella mostra le attività supportate e le metriche utilizzate per valutare ogni attività:
Attività | Metrica |
---|---|
Classificazione | Micro-F1, Macro-F1, per classe F1 |
Riassunto | ROUGE-L |
Question answering | Corrispondenza esatta |
Generazione di testo | BLEU, ROUGE-L |
Modelli supportati
La valutazione del modello è supportata per le versioni di base e ottimizzate di text-bison
.
Prepara il set di dati di valutazione
Il set di dati di valutazione utilizzato per la valutazione dei modelli include coppie di prompt e dati empirici reali in linea con l'attività da valutare. Il set di dati deve includere almeno 1 prompt e una coppia di dati empirici reali e almeno 10 coppie per metriche significative. Più esempi fornisci, più significativi saranno i risultati.
Formato del set di dati
Il set di dati di valutazione deve essere in formato JSON Lines (JSONL)
in cui ogni riga contiene una singola coppia di prompt e dati empirici reali specificate
rispettivamente nei campi input_text
e output_text
. Il campo input_text
contiene il prompt che vuoi valutare, mentre il campo output_text
contiene la risposta ideale per il prompt.
La lunghezza massima del token per input_text
è 8192, mentre la lunghezza massima del token per output_text
è 1024.
Carica il set di dati di valutazione su Cloud Storage
Puoi creare un nuovo bucket Cloud Storage o utilizzarne uno esistente per archiviare il file del tuo set di dati. Il bucket deve trovarsi nella stessa regione del modello.
Quando il bucket è pronto, carica il file del set di dati nel bucket.
Esegui la valutazione del modello
Puoi valutare i modelli utilizzando l'API REST o la console Google Cloud.
REST
Per creare un job di valutazione del modello, invia una richiesta POST
utilizzando il metodo pipelineJobs.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- PROJECT_ID: il progetto Google Cloud che esegue i componenti della pipeline.
- PIPELINEJOB_DISPLAYNAME: un nome visualizzato per pipelineJob.
- LOCATION: la regione per l'esecuzione dei componenti della pipeline.
Al momento è supportato soltanto l'indirizzo
us-central1
. - DATASET_URI: l'URI Cloud Storage del set di dati di riferimento. Puoi specificare uno o più URI. Questo parametro supporta i caratteri jolly. Per scoprire di più su questo parametro, consulta InputConfig.
- OUTPUT_DIR: l'URI Cloud Storage per archiviare l'output della valutazione.
- MODEL_NAME: specifica un modello publisher o una risorsa del modello ottimizzato nel seguente modo:
- Modello publisher:
publishers/google/models/MODEL@MODEL_VERSION
Esempio:
publishers/google/models/text-bison@001
- Modello ottimizzato:
projects/PROJECT_NUMBER/locations/LOCATION/models/ENDPOINT_ID
Esempio:
projects/123456789012/locations/us-central1/models/1234567890123456789
Il job di valutazione non influisce sui deployment esistenti del modello o delle sue risorse.
- Modello publisher:
- EVALUATION_TASK: l'attività per cui vuoi valutare il modello. Il job di valutazione calcola un insieme di metriche pertinenti per quell'attività specifica. I valori accettati includono:
summarization
question-answering
text-generation
classification
- INSTANCES_FORMAT: il formato del set di dati.
Al momento è supportato soltanto l'indirizzo
jsonl
. Per scoprire di più su questo parametro, consulta InputConfig. - PREDICTIONS_FORMAT: il formato dell'output della valutazione. Al momento è supportato soltanto l'indirizzo
jsonl
. Per scoprire di più su questo parametro, consulta InputConfig. - MACHINE_TYPE: (facoltativo) il tipo di macchina per l'esecuzione del job di valutazione. Il valore predefinito è
e2-highmem-16
. Per un elenco dei tipi di macchine supportati, consulta Tipi di macchine. - SERVICE_ACCOUNT: (facoltativo) l'account di servizio da utilizzare per eseguire il job di valutazione. Per scoprire come creare un account di servizio personalizzato, consulta Configurare un account di servizio con autorizzazioni granulari. Se non specificati, viene utilizzato l'agente di servizio del codice personalizzato Vertex AI.
- NETWORK: (facoltativo) il nome completo della rete Compute Engine verso cui eseguire il peering del job di valutazione. Il formato del nome della rete è
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
. Se specifichi questo campo, devi avere un peering di rete VPC per Vertex AI. Se non specificato, il job di valutazione non viene connesso in peering con nessuna rete. - KEY_NAME: (facoltativo) il nome della chiave di crittografia gestita dal cliente (CMEK). Se configurate, le risorse create dal job di valutazione vengono criptate utilizzando la chiave di crittografia fornita. Il formato del nome della chiave è
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
. La chiave deve trovarsi nella stessa regione del job di valutazione.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
Corpo JSON della richiesta:
{ "displayName": "PIPELINEJOB_DISPLAYNAME", "runtimeConfig": { "gcsOutputDirectory": "gs://OUTPUT_DIR", "parameterValues": { "project": "PROJECT_ID", "location": "LOCATION", "batch_predict_gcs_source_uris": ["gs://DATASET_URI"], "batch_predict_gcs_destination_output_uri": "gs://OUTPUT_DIR", "model_name": "MODEL_NAME", "evaluation_task": "EVALUATION_TASK", "batch_predict_instances_format": "INSTANCES_FORMAT", "batch_predict_predictions_format: "PREDICTIONS_FORMAT", "machine_type": "MACHINE_TYPE", "service_account": "SERVICE_ACCOUNT", "network": "NETWORK", "encryption_spec_key_name": "KEY_NAME" } }, "templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1" }
Per inviare la richiesta, scegli una delle seguenti opzioni:
arricciatura
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs"
PowerShell
Salva il corpo della richiesta in un file denominato request.json
ed esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs" | Select-Object -Expand Content
Dovresti ricevere una risposta in formato JSON simile alla seguente. Tieni presente che pipelineSpec
è stato troncato per risparmiare spazio.
Comando curl di esempio
PROJECT_ID=myproject
REGION=us-central1
MODEL_NAME=publishers/google/models/text-bison@001
TEST_DATASET_URI=gs://my-gcs-bucket-uri/dataset.jsonl
OUTPUT_DIR=gs://my-gcs-bucket-uri/output
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${REGION}/pipelineJobs" -d \
$'{
"displayName": "evaluation-llm-text-generation-pipeline",
"runtimeConfig": {
"gcsOutputDirectory": "'${OUTPUT_DIR}'",
"parameterValues": {
"project": "'${PROJECT_ID}'",
"location": "'${REGION}'",
"batch_predict_gcs_source_uris": ["'${TEST_DATASET_URI}'"],
"batch_predict_gcs_destination_output_uri": "'${OUTPUT_DIR}'",
"model_name": "'${MODEL_NAME}'",
}
},
"templateUri": "https://us-kfp.pkg.dev/vertex-evaluation/pipeline-templates/evaluation-llm-text-generation-pipeline/1.0.1"
}'
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la documentazione di riferimento dell'API Python.
Console
Per creare un job di valutazione del modello utilizzando la console Google Cloud, segui questi passaggi:
- Nella console Google Cloud, vai alla pagina Vertex AI Model Registry.
- Fai clic sul nome del modello da valutare.
- Nella scheda Valuta, fai clic su Crea valutazione e configura come segue:
- Obiettivo: seleziona l'attività da valutare.
- Colonna o campo di destinazione: (solo classificazione) inserisci la colonna di destinazione per la previsione. Esempio:
ground_truth
. - Percorso di origine: inserisci o seleziona l'URI del set di dati di valutazione.
- Formato di output: inserisci il formato dell'output della valutazione.
Al momento è supportato soltanto l'indirizzo
jsonl
. - Percorso Cloud Storage: inserisci o seleziona l'URI in cui archiviare l'output di valutazione.
- Nomi delle classi: (solo classificazione) inserisci l'elenco di possibili nomi di classi.
- Numero di nodi di computing: inserisci il numero di nodi di computing per l'esecuzione del job di valutazione.
- Tipo di macchina: seleziona un tipo di macchina da utilizzare per eseguire il job di valutazione.
- Fai clic su Avvia valutazione.
Visualizza i risultati di una valutazione
Puoi trovare i risultati della valutazione nella directory di output di Cloud Storage specificata durante la creazione del job di valutazione. Il nome del file è evaluation_metrics.json
.
Per i modelli ottimizzati, puoi anche visualizzare i risultati della valutazione nella console Google Cloud:
Nella sezione Vertex AI della console Google Cloud, vai alla pagina Vertex AI Model Registry.
Fai clic sul nome del modello per visualizzarne le metriche di valutazione.
Nella scheda Valuta, fai clic sul nome dell'esecuzione di valutazione che vuoi visualizzare.
Passaggi successivi
- Prova un blocco note di esempio di valutazione.
- Scopri di più sulla valutazione dell'AI generativa.
- Scopri di più sulla valutazione online con la valutazione rapida.
- Scopri di più sulla valutazione di coppie basate su modello con la pipeline AutoSxS.
- Scopri come ottimizzare un modello di base.