このページでは、Gemini モデルの強化学習ファインチューニングのエンドツーエンドのワークフローについて説明します。チューニング ジョブの作成、ステータスの確認、チューニング済みモデルのエンドポイントの取得、それに対する推論の実行を行います。
始める前に、強化学習のファインチューニングについてで、機能の概要、サポートされているモデル、サポートされているリージョンを確認してください。
強化学習ファインチューニング ジョブを作成する
強化学習ファインチューニング ジョブは、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/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"
}
}
}
}'
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
強化学習ファインチューニング ジョブのステータスを確認する
実行中の強化学習ファインチューニング ジョブの進行状況、パフォーマンス、品質は、 Google Cloud コンソールの [Agent Platform > モデル > チューニング] ページでモニタリングできます。各チューニング ジョブには専用のモニタリング ビューがあり、トレーニングと評価の報酬、生成長、その他のチューニング指標のグラフを使用して、基盤となるチューニング ステータスを表示します。出力される指標の完全なリストとその解釈方法については、指標とモニタリングのページをご覧ください。
トレーニング時間
トレーニング時間は、次の要因によって影響を受けます。
- トレーニング データセットと検証データセットのサイズ。詳細については、チューニング データセットのページをご覧ください。
- ハイパーパラメータ -
samplesPerPrompt、バッチサイズ、エポック数、学習率乗数など。詳細については、ハイパーパラメータ ページをご覧ください。
設定によっては、Gemini 強化学習のファインチューニング ジョブが数時間から数日間実行されることがあります。
チューニング済みモデルのエンドポイントを取得する
チューニング ジョブが JOB_STATE_SUCCEEDED に達したら、GetTuningJob リクエストを発行してレスポンスの 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"
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- TUNING_JOB_ID: チューニング ジョブの 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?" }
]
}
]
}'
次のように置き換えます。
- PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- ENDPOINT_ID:
GetTuningJobレスポンスのtunedModel.endpointフィールドで返されたエンドポイント ID。
次のステップ
- 強化学習ファインチューニング ジョブの詳細を確認する。