Gemini-Modelle mithilfe der überwachten Feinabstimmung optimieren

In diesem Dokument wird beschrieben, wie Sie ein Gemini-Modell mithilfe der überwachten Feinabstimmung optimieren.

Hinweis

Bevor Sie beginnen, müssen Sie ein Dataset für die überwachte Feinabstimmung vorbereiten. Je nach Anwendungsfall gelten unterschiedliche Anforderungen.

Unterstützte Modelle

  • gemini-1.5-pro-002 (in GA)
  • gemini-1.5-flash-002 (in GA)
  • gemini-1.0-pro-002 (In der Vorabversion, unterstützt nur die Textabstimmung)

Abstimmungsjob erstellen

Sie können einen überwachten Feinabstimmungsjob mit der REST API, dem Vertex AI SDK für Python, der Google Cloud Console oder Colab Enterprise erstellen.

REST

Senden Sie zum Erstellen eines Modellabstimmungsjobs eine POST-Anfrage mit der Methode tuningJobs.create. Einige Parameter werden nicht von allen Modellen unterstützt. Achten Sie darauf, dass Sie nur die für das abzustimmende Modell relevanten Parameter einfügen.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • TUNING_JOB_REGION: Die Region, in der der Abstimmungsjob ausgeführt wird. Dies ist auch die Standardregion, in der das abgestimmte Modell hochgeladen wird.
  • BASE_MODEL: Name des zu optimierenden Foundation Models. Unterstützte Werte: gemini-1.5-pro-002, gemini-1.5-flash-002 und gemini-1.0-pro-002.
  • TRAINING_DATASET_URI: Cloud Storage-URI Ihres Trainingsdatensatzes. Das Dataset muss als JSONL-Datei formatiert sein. Die besten Ergebnisse erzielen Sie, wenn Sie mindestens 100 bis 500 Beispiele angeben. Weitere Informationen finden Sie unter Überwachte Abstimmungs-Datasets.
  • VALIDATION_DATASET_URIOptional: Der Cloud Storage-URI der Validierungs-Dataset-Datei.
  • EPOCH_COUNTOptional: Die Anzahl der vollständigen Durchläufe des gesamten Trainings-Datasets durch das Modell während des Trainings. Legen Sie das Feld nicht fest, um den voreingestellten empfohlenen Wert verwenden zu lassen.
  • ADAPTER_SIZEOptional: Die Adaptergröße, die für den Optimierungsjob verwendet werden soll. Die Adaptergröße wirkt sich auf die Anzahl der trainierbaren Parameter für den Optimierungsjob aus. Eine größere Adaptergröße bedeutet, dass das Modell komplexere Aufgaben lernen kann. Es erfordert jedoch einen größeren Trainingsdatensatz und längere Trainingszeiten.
  • LEARNING_RATE_MULTIPLIER: Optional: Ein Multiplikator, der auf die empfohlene Lernrate anzuwenden ist. Legen Sie das Feld nicht fest, um den empfohlenen Wert verwenden zu lassen.
  • TUNED_MODEL_DISPLAYNAMEOptional: Ein Anzeigename für das abgestimmte Modell. Wenn er nicht festgelegt ist, wird ein zufälliger Name generiert.
  • KMS_KEY_NAMEOptional: Die Cloud KMS-Ressourcen-ID des vom Kunden verwalteten Verschlüsselungsschlüssels, der zum Schutz einer Ressource verwendet wird. Der Schlüssel hat das Format projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. Der Schlüssel muss sich in derselben Region befinden wie die Compute-Ressource. Weitere Informationen finden Sie unter Vom Kunden verwaltete Verschlüsselungsschlüssel (CMEK).
  • SERVICE_ACCOUNTOptional: Das Dienstkonto, unter dem die Arbeitslast „tuningJob“ ausgeführt wird. Wenn keine Angabe erfolgt, wird der Dienst-Agent für die sichere Feinabstimmung von Vertex AI im Projekt verwendet. Weitere Informationen finden Sie unter Abstimmungsdienst-Agent. Wenn Sie ein vom Kunden verwaltetes Dienstkonto verwenden möchten, müssen Sie dem Dienstkonto die Rolle roles/aiplatform.tuningServiceAgent zuweisen. Gewähren Sie dem Tuning-Dienst-Agent auch die Berechtigung vertex-ai-service-account.

