このページでは、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。
次のステップ
- 強化学習ファインチューニング ジョブの詳細を確認する。
- サポートされている報酬関数を確認する。
- 強化学習のハイパーパラメータを構成します。
- 指標とモニタリングを追跡する方法を確認する。
- Google Cloud コンソールを使用してチューニング ジョブを作成するには、Google Cloud コンソールのクイックスタートをお試しください。