快速入門:使用 API 微調強化學習模型

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

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

建立強化學習微調工作

如要建立強化學習微調工作,請向 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"
        }
      }
    }
  }'

更改下列內容:

  • PROJECT_ID: Cloud de Confiance by S3NS 專案 ID。

查看強化學習微調工作狀態

您可以在 Cloud de Confiance 控制台的「模型」>「微調」頁面,監控執行中強化學習微調工作的進度、效能和品質。每項微調工作都有專屬的監控檢視畫面,可透過訓練和評估獎勵、生成長度和其他微調指標的圖表,顯示基礎微調狀態。如需發出的指標完整清單和解讀方式,請參閱「指標和監控」頁面。

訓練時間

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

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

更改下列內容:

  • PROJECT_ID: Cloud de Confiance by S3NS 專案 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: Cloud de Confiance by S3NS 專案 ID。
  • ENDPOINT_ID:GetTuningJob 回應的 tunedModel.endpoint 欄位中傳回的端點 ID。

後續步驟