HTTP-Methode und URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

JSON-Text der Anfrage:

{
  "baseModel": "BASE_MODEL",
  "supervisedTuningSpec" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI",
      "hyperParameters": {
          "epochCount": EPOCH_COUNT,
          "adapterSize": "ADAPTER_SIZE",
          "learningRateMultiplier": LEARNING_RATE_MULTIPLIER
      },
  },
  "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME",
  "encryptionSpec": {
    "kmsKeyName": "KMS_KEY_NAME"
  },
  "serviceAccount": "SERVICE_ACCOUNT"
}

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Beispiel: cURL-Befehls

PROJECT_ID=myproject
LOCATION=us-central1
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
   "baseModel": "gemini-1.5-pro-002",
   "supervisedTuningSpec" : {
      "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_train_data.jsonl",
      "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/sft_validation_data.jsonl"
   },
   "tunedModelDisplayName": "tuned_gemini_pro"
}'

Python


import time

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

sft_tuning_job = sft.train(
    source_model="gemini-1.5-pro-002",
    train_dataset="gs://cloud-samples-data/ai-platform/generative_ai/gemini-1_5/text/sft_train_data.jsonl",
)

# Polling for job completion
while not sft_tuning_job.has_ended:
    time.sleep(60)
    sft_tuning_job.refresh()

