快速入門導覽課程:使用 API 進行強化學習微調

本頁面將逐步引導您完成端對端工作流程,使用 Agent Platform API 強化學習微調 Gemini 模型:建立微調工作、檢查工作狀態、擷取微調模型端點,以及對端點執行推論。如要在 Google Cloud 控制台中完成這些工作,請參閱Google Cloud 控制台快速入門導覽課程。

開始之前,請參閱「關於強化學習微調」,瞭解這項功能、支援的模型和支援的地區。

建立強化學習微調工作

如要建立強化學習微調工作,請將 POST 要求傳送至 tuningJobs.create 端點。如要查看完整的要求結構定義和所有可設定的欄位,請參閱「強化學習微調工作」頁面。

本頁範例使用 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 控制台的「 Models> Tuning 」頁面。每項調整工作都有專屬的監控檢視畫面,會以圖表呈現基礎調整狀態,包括訓練和評估獎勵、生成長度和其他調整指標。如需完整的指標清單和解讀方式,請參閱「指標和監控」頁面。

訓練時間

訓練時間會受到下列因素影響:

  • 訓練和驗證資料集大小。詳情請參閱「調整資料集」頁面。
  • 超參數,包括 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。

後續步驟