本指南說明如何使用監督式微調功能調整 Gemini 模型。 本頁面涵蓋下列主題: 下圖概略說明整體工作流程: 您必須先準備監督式微調資料集,才能調整模型。如需操作說明,請參閱資料模態的說明文件: 下列 Gemini 模型支援監督式微調: 您可以使用 Google Cloud 控制台、Google Gen AI SDK、Python 適用的 Vertex AI SDK、REST API 或 Colab Enterprise,建立監督式微調工作。下表可協助您判斷哪一個選項最適合您的用途。 如要使用 Google Cloud 控制台微調文字模型,請按照下列步驟操作: 在 Google Cloud 控制台的 Vertex AI 專區中,前往「Vertex AI Studio」頁面。 按一下「Create tuned model」(建立調整後的模型)。 在「Model details」(模型詳細資料) 下方,設定下列項目: 在「微調設定」下方,設定下列項目: 選用:如要停用中途查核點,只使用最新查核點,請選取「僅匯出最後一個查核點」切換鈕。 按一下「繼續」。「Tuning dataset」(微調資料集) 頁面隨即開啟。 選取微調資料集: 選用:如要在訓練期間取得驗證指標,請選取「Enable model validation」(啟用模型驗證) 切換鈕。 按一下「開始調整」。 新模型會顯示在「調整及精煉」頁面的「Gemini Pro 調整模型」部分。模型調整完畢後,「狀態」會顯示「成功」。 如要建立模型微調作業,請使用 使用任何要求資料之前,請先替換以下項目: HTTP 方法和網址: JSON 要求主體: 如要傳送要求,請選擇以下其中一個選項: 將要求主體儲存在名為 將要求主體儲存在名為 您應該會收到類似如下的 JSON 回應。 您可以在 Colab Enterprise 中使用側邊面板,在 Vertex AI 建立模型微調作業。側邊面板會將相關程式碼片段新增至筆記本。接著,您可以修改程式碼片段並執行,建立微調工作。如要進一步瞭解如何搭配使用側邊面板和 Vertex AI 調整作業,請參閱「與 Vertex AI 互動來調整模型」。 前往 Google Cloud 控制台的 Colab Enterprise「我的筆記本」頁面。 在「Region」(區域) 選單中,選取包含筆記本的區域。 按一下要開啟的筆記本。如果尚未建立筆記本,請建立筆記本。 在筆記本右側的側邊面板中,按一下「微調」 側邊面板會展開「微調」分頁。 按一下「調整 Gemini 模型」按鈕。 Colab Enterprise 會在筆記本中加入程式碼儲存格,用於調整 Gemini 模型。 在筆記本中,找出儲存參數值的程式碼儲存格。 您將使用這些參數與 Vertex AI 互動。 更新下列參數的值: 在下一個程式碼儲存格中,更新模型微調參數: 執行側邊面板新增至筆記本的程式碼儲存格。 最後一個程式碼儲存格執行完畢後,按一下顯示的「View tuning job」(查看微調工作) 側邊面板會顯示模型微調工作的相關資訊。 調整作業完成後,您可以直接從「調整詳細資料」分頁前往模型測試頁面。按一下「測試」。 Google Cloud 控制台會開啟 Vertex AI 的「Text chat」(文字對話) 頁面,您可以在其中測試模型。 第一次執行微調工作時,請使用預設超參數。系統會根據基準化結果,將這些值設為建議值。 如要瞭解監督式微調的最佳做法,請參閱「Gemini 的監督式微調:最佳做法指南」網誌文章。 您可以查看微調工作清單、取得特定工作的詳細資料,或取消執行中的工作。 如要查看專案中的微調工作清單,請使用 Google Cloud 控制台、Google Gen AI SDK、Python 適用的 Vertex AI SDK,或使用 如要在 Google Cloud 控制台中查看微調作業,請前往 Vertex AI Studio 頁面。 Gemini 調整工作會列在「Gemini Pro 調整過的模型」表格中。 如要查看模型微調工作清單,請使用 使用任何要求資料之前,請先替換以下項目: HTTP 方法和網址: 如要傳送要求,請選擇以下其中一個選項: 執行下列指令: 執行下列指令: 您應該會收到類似如下的 JSON 回應。 如要取得特定微調工作的詳細資料,請使用 Google Cloud 控制台、Google Gen AI SDK、Python 適用的 Vertex AI SDK,或使用 如要在 Google Cloud 控制台中查看微調模型的詳細資料,請前往 Vertex AI Studio 頁面。 在「Gemini Pro 調整過的模型」表格中找出您的模型,然後按一下「詳細資料」。 模型詳細資料頁面隨即開啟。 如要取得模型微調作業的詳細資料,請使用 使用任何要求資料之前,請先替換以下項目: HTTP 方法和網址: 如要傳送要求,請選擇以下其中一個選項: 執行下列指令: 執行下列指令: 您應該會收到類似如下的 JSON 回應。 如要取消正在執行的微調工作,請使用 Google Cloud 控制台、Python 適用的 Vertex AI SDK,或使用 如要在 Google Cloud 控制台中取消微調作業,請前往「Vertex AI Studio」頁面。 在「Gemini Pro tuned models」(Gemini Pro 微調模型) 表格中,按一下「 按一下「取消」。 如要取消模型微調工作,請使用 使用任何要求資料之前,請先替換以下項目: HTTP 方法和網址: 如要傳送要求,請選擇以下其中一個選項: 執行下列指令: 執行下列指令: 您應該會收到類似如下的 JSON 回應。 模型調整完畢後,您可以像使用基礎 Gemini 模型一樣,與其端點互動。您可以使用 Python 適用的 Vertex AI SDK、Google Gen AI SDK,或使用 對於支援推理的模型 (例如 Gemini 2.5 Flash),請將微調工作的思考預算設為 0,以提升效能並節省成本。在監督式微調期間,模型會學習模仿微調資料集中的基準真相,並省略思考過程。因此,微調模型可以有效處理工作,不需要思考預算。 下列範例顯示如何使用「為什麼天空是藍的?」問題提示微調模型。 如要在 Google Cloud 控制台中測試微調模型,請前往「Vertex AI Studio」頁面。 在「Gemini Pro 調整過的模型」表格中找到模型,然後點選「測試」。 系統會開啟新頁面,讓您與調整後模型展開對話。 如要使用提示測試微調模型,請傳送 POST 要求並指定 使用任何要求資料之前,請先替換以下項目: 如果模型的回覆太普通、太短或提供了備用回覆,再試試看調高 Temperature。 如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。 在每個符記選取步驟中,模型會對機率最高的「Top-K」符記取樣,接著進一步根據「Top-P」篩選詞元,最後依 temperature 選出最終詞元。 如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。 如要取得較短的回覆,請指定較低的值;如要取得可能較長的回覆,請調高此值。 HTTP 方法和網址: JSON 要求主體: 如要傳送要求,請選擇以下其中一個選項: 將要求主體儲存在名為 將要求主體儲存在名為 您應該會收到類似如下的 JSON 回應。 如要刪除微調模型,請按照下列步驟操作: 呼叫 使用任何要求資料之前,請先替換以下項目: HTTP 方法和網址: 如要傳送要求,請選擇以下其中一個選項: 執行下列指令: 執行下列指令: 您應該會收到執行成功的狀態碼 (2xx) 和空白回應。 您可以設定模型微調工作,收集及回報微調和評估指標,然後在 Vertex AI Studio 中以視覺化方式呈現。 如要查看微調模型的指標,請按照下列步驟操作: 在 Google Cloud 控制台的 Vertex AI 專區中,前往「Vertex AI Studio」頁面。 在「微調和蒸餾」表格中,按一下要查看的微調模型名稱。 指標會顯示在「Monitor」分頁中。調整工作開始後,系統就會提供視覺化資料,並即時更新。 模型微調作業會自動收集 如果您在建立調整作業時提供驗證資料集,系統會為
事前準備
支援的模型
建立微調工作
方法 說明 用途 Google Cloud 控制台 用於建立及管理微調工作的圖形使用者介面。 適合用於入門、視覺化探索,或執行一次性調整作業,不必編寫程式碼。 Google Gen AI SDK 專為生成式 AI 工作流程設計的高階 Python SDK。 適合偏好簡化介面,且以生成式 AI 為主的 Python 開發人員。 Python 適用的 Vertex AI SDK 適用於所有 Vertex AI 服務的 Python SDK。 建議用於將模型微調整合至較大的機器學習運作管道和自動化指令碼。 REST API 這個介面與語言無關,可直接向 Vertex AI API 發出 HTTP 要求。 適用於自訂整合、非 Python 環境,或需要精細控制要求的用途。 Colab Enterprise 互動式筆記本環境,附有可產生微調程式碼片段的側邊面板。 非常適合實驗、反覆開發,以及在筆記本中記錄微調程序。 主控台
gemini-2.5-flash
」。
Google Gen AI SDK
Python 適用的 Vertex AI SDK
REST
tuningJobs.create
方法傳送 POST 要求。部分參數不支援所有模型。請只加入要微調模型適用的參數。 <
true
,只使用最新的檢查點。projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key
。金鑰必須與運算資源的建立位置位於相同區域。詳情請參閱客戶管理的加密金鑰 (CMEK)。roles/aiplatform.tuningServiceAgent
角色授予該服務帳戶。此外,請將 Tuning Service Agent roles/iam.serviceAccountTokenCreator
角色指派給客戶管理的服務帳戶。POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
{ "baseModel": "BASE_MODEL", "supervisedTuningSpec" : { "trainingDatasetUri": "TRAINING_DATASET_URI", "validationDatasetUri": "VALIDATION_DATASET_URI", "hyperParameters": { "epochCount": "EPOCH_COUNT", "adapterSize": "ADAPTER_SIZE", "learningRateMultiplier": "LEARNING_RATE_MULTIPLIER" }, "export_last_checkpoint_only": EXPORT_LAST_CHECKPOINT_ONLY, }, "tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME", "encryptionSpec": { "kmsKeyName": "KMS_KEY_NAME" }, "serviceAccount": "SERVICE_ACCOUNT" }
curl
request.json
的檔案中,然後執行下列指令:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"PowerShell
request.json
的檔案中,然後執行下列指令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand ContentcURL 指令範例
PROJECT_ID=myproject LOCATION=global curl \ -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \ -d \ $'{ "baseModel": "gemini-2.5-flash", "supervisedTuningSpec" : { "training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_train_data.jsonl", "validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_validation_data.jsonl" }, "tunedModelDisplayName": "tuned_gemini" }'
Colab Enterprise
PROJECT_ID
:筆記本所在的專案 ID。 REGION
:筆記本所在的區域。 TUNED_MODEL_DISPLAY_NAME
:微調後模型的名稱。
source_model
:要使用的 Gemini 模型,例如 gemini-2.0-flash-001
。 train_dataset
:訓練資料集的網址。 validation_dataset
:驗證資料集的網址。
調整超參數
查看及管理調整工作
查看調整工作清單
tuningJobs
方法傳送 GET 要求。 主控台
Google Gen AI SDK
Python 適用的 Vertex AI SDK
REST
tuningJobs.list
方法傳送 GET 要求。
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
curl
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"PowerShell
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content取得調整工作的詳細資料
tuningJobs
方法傳送 GET 要求。 主控台
Google Gen AI SDK
Python 適用的 Vertex AI SDK
REST
tuningJobs.get
方法傳送 GET 要求,並指定 TuningJob_ID
。
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID
curl
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID"PowerShell
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content取消微調工作
tuningJobs
方法傳送 POST 要求。 主控台
Python 適用的 Vertex AI SDK
REST
tuningJobs.cancel
方法傳送 POST 要求,並指定 TuningJob_ID
。
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel
curl
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel"PowerShell
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content評估微調後的模型
generateContent
方法傳送 POST 要求。 主控台
Google Gen AI SDK
Python 適用的 Vertex AI SDK
from vertexai.generative_models import GenerativeModel sft_tuning_job = sft.SupervisedTuningJob("projects/<PROJECT_ID>/locations/<TUNING_JOB_REGION>/tuningJobs/<TUNING_JOB_ID>") tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name) print(tuned_model.generate_content(content))
REST
TUNED_ENDPOINT_ID
。
topP
和 topK
時發生。溫度參數會決定選取詞元時的隨機程度。 如果希望提示生成較不具開放性和創意性的回覆,建議調低溫度參數。另一方面,如果溫度參數較高,則可能產生較多元或有創意的結果。如果溫度參數為 0
,模型一律會選取可能性最高的詞元。在這種情況下,特定提示的回覆大多是確定性的,但仍可能出現少量差異。0.5
,模型會依據 temperature 選擇 A 或 B 做為下一個詞元,並排除 C。1
,代表下一個所選詞元是模型詞彙表的所有詞元中可能性最高者 (也稱為「貪婪解碼」)。如果 Top-K 設為 3
,則代表模型會依據 temperature,從可能性最高的 3 個詞元中選取下一個詞元。POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent
{ "contents": [ { "role": "USER", "parts": { "text" : "Why is sky blue?" } } ], "generation_config": { "temperature":TEMPERATURE, "topP": TOP_P, "topK": TOP_K, "maxOutputTokens": MAX_OUTPUT_TOKENS } }
curl
request.json
的檔案中,然後執行下列指令:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent"PowerShell
request.json
的檔案中,然後執行下列指令:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content刪除調整後模型
Python 適用的 Vertex AI SDK
from google.cloud import aiplatform aiplatform.init(project=PROJECT_ID, location=LOCATION) # To find out which models are available in Model Registry models = aiplatform.Model.list() model = aiplatform.Model(MODEL_ID) model.delete()
REST
models.delete
方法。
DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID
curl
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID"PowerShell
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID" | Select-Object -Expand Content調整及驗證指標
模型調整指標
Gemini 2.0 Flash
的下列微調指標:
/train_total_loss
:訓練步驟中微調資料集的損失。/train_fraction_of_correct_next_step_preds
:訓練步驟的權杖準確率。單一預測結果由一連串符記組成。這項指標會比較預測的權杖與微調資料集中的實際資料,藉此衡量預測權杖的準確度。/train_num_predictions
:訓練步驟中預測的權杖數量。模型驗證指標
Gemini 2.0 Flash
收集下列驗證指標。如未指定驗證資料集,則只能使用微調指標。
/eval_total_loss
:驗證步驟中驗證資料集的損失。/eval_fraction_of_correct_next_step_preds
:驗證步驟的權杖準確度。單一預測結果由一連串符記組成。這項指標會比較驗證資料集中的預測權杖與實際資料,藉此衡量預測權杖的準確度。/eval_num_predictions
:驗證步驟中預測的權杖數量。後續步驟
使用監督式微調功能調整 Gemini 模型
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-19 (世界標準時間)。