print(sft_tuning_job.tuned_model_name)
print(sft_tuning_job.tuned_model_endpoint_name)
print(sft_tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# <google.cloud.aiplatform.metadata.experiment_resources.Experiment object at 0x7b5b4ae07af0>

Console

Führen Sie die folgenden Schritte aus, um ein Textmodell mit überwachter Feinabstimmung über die Google Cloud Console zu optimieren:

  1. Rufen Sie im Bereich „Vertex AI“ der Google Cloud Console die Seite Vertex AI Studio auf.

    Zu Vertex AI Studio

  2. Klicken Sie auf Abgestimmtes Modell erstellen.

  3. Wählen Sie unter Methode zur Abstimmung das Optionsfeld für Überwachte Abstimmung aus.

  4. Konfigurieren Sie unter Modelldetails Folgendes:

    1. Geben Sie im Feld Name des abgestimmten Modells einen Namen für das neue abgestimmte Modell ein, der maximal 128 Zeichen umfasst.
    2. Wählen Sie im Feld Basismodell die Option gemini-1.5-pro-002 aus.
    3. Wählen Sie im Drop-down-Feld Region die Region aus, in der der Pipeline-Optimierungsjob ausgeführt und in der das abgestimmte Modell bereitgestellt wird.
  5. Optional: Maximieren Sie den Drop-down-Pfeil Erweiterte Optionen und konfigurieren Sie Folgendes:

    1. Geben Sie im Feld Anzahl der Epochen die Anzahl der Schritte ein, die zur Modellabstimmung ausgeführt werden sollen.
    2. Geben Sie im Feld Adaptergröße die Adaptergröße ein, die für die Modelloptimierung verwendet werden soll.
    3. Geben Sie im Feld Multiplikator für die Lernrate eine Zahl ein. Der Standardwert ist 1.
  6. Klicken Sie auf Weiter.

    Die Seite Abstimmungs-Dataset wird geöffnet.

  7. Wählen Sie eine der folgenden Optionen aus, um eine Datensatzdatei hochzuladen:

    1. Wenn Sie noch keinen Datensatz hochgeladen haben, wählen Sie das Optionsfeld Datei in Cloud Storage hochladen aus.
    2. Klicken Sie im Feld JSONL-Datei auswählen auf Durchsuchen und wählen Sie die Dataset-Datei aus.
    3. Klicken Sie im Feld Dataset-Speicherort auf Durchsuchen und wählen Sie den Cloud Storage-Bucket, in dem Sie die Dataset-Datei speichern möchten.
    4. Wenn sich die Dataset-Datei bereits in einem Cloud Storage-Bucket befindet, wählen Sie das Optionsfeld Vorhandene Datei in Cloud Storage aus.
    5. Klicken Sie im Feld Cloud Storage-Dateipfad auf Durchsuchen und wählen Sie den Cloud Storage-Bucket, in dem sich Ihre Dataset-Datei befindet.
  8. Optional: Wenn Sie während des Trainings Validierungsmesswerte erhalten möchten, klicken Sie auf die Ein/Aus-Schaltfläche Modellvalidierung aktivieren.

    1. Geben Sie in der Datei Validierungs-Dataset den Cloud Storage-Pfad Ihres Validierungs-Datasets ein.
  9. Klicken Sie auf Abstimmung starten.

    Ihr neues Modell wird auf der Seite Feinabstimmung und Destillieren im Bereich Mit Gemini Pro abgestimmte Modelle angezeigt. Wenn die Abstimmung des Modells abgeschlossen ist, lautet der Status Erfolgreich.

Colab Enterprise

Sie können einen Job zur Modelloptimierung in Vertex AI über die Seitenleiste in Colab Enterprise erstellen. Über die Seitenleiste werden die relevanten Code-Snippets in Ihr Notebook eingefügt. Anschließend ändern Sie die Code-Snippets und führen sie aus, um den Optimierungsjob zu erstellen. Weitere Informationen zur Verwendung des Seitenpanels mit Ihren Vertex AI-Optimierungsjobs finden Sie unter Mit Vertex AI interagieren, um ein Modell zu optimieren.

  1. Rufen Sie in der Google Cloud Console die Colab Enterprise-Seite Notebooks auf.

    Zu "Notebooks"

  2. Wählen Sie im Menü Region die Region aus, in der sich Ihr Notebook befindet.

  3. Klicken Sie auf dem Tab Meine Notebooks auf das Notebook, das Sie öffnen möchten. Wenn Sie noch kein Notebook erstellt haben, erstellen Sie ein Notebook.

  4. Klicken Sie rechts neben Ihrem Notebook in der Seitenleiste auf die Schaltfläche  Optimierung.

    In der Seitenleiste wird der Tab Feinabstimmung maximiert.

  5. Klicken Sie auf die Schaltfläche Gemini-Modell abstimmen.

    Colab Enterprise fügt Ihrem Notebook Codezellen zum Optimieren eines Gemini-Modells hinzu.

  6. Suchen Sie in Ihrem Notebook nach der Codezelle, in der Parameterwerte gespeichert sind. Mit diesen Parametern interagieren Sie mit Vertex AI.

  7. Aktualisieren Sie die Werte für die folgenden Parameter:

    • PROJECT_ID: Die ID des Projekts, in dem sich Ihr Notebook befindet.
    • REGION: Die Region, in der sich Ihr Notebook befindet.
    • TUNED_MODEL_DISPLAY_NAME: Der Name des optimierten Modells.
  8. Aktualisieren Sie in der nächsten Codezelle die Parameter für die Modelloptimierung:

    • source_model: Das Gemini-Modell, das Sie verwenden möchten, z. B. gemini-1.0-pro-002.
    • train_dataset: Die URL Ihres Trainingsdatensatzes.
    • validation_dataset: Die URL Ihres Validierungs-Datasets.
    • Passen Sie die verbleibenden Parameter nach Bedarf an.
  9. Führen Sie die Codezellen aus, die über die Seitenleiste Ihrem Notebook hinzugefügt wurden.

  10. Klicken Sie nach dem Ausführen der letzten Codezelle auf die Schaltfläche  Optimierungsjob ansehen.

  11. Die Seitenleiste enthält Informationen zum Job zur Modellabstimmung.

    • Auf dem Tab Überwachen werden Optimierungsmesswerte angezeigt, sobald sie verfügbar sind.
    • Auf dem Tab Dataset sehen Sie eine Zusammenfassung und Messwerte zu Ihrem Datensatz, nachdem er verarbeitet wurde.
    • Auf dem Tab Details finden Sie Informationen zu Ihrem Optimierungsjob, z. B. die verwendete Optimierungsmethode und das verwendete Basismodell (Quellmodell).
  12. Nach Abschluss des Tuning-Jobs können Sie direkt vom Tab Tuning-Details zu einer Seite wechseln, auf der Sie Ihr Modell testen können. Klicken Sie auf Testen.

    In der Google Cloud Console wird die Seite Textchat von Vertex AI geöffnet, auf der Sie Ihr Modell testen können.

Hyperparameter abstimmen

Wir empfehlen, den ersten Abstimmungsjob ohne Änderung der Hyperparameter einzureichen. Der Standardwert ist der empfohlene Wert, der auf unseren Benchmarking-Ergebnissen basiert und die beste Modellausgabequalität liefert.

  • Epochen: Die Anzahl der vollständigen Durchläufe des gesamten Trainings-Datasets durch das Modell während des Trainings. Vertex AI passt den Standardwert automatisch an die Größe Ihres Trainings-Datasets an. Dieser Wert basiert auf Benchmarking-Ergebnissen, um die Qualität der Modellausgabe zu optimieren.
  • Adaptergröße: Die Adaptergröße, die für den Optimierungsjob verwendet werden soll. Die Adaptergröße wirkt sich auf die Anzahl der trainierbaren Parameter für den Optimierungsjob aus. Eine größere Adaptergröße bedeutet, dass das Modell komplexere Aufgaben lernen kann. Es erfordert jedoch einen größeren Trainingsdatensatz und längere Trainingszeiten.
  • Lernratenmultiplikator: Ein Multiplikator, der auf die empfohlene Lernrate angewendet wird. Sie können den Wert erhöhen, um schneller zu konvergieren, oder ihn verringern, um ein Überanpassen zu vermeiden.

Best Practices für die beaufsichtigte Feinabstimmung finden Sie im Blogpost Supervised Fine Tuning for Gemini: A best practices guide (Beaufsichtigte Feinabstimmung für Gemini: Best Practices-Leitfaden).

Liste der Abstimmungsjobs ansehen

Sie können eine Liste der Abstimmungsjobs in Ihrem aktuellen Projekt über die Google Cloud Console, das Vertex AI SDK für Python oder durch Senden einer GET-Anfrage mit der Methode tuningJobs aufrufen.

REST

Wenn Sie eine Liste der Modellabstimmungsjobs aufrufen möchten, senden Sie eine GET-Anfrage mit der Methode tuningJobs.list.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • TUNING_JOB_REGION: Die Region, in der der Abstimmungsjob ausgeführt wird. Dies ist auch die Standardregion, in der das abgestimmte Modell hochgeladen wird.

HTTP-Methode und URL:

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"

PowerShell

Führen Sie diesen Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

responses = sft.SupervisedTuningJob.list()

for response in responses:
    print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7c85287b2680>
# resource name: projects/12345678/locations/us-central1/tuningJobs/123456789012345

Console

Rufen Sie die Seite Vertex AI Studio auf, um Ihre Optimierungsjobs in der Google Cloud Console aufzurufen.

Zu Vertex AI Studio

Ihre Gemini-Abstimmungsjobs werden in der Tabelle im Abschnitt Abgestimmte Modelle von Gemini Pro aufgeführt.

Details eines Abstimmungsjobs abrufen

Sie können die Details eines Tuning-Jobs in Ihrem aktuellen Projekt mit der Google Cloud Console, dem Vertex AI SDK für Python oder durch Senden einer GET-Anfrage mit der Methode tuningJobs abrufen.

REST

Wenn Sie eine Liste der Modellabstimmungsjobs aufrufen möchten, senden Sie eine GET-Anfrage mit der Methode tuningJobs.get und geben Sie die TuningJob_ID an.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • TUNING_JOB_REGION: Die Region, in der der Abstimmungsjob ausgeführt wird. Dies ist auch die Standardregion, in der das abgestimmte Modell hochgeladen wird.
  • TUNING_JOB_ID: die ID des Abstimmungsjobs.

HTTP-Methode und URL:

GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID"

PowerShell

Führen Sie diesen Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
response = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)

