Schnelleinstieg: Abstimmung für Reinforcement Learning

Auf dieser Seite wird der End-to-End-Workflow für die Feinabstimmung von Gemini-Modellen mit Reinforcement Learning beschrieben: Erstellen eines Abstimmungsjobs, Prüfen des Status, Abrufen des Endpunkts des abgestimmten Modells und Ausführen von Inferenzanfragen.

Bevor Sie beginnen, lesen Sie den Abschnitt Feinabstimmung mit Reinforcement Learning. Dort finden Sie eine Übersicht über das Feature, die unterstützten Modelle und die unterstützten Regionen.

Abstimmungsjob für Reinforcement Learning erstellen

Ein Reinforcement Learning-Optimierungsjob wird erstellt, indem eine POST-Anfrage an den tuningJobs.create-Endpunkt gesendet wird. Das vollständige Anfrageschema und alle konfigurierbaren Felder finden Sie auf der Seite Reinforcement Learning-Optimierungsjob.

In den Beispielen auf dieser Seite wird us-central1 als Tuning-Region verwendet. Das resultierende abgestimmte Modell wird über den Multiregionen-Endpunkt us bereitgestellt. Eine vollständige Liste der unterstützten Tuning- und Bereitstellungsregionen finden Sie im Abschnitt Unterstützte Modelle und Regionen.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://us-central1-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us-central1/tuningJobs" \
  -d \
  $'{
    "tunedModelDisplayName": "dai-image-test",
    "baseModel": "gemini-3.5-flash",
    "reinforcementTuningSpec": {
      "trainingDatasetUri": "gs://path/to/your/training_dataset.jsonl",
      "validationDatasetUri": "gs://path/to/your/eval_dataset.jsonl",
      "hyperParameters": {
        "epochCount":15,
        "learningRateMultiplier":1.0,
        "samplesPerPrompt":16,
        "adapterSize":"ADAPTER_SIZE_SIXTEEN",
        "maxOutputTokens":32768,
        "batchSize":32,
        "evaluateInterval":5,
        "checkpointInterval":5,
        "thinkingLevel":"HIGH"
      },
      "singleRewardConfig": {
        "rewardName": "your_reward_function_name",
        "parseResponseConfig": {"parseType":"IDENTITY"},
        "cloudRunRewardScorer": {
          "cloudRunUri":"https://your.cloud.run.uri"
        }
      }
    }
  }'

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID

Status des Reinforcement Learning-Abstimmungsjobs prüfen

Sie können den Fortschritt, die Leistung und die Qualität eines laufenden Reinforcement Learning-Feinabstimmungsjobs in der Google Cloud Console auf der Seite Agent Platform > Model > Tuning überwachen. Jeder Abstimmungsjob hat eine eigene Überwachungsansicht, in der der zugrunde liegende Abstimmungsstatus mit Diagrammen für Trainings- und Bewertungsbelohnungen, Generierungslänge und anderen Abstimmungsmesswerten angezeigt wird. Eine vollständige Liste der ausgegebenen Messwerte und Informationen dazu, wie Sie sie interpretieren, finden Sie auf der Seite Messwerte und Monitoring.

Trainingszeit

Die Trainingszeit wird von den folgenden Faktoren beeinflusst:

  • Größe des Trainings- und Validierungsdatensatzes: Weitere Informationen finden Sie auf der Seite Abstimmungsdatensatz.
  • Hyperparameter, einschließlich samplesPerPrompt, Batch-Größe, Anzahl der Epochen und Multiplikator für die Lernrate. Weitere Informationen finden Sie auf der Seite Hyperparameter.

Je nach Einrichtung kann ein Job zum Feinabstimmen des Reinforcement Learning für Gemini Stunden bis Tage dauern.

Endpunkt des feinabgestimmten Modells abrufen

Nachdem der Abstimmungsjob JOB_STATE_SUCCEEDED erreicht hat, rufen Sie den bereitgestellten Endpunkt des abgestimmten Modells ab, indem Sie eine GetTuningJob-Anfrage senden und das Feld tunedModel.endpoint der Antwort lesen.

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • TUNING_JOB_ID: die ID des Abstimmungsjobs.

Beispielantwort (abgekürzt):

{
  "name": "projects/{PROJECT_ID}/locations/us-central1/tuningJobs/{TUNING_JOB_ID}",
  "tunedModelDisplayName": "my-rl-tuned-model",
  "state": "JOB_STATE_SUCCEEDED",
  "tunedModel": {
    "model": "projects/{PROJECT_ID}/locations/us-central1/models/{MODEL_ID}",
    "endpoint": "projects/{PROJECT_ID}/locations/us/endpoints/{ENDPOINT_ID}"
  },
  "reinforcementTuningSpec": { ... }
}

Wenn der Abstimmungsjob erfolgreich ist, wird endpoint aus dem letzten Prüfpunkt in der Antwort angezeigt.

Inferenz für den Endpunkt des feinabgestimmten Modells ausführen

Das abgestimmte Modell liefert Vorhersagen über die Standard-generateContent-API am zurückgegebenen Endpunkt. Da der Abstimmungsjob in us-central1 ausgeführt wurde, wird das abgestimmte Modell über den Multi-Region-Endpunkt us bereitgestellt.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.us.rep.googleapis.com/v1beta1/projects/PROJECT_ID/locations/us/endpoints/ENDPOINT_ID:generateContent" \
  -d \
  $'{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "Why is the sky blue?" }
        ]
      }
    ]
  }'

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID
  • ENDPOINT_ID: Die Endpunkt-ID, die im Feld tunedModel.endpoint der GetTuningJob-Antwort zurückgegeben wird.

Nächste Schritte