クイックスタート: API を使用した強化学習ファインチューニング

このページでは、Agent Platform API を使用して Gemini モデルの強化学習ファインチューニングを行うエンドツーエンドのワークフロー(チューニング ジョブの作成、ステータスの確認、チューニング済みモデルのエンドポイントの取得、推論の実行)について説明します。 Google Cloud コンソールでこれらのタスクを完了するには、Google Cloud コンソールのクイックスタートをご覧ください。

始める前に、強化学習のファインチューニングについてで、機能の概要、サポートされているモデル、サポート対象の地域を確認してください。

強化学習ファインチューニング ジョブを作成する

強化学習ファインチューニング ジョブは、tuningJobs.create エンドポイントに POST リクエストを送信して作成されます。リクエスト スキーマ全体と構成可能なすべてのフィールドについては、強化学習ファインチューニング ジョブのページをご覧ください。

このページの例では、チューニング リージョンとして us-central1 を使用しています。結果として得られるチューニング済みモデルは、us マルチリージョン エンドポイントから提供されます。サポートされているチューニングとサービングのリージョンの完全なリストについては、サポートされているモデルとリージョンのセクションをご覧ください。

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/my/training_dataset.jsonl",
      "validationDatasetUri": "gs://path/to/my/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": "my_reward_function_name",
        "parseResponseConfig": {"parseType":"IDENTITY"},
        "cloudRunRewardScorer": {
          "cloudRunUri":"https://my.cloud.run.uri"
        }
      }
    }
  }'

次のように置き換えます。

  • <var>PROJECT_ID</var>: 実際の Google Cloud プロジェクト ID。

強化学習ファインチューニング ジョブのステータスを確認する

実行中の強化学習ファインチューニング ジョブの進行状況、パフォーマンス、品質は、 Google Cloud コンソールの [モデル] > [チューニング] ページでモニタリングできます。各チューニング ジョブには専用のモニタリング ビューがあり、トレーニングと評価の報酬、生成の長さ、その他のチューニング指標のグラフで、基盤となるチューニング ステータスが表示されます。出力される指標の完全なリストと、その解釈方法については、指標とモニタリングのページをご覧ください。

トレーニング時間

トレーニング時間は、次の要因の影響を受けます。

  • トレーニング データセットと検証データセットのサイズ。詳細については、チューニング データセットのページをご覧ください。
  • ハイパーパラメータ(samplesPerPrompt、バッチサイズ、エポック数、学習率乗数など)。詳細については、ハイパーパラメータのページをご覧ください。

設定によっては、Gemini 強化学習ファインチューニング ジョブが数時間から数日かかることがあります。

チューニング済みモデルのエンドポイントを取得する

チューニング ジョブが JOB_STATE_SUCCEEDED に達したら、tuningJobs.get リクエストを発行してレスポンスの tunedModel.endpoint フィールドを読み取り、デプロイされたチューニング済みモデルのエンドポイントを取得します。

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"

次のように置き換えます。

  • <var>PROJECT_ID</var>: 実際の Google Cloud プロジェクト ID。
  • <var>TUNING_JOB_ID</var>: チューニング ジョブの ID。

レスポンスの例(省略):

{
  "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": { ... }
}

チューニング ジョブが成功すると、最後のチェックポイントの endpoint がレスポンスに表示されます。

チューニング済みモデルのエンドポイントで推論を実行する

チューニング済みモデルは、返されたエンドポイントで標準の generateContent API を介して予測を提供します。チューニング ジョブが us-central1 で実行された場合、チューニング済みモデルは us マルチリージョン エンドポイントから提供されます。

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?" }
        ]
      }
    ]
  }'

次のように置き換えます。

  • <var>PROJECT_ID</var>: 実際の Google Cloud プロジェクト ID。
  • <var>ENDPOINT_ID</var>: GetTuningJob レスポンスの tunedModel.endpoint フィールドに返されたエンドポイント ID。

次のステップ