print(response)
# Example response:
# <vertexai.tuning._supervised_tuning.SupervisedTuningJob object at 0x7cc4bb20baf0>
# resource name: projects/1234567890/locations/us-central1/tuningJobs/4982013113894174720

Console

  1. Details zu einem optimierten Modell in der Google Cloud Console finden Sie auf der Seite Vertex AI Studio.

    Zu Vertex AI Studio

  2. Suchen Sie in der Tabelle Gemini Pro-optimierte Modelle nach Ihrem Modell und klicken Sie auf Details.

    Die Details Ihres Modells werden angezeigt.

Abstimmungsjob abbrechen

Sie können einen Abstimmungsjob in Ihrem aktuellen Projekt über die Google Cloud Console, das Vertex AI SDK für Python oder durch Senden einer POST-Anfrage mit der Methode tuningJobs abbrechen.

REST

Wenn Sie eine Liste der Modellabstimmungsjobs aufrufen möchten, senden Sie eine GET-Anfrage mit der Methode tuningJobs.cancel und geben Sie die TuningJob_ID an.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • TUNING_JOB_REGION: Die Region, in der der Abstimmungsjob ausgeführt wird. Dies ist auch die Standardregion, in der das abgestimmte Modell hochgeladen wird.
  • TUNING_JOB_ID: die ID des Abstimmungsjobs.

