Sie können die Leistung von Foundation Models und Ihre abgestimmten generativen KI-Modelle auf Vertex AI bewerten. Die Modelle werden anhand einer Reihe von Messwerten anhand eines von Ihnen bereitgestellten Bewertungs-Datasets ausgewertet. Auf dieser Seite wird erläutert, wie die berechnungsbasierte Modellbewertung über den Pipeline-Bewertungsdienst funktioniert, wie Sie das Bewertungs-Dataset erstellen und formatieren und wie Sie die Bewertung mit der Google Cloud Console, der Vertex AI API oder dem Vertex AI SDK für Python ausführen.
Funktionsweise der berechnungsbasierten Modellbewertung
Zum Bewerten der Leistung eines Modells erstellen Sie zuerst ein Bewertungs-Dataset, das Prompt- und Ground-Truth-Paare enthält. Die Eingabeaufforderung ist für jedes Paar die Aufforderung, die Sie auswerten möchten, und die Ground-Truth-Antwort ist die ideale Antwort auf diese Eingabeaufforderung. Während der Bewertung wird die Prompt in jedem Paar des Bewertungs-Datasets an das Modell übergeben, um eine Ausgabe zu generieren. Die vom Modell generierten Ausgabe und die Grundwahrheit-Ausgabe aus dem Bewertungs-Dataset werden zur Berechnung der Bewertungsmesswerte verwendet.
Die Art der für die Bewertung verwendeten Messwerte hängt von der Aufgabe ab, die Sie bewerten. Die folgende Tabelle enthält die unterstützten Aufgaben und die Messwerte, die zum Bewerten der einzelnen Aufgaben verwendet werden:
Task | Messwert |
---|---|
Klassifizierung | Micro-F1, Macro-F1, pro Klasse F1 |
Zusammenfassung | ROUGE-L |
Beantworten von Fragen | Genaue Übereinstimmung |
Textgenerierung | BLEU, ROUGE-L |
Unterstützte Modelle
Die Modellbewertung wird für die Basis- und die abgestimmten Versionen von text-bison
unterstützt.
Bewertungs-Dataset vorbereiten
Das für die Modellbewertung verwendete Bewertungs-Dataset enthält Prompt- und Ground-Truth-Paare, die der Aufgabe entsprechen, die Sie bewerten möchten. Ihr Dataset muss mindestens 1 Prompt- und Ground-Truth-Paar und mindestens 10 Paare enthalten, um aussagekräftige Messwerte zu erhalten. Je mehr Beispiele Sie angeben, desto aussagekräftiger sind die Ergebnisse.
Dataset-Format
Ihr Bewertungs-Dataset muss im JSON Lines-Format (JSONL) vorliegen, wobei jede Zeile ein einzelnes Prompt- und Ground-Truth-Paar enthält, das jeweils im Feld input_text
und output_text
angegeben ist. Das Feld input_text
enthält den Prompt, den Sie bewerten möchten, und das Feld output_text
enthält die ideale Antwort für den Prompt.
Die maximale Tokenlänge für input_text
ist 8.192, die maximale Tokenlänge für output_text
ist 1.024.
Bewertungs-Dataset in Cloud Storage hochladen
Sie können entweder einen neuen Cloud Storage-Bucket erstellen oder einen vorhandenen Bucket zum Speichern Ihrer Dataset-Datei verwenden. Der Bucket muss sich in derselben Region wie das Modell befinden.
Wenn der Bucket bereit ist, laden Sie Ihre Dataset-Datei in den Bucket hoch.
Modellbewertung durchführen
Sie können Modelle mithilfe der REST API oder der Google Cloud Console bewerten.
REST
Senden Sie zum Erstellen eines Modellbewertungsjobs eine POST
-Anfrage mit der Methode PipelineJobs.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Das Google Cloud-Projekt, in dem die Pipelinekomponenten ausgeführt werden.
- PIPELINEJOB_DISPLAYNAME: Ein Anzeigename für den pipelineJob.
- LOCATION: Die Region, in der die Pipelinekomponenten ausgeführt wird.
Derzeit wird nur
us-central1
unterstützt. - DATASET_URI: Der Cloud Storage-URI Ihres Referenz-Datasets. Sie können einen oder mehrere URIs angeben. Dieser Parameter unterstützt Platzhalter. Weitere Informationen zu diesem Parameter finden Sie unter InputConfig.
- OUTPUT_DIR: Der Cloud Storage-URI zum Speichern der Bewertungsausgabe.
- MODEL_NAME: Geben Sie ein Publisher-Modell oder eine feinabgestimmte Modellressource so an:
- Publisher-Modell:
publishers/google/models/MODEL@MODEL_VERSION
Beispiel:
publishers/google/models/text-bison@001
- Abgestimmtes Modell:
projects/PROJECT_NUMBER/locations/LOCATION/models/ENDPOINT_ID
Beispiel:
projects/123456789012/locations/us-central1/models/1234567890123456789
Der Bewertungsjob hat keine Auswirkungen auf vorhandene Bereitstellungen des Modells oder deren Ressourcen.
- Publisher-Modell:
- EVALUATION_TASK: Die Aufgabe, für die Sie das Modell bewerten möchten. Der Bewertungsjob berechnet eine Reihe von Messwerten, die für diese spezifische Aufgabe relevant sind. Unter anderem sind folgende Werte zulässig:
summarization
question-answering
text-generation
classification
- INSTANCES_FORMAT: Das Format Ihres Datasets.
Derzeit wird nur
jsonl
unterstützt. Weitere Informationen zu diesem Parameter finden Sie unter InputConfig. - PREDICTIONS_FORMAT: Das Format der Bewertungsausgabe. Derzeit wird nur
jsonl
unterstützt. Weitere Informationen zu diesem Parameter finden Sie unter InputConfig. - MACHINE_TYPE: (Optional) Der Maschinentyp zum Ausführen des Bewertungsjobs. Der Standardwert ist
e2-highmem-16
. Eine Liste der unterstützten Maschinentypen finden Sie unter Maschinentypen. - SERVICE_ACCOUNT: (Optional) Das Dienstkonto, das zum Ausführen des Bewertungsjobs verwendet werden soll. Informationen zum Erstellen eines benutzerdefinierten Dienstkontos finden Sie unter Dienstkonto mit detaillierten Berechtigungen konfigurieren. Wenn nicht angegeben, wird der Dienst-Agent für benutzerdefinierten Vertex AI-Code verwendet.
- NETWORK: (Optional) Der vollständig qualifizierte Name des Compute Engine-Netzwerks, mit dem der Bewertungs-Job per peering verbunden werden soll. Das Format des Netzwerknamens ist
projects/PROJECT_NUMBER/global/networks/NETWORK_NAME
. Wenn Sie dieses Feld angeben, benötigen Sie ein VPC-Netzwerk-Peering für Vertex AI. Wenn nicht angegeben, wird der Bewertungsjob nicht über Peering mit einem Netzwerk verbunden. - KEY_NAME: (Optional) Der Name des vom Kunden verwalteten Verschlüsselungsschlüssels (CMEK). Bei entsprechender Konfiguration werden Ressourcen, die vom Bewertungsjob erstellt wurden, mit dem bereitgestellten Verschlüsselungsschlüssel verschlüsselt. Das Format des Schlüsselnamens ist
projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
. Der Schlüssel muss sich in derselben Region wie der Bewertungsjob befinden.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/pipelineJobs
JSON-Text der Anfrage:
{ "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" }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten: Beachten Sie, dass pipelineSpec
gekürzt wurde, um Speicherplatz zu sparen.
Beispiel: cURL-Befehls
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
Informationen zum Installieren oder Aktualisieren von Python finden Sie unter Vertex AI SDK für Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Console
Führen Sie die folgenden Schritte aus, um mithilfe der Google Cloud Console einen Modellbewertungsjob zu erstellen:
- Rufen Sie in der Google Cloud Console die Seite Vertex AI Model Registry auf.
- Klicken Sie auf den Namen des Modells, das bewertet werden soll.
- Klicken Sie auf dem Tab Bewerten auf Bewertung erstellen und konfigurieren Sie Folgendes:
- Ziel: Wählen Sie die Aufgabe aus, die Sie bewerten möchten.
- Zielspalte oder -feld: (nur Klassifizierung) Geben Sie die Zielspalte für die Vorhersage ein. Beispiel:
ground_truth
. - Quellpfad: Geben Sie den URI Ihres Bewertungs-Datasets ein oder wählen Sie ihn aus.
- Ausgabeformat: Geben Sie das Format der Bewertungsausgabe ein.
Derzeit wird nur
jsonl
unterstützt. - Cloud Storage-Pfad: Geben Sie den URI zum Speichern der Bewertungsausgabe ein oder wählen Sie ihn aus.
- Klassennamen: (nur Klassifizierung) Geben Sie die Liste der möglichen Klassennamen ein.
- Anzahl der Computing-Knoten: Geben Sie die Anzahl der Computing-Knoten ein, auf denen der Bewertungsjob ausgeführt werden soll.
- Maschinentyp: Wählen Sie einen Maschinentyp aus, der zum Ausführen des Bewertungsjobs verwendet werden soll.
- Klicken Sie auf Bewertung starten.
Bewertungsergebnisse ansehen
Sie finden die Bewertungsergebnisse im Cloud Storage-Ausgabeverzeichnis, das Sie beim Erstellen des Bewertungsjobs angegeben haben. Der Name der Datei lautet evaluation_metrics.json
.
Bei optimierten Modellen können Sie auch Bewertungsergebnisse in der Google Cloud Console aufrufen:
Rufen Sie im Bereich „Vertex AI” der Google Cloud Console die Seite Vertex AI Model Registry auf.
Klicken Sie auf den Namen des Modells, um die Bewertungsmesswerte aufzurufen.
Klicken Sie auf dem Tab Bewerten auf den Namen der Bewertungsausführung, die Sie aufrufen möchten.
Nächste Schritte
- Informationen zum schnellen Ausführen des Online-Bewertungsdienstes. Kurzanleitung zur Onlinebewertung
- Weitere Informationen zur Leistungsbewertung
- Weitere Informationen zur paarweisen modellbasierten Bewertung.
- Foundation Model optimieren