HTTP-Methode und URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel

Senden Sie die Anfrage mithilfe einer der folgenden Optionen:

curl

Führen Sie folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel"

PowerShell

Führen Sie diesen Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Python

import vertexai
from vertexai.tuning import sft

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# LOCATION = "us-central1"
vertexai.init(project=PROJECT_ID, location=LOCATION)

tuning_job_id = "4982013113894174720"
job = sft.SupervisedTuningJob(
    f"projects/{PROJECT_ID}/locations/{LOCATION}/tuningJobs/{tuning_job_id}"
)
job.cancel()

Console

  1. Wenn Sie einen Optimierungsjob in der Google Cloud Console abbrechen möchten, rufen Sie die Seite Vertex AI Studio auf.

    Zu Vertex AI Studio

  2. Klicken Sie in der Tabelle Gemini Pro-optimierte Modelle auf Ausführung verwalten.

  3. Klicken Sie auf Abbrechen.

Optimiertes Modell mit einem Prompt testen

Sie können einen Abstimmungsjob in Ihrem aktuellen Projekt mit dem Vertex AI SDK for Python oder durch Senden einer POST-Anfrage mit der Methode tuningJobs testen.

Im folgenden Beispiel wird ein Modell mit der Frage „Warum ist der Himmel blau?“ aufgefordert.

REST

Wenn Sie ein abgestimmtes Modell mit einem Prompt testen möchten, senden Sie eine POST-Anfrage und geben Sie TUNED_ENDPOINT_ID an.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • PROJECT_ID: Ihre Projekt-ID.
  • TUNING_JOB_REGION: Die Region, in der der Abstimmungsjob ausgeführt wird. Dies ist auch die Standardregion, in der das abgestimmte Modell hochgeladen wird.
  • ENDPOINT_ID ist die Endpunkt-ID des abgestimmten Modells von der GET API.
  • TEMPERATURE: Die Temperatur wird für die Probenahme während der Antwortgenerierung verwendet. Dies passiert, wenn topP und topK angewendet werden. Die Temperatur bestimmt den Grad der Zufälligkeit bei der Tokenauswahl. Niedrigere Temperaturen eignen sich gut für Prompts, die eine weniger offene oder kreative Antwort erfordern, während höhere Temperaturen zu vielfältigeren oder kreativeren Ergebnissen führen können. Eine Temperatur von 0 bedeutet, dass immer die Tokens mit der höchsten Wahrscheinlichkeit ausgewählt werden. In diesem Fall sind die Antworten auf einen bestimmten Prompt größtenteils deterministisch, aber eine gewisse Variation ist dennoch möglich.

    Wenn das Modell eine zu allgemeine oder zu kurze Antwort zurückgibt, oder wenn das Modell eine Fallback-Antwort ausgibt, versuchen Sie, die Temperatur zu erhöhen.

  • TOP_P: Der Wert „Top-P“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Die Tokens werden von den wahrscheinlichsten (siehe „Top-K“) bis zu den unwahrscheinlichsten Werten ausgewählt, bis die Summe ihrer Wahrscheinlichkeiten dem „Top-P“-Wert entspricht. Beispiel: Wenn die Tokens A, B und C eine Wahrscheinlichkeit von 0,3, 0,2 und 0,1 haben und der „Top-P“-Wert 0.5 ist, wählt das Modell anhand der Temperatur entweder A oder B als das nächste Token und C als Kandidaten ausschließen.

    Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

  • TOP_K: Der Wert „Top-K“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Ein „Top-K“ von 1 bedeutet, dass das nächste ausgewählte Token unter den Tokens im Modell-Vokabular (auch als gierige Decodierung bezeichnet) am wahrscheinlichsten ist, während ein „Top-K“ von3 bedeutet, dass das nächste Token mithilfe der Temperatur aus den drei wahrscheinlichsten Tokens ausgewählt wird.

    Für jeden Tokenauswahlschritt werden die „Top-K“-Tokens mit den höchsten Wahrscheinlichkeiten abgetastet. Anschließend werden Tokens weiter auf der Grundlage von „Top-P“ gefiltert, wobei das endgültige Token mithilfe von Temperaturproben ausgewählt wird.

    Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

  • MAX_OUTPUT_TOKENS: Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa vier Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.

    Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für längere Antworten an.

HTTP-Methode und URL:

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent

JSON-Text der Anfrage:

{
    "contents": [
        {
            "role": "USER",
            "parts": {
                "text" : "Why is sky blue?"
            }
        }
    ],
    "generation_config": {
        "temperature":TEMPERATURE,
        "topP": TOP_P,
        "topK": TOP_K,
        "maxOutputTokens": MAX_OUTPUT_TOKENS
    }
}

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent"

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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

Python

from vertexai.generative_models import GenerativeModel

sft_tuning_job = sft.SupervisedTuningJob("projects/<PROJECT_ID>/locations/<TUNING_JOB_REGION>/tuningJobs/<TUNING_JOB_ID>")
tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name)
print(tuned_model.generate_content(content))

Console

  1. Details zu einem optimierten Modell in der Google Cloud Console finden Sie auf der Seite Vertex AI Studio.

    Zu Vertex AI Studio

  2. Wählen Sie in der Tabelle Abgestimmte Modelle von Gemini Pro die Option Testen aus.

    Daraufhin wird eine Seite geöffnet, auf der Sie eine Unterhaltung mit Ihrem optimierten Modell starten können.

Abgestimmtes Modell löschen

Optimierte Modelle können nicht gelöscht werden.

Messwerte für Feinabstimmung und Validierung

Sie können einen Modellabstimmungsjob konfigurieren, um Messwerte zur Modellabstimmung und Modellbewertung zu erfassen und zu melden. Diese können dann in Vertex AI Studio visualisiert werden.

  1. Details zu einem optimierten Modell in der Google Cloud Console finden Sie auf der Seite Vertex AI Studio.

    Zu Vertex AI Studio

  2. Klicken Sie in der Tabelle Optimieren und zusammenfassen auf den Namen des optimierten Modells, für das Sie Messwerte aufrufen möchten.

    Die Optimierungsmesswerte werden auf dem Tab Überwachen angezeigt.

Messwerte für die Modellabstimmung

Der Modellabstimmungsjob erfasst automatisch die folgenden Abstimmungsmesswerte für gemini-1.5-pro-002.

  • /train_total_loss: Verlust für das Abstimmungs-Dataset in einem Trainingsschritt.
  • /train_fraction_of_correct_next_step_preds: Die Tokengenauigkeit in einem Trainingsschritt. Eine einzelne Vorhersage besteht aus einer Abfolge von Tokens. Dieser Messwert misst die Genauigkeit der vorhergesagten Tokens im Vergleich zum Ground Truth im Abstimmungs-Dataset.
  • /train_num_predictions:: Anzahl der vorhergesagten Tokens in einem Trainingsschritt.

Modellvalidierungsmesswerte:

Sie können einen Modellabstimmungsjob konfigurieren, um die folgenden Validierungsmesswerte für gemini-1.5-pro-002 zu erfassen.

  • /eval_total_loss: Verlust für das Validierungs-Dataset in einem Validierungsschritt.
  • /eval_fraction_of_correct_next_step_preds: Die Tokengenauigkeit in einem Validierungsschritt. Eine einzelne Vorhersage besteht aus einer Abfolge von Tokens. Dieser Messwert misst die Genauigkeit der vorhergesagten Tokens im Vergleich zum Ground Truth im Validierungs-Dataset.
  • /eval_num_predictions: Anzahl der vorhergesagten Tokens in einem Validierungsschritt.

Die Messwertvisualisierungen sind verfügbar, sobald der Abstimmungsjob gestartet wurde. Sie wird während der Optimierung in Echtzeit aktualisiert. Wenn Sie beim Erstellen des Abstimmungsjobs kein Validierungs-Dataset angeben, sind nur die Visualisierungen für die Abstimmungsmesswerte verfügbar.

Nächste Schritte