本文說明如何使用監督式微調功能調整 Gemini 模型。
事前準備
開始前,您必須先準備監督式微調資料集。視用途而定,準備資料集時有不同的需求條件:
支援的模型
下列 Gemini 模型支援監督式調整:
按一下即可展開支援的模型
建立調整工作
您可以使用 Cloud de Confiance 控制台、Google Gen AI SDK、REST API 或 Colab Enterprise 建立監督式微調工作。
選用:(預先發布版) 加入 evaluationConfig,以便在調整工作完成後,使用 Gen AI Evaluation Service 自動執行評估。這項評估設定適用於 us-central1 區域。
控制台
如要使用Cloud de Confiance 控制台,透過監督式微調功能調整文字模型,請按照下列步驟操作:
- 前往 Cloud de Confiance 控制台的 Gemini Enterprise Agent Platform 專區,然後前往「Agent Studio」頁面。
- 按一下「Create tuned model」(建立調整後的模型)。
- 在「Model details」(模型詳細資料) 下方,設定下列項目:
- 在「Tuned model name」(調整後模型名稱) 欄位中,輸入新調整後模型的名稱,最多 128 個半形字元。
- 在「Base model」(基礎模型) 欄位中,選取要調整的基礎模型。
- 在「Region」(區域) 下拉式欄位中,選取管道調整工作執行的區域,以及調整後模型的部署位置。
- 在「Tuning setting」(調整設定) 下方,進行下列設定:
- 在「Number of epochs」(訓練週期數) 欄位中,輸入模型調整作業要執行的步數。
- 在「Adapter Size」(轉接器大小) 欄位中,輸入要用於調整模型的轉接器大小。
- 在「Learning rate multiplier」(學習率調節係數) 欄位中,輸入每次疊代的步距。預設值為 1。。
- 選用:如要停用中繼檢查點,只使用最新檢查點,請按一下「Export last checkpoint only」(僅匯出最後一個檢查點) 切換鈕。
- 按一下「繼續」。
「Tuning dataset」(調整資料集) 頁面隨即開啟。
- 如要上傳資料集檔案,請選取下列其中一項:
- 如果尚未上傳資料集,請選取「將檔案上傳至 Cloud Storage」圓形按鈕。
- 在「Select JSONL file」(選取 JSONL 檔案) 欄位中,按一下「Browse」(瀏覽),然後選取資料集檔案。
- 在「Dataset location」(資料集位置) 欄位中,按一下「Browse」(瀏覽),然後選取要儲存資料集檔案的 Cloud Storage bucket。
- 如果資料集檔案已在 Cloud Storage bucket 中,請選取「Existing file on Cloud Storage」(Cloud Storage 中的現有檔案) 圓形按鈕。
- 在「Cloud Storage file path」(Cloud Storage 檔案路徑) 欄位中,按一下「Browse」(瀏覽),然後選取資料集檔案所在的 Cloud Storage bucket。
- 如果尚未上傳資料集,請選取「將檔案上傳至 Cloud Storage」圓形按鈕。
- (選用) 如要在訓練期間取得驗證指標,請按一下「Enable model validation」(啟用模型驗證) 切換鈕。
- 在「Validation dataset」(驗證資料集) 檔案中,輸入驗證資料集的 Cloud Storage 路徑。
- 按一下「Start Tuning」(開始調整)。
新模型會顯示在「Tune and Distill」(調整及精煉) 頁面的「Tuned Models」(調整過的模型) 部分下方。模型調整完畢後,「狀態」會顯示「成功」。
Python
安裝 Google Gen AI SDK:
pip install --upgrade google-genai
詳情請參閱 SDK 參考文件。
設定環境變數,以便搭配 Gemini Enterprise Agent Platform 使用 Google Gen AI SDK:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us # Use us-central1 for Gemini 2.5 and earlier models export GOOGLE_GENAI_USE_ENTERPRISE=True
建立調整工作:
REST
如要建立模型微調工作,請使用 tuningJobs.create 方法傳送 POST 要求。部分參數不適用於所有模型。請務必只加入適用於調整模型的參數。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的專案 ID。
- TUNING_JOB_REGION:調整工作執行的區域。這也是調整後模型的預設上傳區域。
- BASE_MODEL:要調整的基礎模型名稱。
- TRAINING_DATASET_URI:訓練資料集的 Cloud Storage URI。資料集必須採用 JSONL 檔案格式。為達最佳效果,請提供至少 100 到 500 個樣本。詳情請參閱「關於監督式調整資料集 」。
- VALIDATION_DATASET_URI 選用:驗證資料集檔案的 Cloud Storage URI。
- EPOCH_COUNT 選用:模型在訓練期間完整通過整個訓練資料集的次數。如要使用預先填入的建議值,請保留未設定狀態。
- ADAPTER_SIZE選用:調整工作要使用的轉接器大小。轉接器大小會影響調整工作的可訓練參數數量。轉接器越大,模型就能學習更複雜的工作,但需要更大的訓練資料集和更長的訓練時間。
- LEARNING_RATE_MULTIPLIER:選用。要套用至建議學習率的調節係數。如要使用建議值,請勿設定這項政策。
- EXPORT_LAST_CHECKPOINT_ONLY 選用:設為
true,只使用最新檢查點。 - METRIC_SPEC 選用:一或多個指標規格,用於透過 Gen AI Evaluation Service 執行評估。您可以使用下列指標規格:
"pointwise_metric_spec"、"pairwise_metric_spec"、"exact_match_spec"、"bleu_spec"和"rouge_spec"。 - METRIC_SPEC_FIELD_NAME 選用:所選指標規格的必填欄位。例如
"metric_prompt_template" - METRIC_SPEC_FIELD_NAME_CONTENT 選用:所選指標規格的欄位內容。舉例來說,您可以使用下列欄位內容進行逐點評估:
"Evaluate the fluency of this sentence: {response}. Give score from 0 to 1. 0 - not fluent at all. 1 - very fluent." - CLOUD_STORAGE_BUCKET 選用:Cloud Storage bucket,用於儲存 Gen AI Evaluation Service 執行的評估結果。
- TUNED_MODEL_DISPLAYNAME 選用:調整後模型的顯示名稱。如未設定,系統會產生隨機名稱。
- KMS_KEY_NAME 選用:用於保護資源的客戶自行管理的加密金鑰 Cloud KMS 資源 ID。金鑰格式為
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key。金鑰必須與運算資源位於相同區域。詳情請參閱「客戶自行管理的加密金鑰 (CMEK)」。 - SERVICE_ACCOUNT 選用:執行 tuningJob 工作負載的服務帳戶。如未指定,則會使用專案中的 Agent Platform Secure Fine-Tuning 服務代理。請參閱「調整服務代理程式」。如果打算使用客戶自行管理的服務帳戶,請務必將
roles/aiplatform.tuningServiceAgent角色授予服務帳戶。此外,請將調整服務代理roles/iam.serviceAccountTokenCreator角色授予客戶自行管理的服務帳戶。
HTTP 方法和網址:
POST https://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
JSON 要求內文:
{
"baseModel": "BASE_MODEL",
"supervisedTuningSpec" : {
"trainingDatasetUri": "TRAINING_DATASET_URI",
"validationDatasetUri": "VALIDATION_DATASET_URI",
"hyperParameters": {
"epochCount": "EPOCH_COUNT",
"adapterSize": "ADAPTER_SIZE",
"learningRateMultiplier": "LEARNING_RATE_MULTIPLIER"
},
"exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY,
"evaluationConfig": {
"metrics": [
{
"aggregation_metrics": ["AVERAGE", "STANDARD_DEVIATION"],
"METRIC_SPEC": {
"METRIC_SPEC_FIELD_NAME":
METRIC_SPEC_FIELD_CONTENT
}
},
],
"outputConfig": {
"gcs_destination": {
"output_uri_prefix": "CLOUD_STORAGE_BUCKET"
}
},
},
},
"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://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆。
cURL 指令範例
PROJECT_ID=myproject
LOCATION=us
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://aiplatform.${LOCATION}.rep.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
"baseModel": "gemini-3.5-flash",
"supervisedTuningSpec" : {
"trainingDatasetUri": "gs://YOUR_BUCKET_NAME/YOUR_TRAIN_DATASET",
"validationDatasetUri": "gs://YOUR_BUCKET_NAME/YOUR_VALIDATION_DATASET"
},
"tunedModelDisplayName": "tuned_gemini"
}'
REST
如要建立模型微調工作,請使用 tuningJobs.create 方法傳送 POST 要求。部分參數不適用於所有模型。請務必只加入適用於調整模型的參數。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的專案 ID。
- TUNING_JOB_REGION:調整工作執行的區域。這也是調整後模型的預設上傳區域。
- BASE_MODEL:要調整的基礎模型名稱。
- TRAINING_DATASET_URI:訓練資料集的 Cloud Storage URI。資料集必須採用 JSONL 檔案格式。為達最佳效果,請提供至少 100 到 500 個樣本。詳情請參閱「關於監督式調整資料集 」。
- VALIDATION_DATASET_URI 選用:驗證資料集檔案的 Cloud Storage URI。
- EPOCH_COUNT 選用:模型在訓練期間完整通過整個訓練資料集的次數。如要使用預先填入的建議值,請保留未設定狀態。
- ADAPTER_SIZE選用:調整工作要使用的轉接器大小。轉接器大小會影響調整工作的可訓練參數數量。轉接器越大,模型就能學習更複雜的工作,但需要更大的訓練資料集和更長的訓練時間。
- LEARNING_RATE_MULTIPLIER:選用。要套用至建議學習率的調節係數。如要使用建議值,請勿設定這項政策。
- EXPORT_LAST_CHECKPOINT_ONLY 選用:設為
true,只使用最新檢查點。 - METRIC_SPEC 選用:一或多個指標規格,用於透過 Gen AI Evaluation Service 執行評估。您可以使用下列指標規格:
"pointwise_metric_spec"、"pairwise_metric_spec"、"exact_match_spec"、"bleu_spec"和"rouge_spec"。 - METRIC_SPEC_FIELD_NAME 選用:所選指標規格的必填欄位。例如
"metric_prompt_template" - METRIC_SPEC_FIELD_NAME_CONTENT 選用:所選指標規格的欄位內容。舉例來說,您可以使用下列欄位內容進行逐點評估:
"Evaluate the fluency of this sentence: {response}. Give score from 0 to 1. 0 - not fluent at all. 1 - very fluent." - CLOUD_STORAGE_BUCKET 選用:Cloud Storage bucket,用於儲存 Gen AI Evaluation Service 執行的評估結果。
- TUNED_MODEL_DISPLAYNAME 選用:調整後模型的顯示名稱。如未設定,系統會產生隨機名稱。
- KMS_KEY_NAME 選用:用於保護資源的客戶自行管理的加密金鑰 Cloud KMS 資源 ID。金鑰格式為
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key。金鑰必須與運算資源位於相同區域。詳情請參閱「客戶自行管理的加密金鑰 (CMEK)」。 - SERVICE_ACCOUNT 選用:執行 tuningJob 工作負載的服務帳戶。如未指定,則會使用專案中的 Agent Platform Secure Fine-Tuning 服務代理。請參閱「調整服務代理程式」。如果打算使用客戶自行管理的服務帳戶,請務必將
roles/aiplatform.tuningServiceAgent角色授予服務帳戶。此外,請將調整服務代理roles/iam.serviceAccountTokenCreator角色授予客戶自行管理的服務帳戶。
HTTP 方法和網址:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
JSON 要求內文:
{
"baseModel": "BASE_MODEL",
"supervisedTuningSpec" : {
"trainingDatasetUri": "TRAINING_DATASET_URI",
"validationDatasetUri": "VALIDATION_DATASET_URI",
"hyperParameters": {
"epochCount": "EPOCH_COUNT",
"adapterSize": "ADAPTER_SIZE",
"learningRateMultiplier": "LEARNING_RATE_MULTIPLIER"
},
"exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY,
"evaluationConfig": {
"metrics": [
{
"aggregation_metrics": ["AVERAGE", "STANDARD_DEVIATION"],
"METRIC_SPEC": {
"METRIC_SPEC_FIELD_NAME":
METRIC_SPEC_FIELD_CONTENT
}
},
],
"outputConfig": {
"gcs_destination": {
"output_uri_prefix": "CLOUD_STORAGE_BUCKET"
}
},
},
},
"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 Content
您應該會收到如下的 JSON 回覆。
cURL 指令範例
PROJECT_ID=myproject
LOCATION=us-central1
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-3.5-flash",
"supervisedTuningSpec" : {
"trainingDatasetUri": "gs://YOUR_BUCKET_NAME/YOUR_TRAIN_DATASET",
"validationDatasetUri": "gs://YOUR_BUCKET_NAME/YOUR_VALIDATION_DATASET"
},
"tunedModelDisplayName": "tuned_gemini"
}'
Colab Enterprise
您可以在 Colab Enterprise 中使用側邊面板,在 Agent Platform 建立模型調整工作。側邊面板會將相關程式碼片段新增至筆記本。接著,您會修改程式碼片段並加以執行,建立調整工作。如要進一步瞭解如何使用側邊面板執行 Agent Platform 微調工作,請參閱「與 Agent Platform 互動以微調模型」。
-
前往 Cloud de Confiance 控制台的 Colab Enterprise「My notebooks」(我的筆記本) 頁面。
-
在「Region」(區域) 選單中,選取筆記本所在的區域。
-
按一下要開啟的筆記本。如果您尚未建立筆記本,請建立筆記本。
-
在筆記本右側的側邊面板中,按一下 「Tuning」(調整) 按鈕。
側邊面板會展開「調整」分頁。
-
按一下「調整 Gemini 模型」按鈕。
Colab Enterprise 會在筆記本中新增程式碼儲存格,用於調整 Gemini 模型。
-
在筆記本中,找出儲存參數值的程式碼儲存格。 您將使用這些參數與 Agent Platform 互動。
-
更新下列參數的值:
-
PROJECT_ID:筆記本所在專案的 ID。 -
REGION:筆記本所在的區域。 -
TUNED_MODEL_DISPLAY_NAME:調整後模型的名稱。
-
-
在下一個程式碼儲存格中,更新模型調整參數:
-
source_model:要使用的 Gemini 模型,例如gemini-2.0-flash-001。 -
train_dataset:訓練資料集的網址。 -
validation_dataset:驗證資料集的網址。 - 視需要調整其餘參數。
-
-
執行側邊面板新增至筆記本的程式碼儲存格。
-
最後一個程式碼儲存格執行完畢後,按一下顯示的「 View tuning job」(查看調整工作) 按鈕。
-
側邊面板會顯示模型調整工作的相關資訊。
- 指標準備就緒後,「Monitor」(監控) 分頁會顯示調整指標。
- 資料集處理完畢後,「Dataset」(資料集) 分頁會顯示資料集的摘要和指標。
- 「Details」(詳細資料) 分頁會顯示調整工作的相關資訊,例如調整方法和使用的基礎模型 (來源模型)。
-
調整工作完成後,您可以直接從「Tuning details」(調整詳細資料) 分頁前往測試模型的頁面。按一下「Test」。
Cloud de Confiance 控制台會開啟 Agent Platform 的「Text chat」(文字對話) 頁面,您可以在這裡測試模型。
調整超參數
建議您在不變更超參數的情況下,提交第一項微調工作。預設值是根據基準測試結果建議的值,可產生最佳模型輸出品質。
- 訓練週期:模型在訓練期間,完整通過整個訓練資料集的次數。Gemini Enterprise Agent Platform 會根據訓練資料集大小自動調整預設值。這個值是根據基準測試結果設定,可確保模型輸出內容品質最佳。
- 轉接器大小:調整工作要使用的轉接器大小。轉接器大小會影響調整工作的可訓練參數數量。轉接器越大,模型就能學習更複雜的工作,但需要更大的訓練資料集和更長的訓練時間。
- 學習率調節係數:要套用至建議學習率的調節係數。您可以提高這個值來加快收斂速度,或降低這個值來避免過度配適。
如要瞭解監督式微調的最佳做法,請參閱網誌文章「Gemini 監督式微調:最佳做法指南」。
查看調整工作清單
您可以使用Cloud de Confiance 控制台、Google Gen AI SDK,或使用 tuningJobs 方法傳送 GET 要求,查看目前專案中的調整工作清單。
控制台
如要在 Cloud de Confiance 控制台查看調整工作,請前往「Agent Studio」頁面。
Gemini 調整工作會列在「Tuned Models」(調整後的模型) 專區下方的表格中。
Python
REST
如要查看模型調整工作清單,請使用 tuningJobs.list 方法傳送 GET 要求。
使用任何要求資料之前,請先修改下列項目的值:
HTTP 方法和網址:
GET https://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆。
REST
如要查看模型調整工作清單,請使用 tuningJobs.list 方法傳送 GET 要求。
使用任何要求資料之前,請先修改下列項目的值:
HTTP 方法和網址:
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
您應該會收到如下的 JSON 回覆。
取得調整工作的詳細資料
您可以使用Cloud de Confiance 控制台、Google Gen AI SDK,或使用 tuningJobs 方法傳送 GET 要求,取得目前專案中調整工作的詳細資料。
控制台
-
如要在 Cloud de Confiance 控制台查看調整工作,請前往「Agent Studio」頁面。
-
在「Tuned Models」(調整後的模型) 表格中,找到您的模型,然後按一下「Details」(詳細資料)。
畫面上會顯示模型詳細資料。
Python
REST
如要查看模型調整工作的詳細資料,請使用 tuningJobs.get 方法傳送 GET 要求,並指定 TuningJob_ID。
使用任何要求資料之前,請先修改下列項目的值:
HTTP 方法和網址:
GET https://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆。
REST
如要查看模型調整工作的詳細資料,請使用 tuningJobs.get 方法傳送 GET 要求,並指定 TuningJob_ID。
使用任何要求資料之前,請先修改下列項目的值:
HTTP 方法和網址:
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
您應該會收到如下的 JSON 回覆。
取消調整工作
您可以使用 Cloud de Confiance 控制台、Google Gen AI SDK,或使用 tuningJobs 方法傳送 POST 要求,取消目前專案中的微調工作。
控制台
-
如要在 Cloud de Confiance 控制台取消調整工作,請前往「Agent Studio」頁面。
- 在「Tuned Models」(調整後的模型) 表格中,按一下 「Manage run」(管理執行作業)。
- 按一下「取消」。
Python
REST
使用任何要求資料之前,請先修改下列項目的值:
HTTP 方法和網址:
POST https://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://aiplatform.TUNING_JOB_REGION.rep.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 POST `
-Headers $headers `
-Uri "https://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆。
REST
使用任何要求資料之前,請先修改下列項目的值:
HTTP 方法和網址:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
如要傳送要求,請選擇以下其中一個選項:
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"
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" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆。
評估調整後的模型
如果您未設定 Gen AI Evaluation Service,讓服務在調整工作完成後自動執行,則可使用 Google Gen AI SDK,或使用 generateContent 方法傳送 POST 要求,與調整後的模型端點互動,方法與使用基礎 Gemini 相同。
使用思考型模型時,建議關閉思考功能,或將微調任務的思考預算設為最低,以達到最佳效能和成本效益。在監督式微調期間,模型會學習模仿微調資料集中的基準真相,並省略思考過程。因此,調整後的模型不需思考預算,就能有效處理工作。
以下範例會向模型提示「為什麼天空是藍色的?」這個問題。
控制台
-
如要在 Cloud de Confiance 控制台查看微調模型的詳細資料,請前往「Agent Studio」頁面。
-
在「微調模型」表格中,選取「測試」。
系統會顯示一個頁面,您可以在該頁面中與調整後的模型建立對話。
Python
REST
如要使用提示測試調整後的模型,請傳送 POST 要求,並指定 MREP_LOCATION 和 ENDPOINT_ID。
使用任何要求資料之前,請先修改下列項目的值:
-
MREP_LOCATION:執行調整工作的 Cloud de Confiance by S3NS多區域端點位置。可接受的值如下:
useu
- PROJECT_ID:您的專案 ID。
- ENDPOINT_ID:從 GET API 取得的調整後模型端點 ID。
-
TEMPERATURE:
Temperature 用於在生成回覆時取樣,這會在套用
topP和topK時發生。溫度參數會決定選取詞元時的隨機程度。如果您想藉由提示生成較不具開放性和創意性的回覆,建議調低溫度參數。另一方面,如果溫度參數較高,則可能產生較多元或有創意的結果。如果溫度參數為0,模型一律會選取可能性最高的詞元。在這種情況下,特定提示的回覆大多是確定性的,但仍可能有些微變化。如果模型的回覆太普通、太短或提供了備用回覆,再試試看調高 Temperature。如果模型進入無限生成狀態,將溫度調高至至少
0.1,可能會有更好的結果。1.0是建議的溫度起始值。 -
TOP_P:Top-P 會影響模型選取輸出詞元的方式。模型會按照機率最高到最低的順序選取詞元,直到所選詞元的機率總和等於 Top-P 值。舉例來說,假設詞元 A、B 和 C 的可能性分別為 0.3、0.2 和 0.1,而 Top-P 值為
0.5,模型會依據溫度參數選擇 A 或 B 做為下一個詞元,並排除 C。如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。
-
TOP_K:Top-K 會影響模型選取輸出詞元的方式。如果 Top-K 設為
1,代表下一個所選詞元是模型詞彙表的所有詞元中可能性最高者 (也稱為「貪婪解碼」)。如果 Top-K 設為3,則代表模型會依據溫度參數,從可能性最高的 3 個詞元中選取下一個詞元。在每個符記選取步驟中,模型會對機率最高的「Top-K」符記取樣,接著進一步根據「Top-P」篩選詞元,最後依 temperature 選出最終詞元。
如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。
-
MAX_OUTPUT_TOKENS:回覆內可以生成的詞元數量上限。一個詞元約為四個字元。100 個詞元約等於 60 到 80 個字。
如要取得較短的回覆,請指定較低的值;如要取得可能較長的回覆,請調高此值。
HTTP 方法和網址:
POST https://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
JSON 要求內文:
{
"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://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
您應該會收到如下的 JSON 回覆。
REST
如要使用提示測試調整後的模型,請傳送 POST 要求並指定 ENDPOINT_ID。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的專案 ID。
- TUNING_JOB_REGION:調整工作的執行區域。這也是上傳調整後模型的預設區域。
- ENDPOINT_ID:從 GET API 取得的調整後模型端點 ID。
-
TEMPERATURE:
Temperature 用於在生成回覆時取樣,這會在套用
topP和topK時發生。溫度參數會決定選取詞元時的隨機程度。如果您想藉由提示生成較不具開放性和創意性的回覆,建議調低溫度參數。另一方面,如果溫度參數較高,則可能產生較多元或有創意的結果。如果溫度參數為0,模型一律會選取可能性最高的詞元。在這種情況下,特定提示的回覆大多是確定性的,但仍可能有些微變化。如果模型的回覆太普通、太短或提供了備用回覆,再試試看調高 Temperature。如果模型進入無限生成狀態,將溫度調高至至少
0.1,可能會有更好的結果。1.0是建議的溫度起始值。 -
TOP_P:Top-P 會影響模型選取輸出詞元的方式。模型會按照機率最高到最低的順序選取詞元,直到所選詞元的機率總和等於 Top-P 值。舉例來說,假設詞元 A、B 和 C 的可能性分別為 0.3、0.2 和 0.1,而 Top-P 值為
0.5,模型會依據溫度參數選擇 A 或 B 做為下一個詞元,並排除 C。如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。
-
TOP_K:Top-K 會影響模型選取輸出詞元的方式。如果 Top-K 設為
1,代表下一個所選詞元是模型詞彙表的所有詞元中可能性最高者 (也稱為「貪婪解碼」)。如果 Top-K 設為3,則代表模型會依據溫度參數,從可能性最高的 3 個詞元中選取下一個詞元。在每個符記選取步驟中,模型會對機率最高的「Top-K」符記取樣,接著進一步根據「Top-P」篩選詞元,最後依 temperature 選出最終詞元。
如要取得較不隨機的回覆,請指定較低的值;如要取得較隨機的回覆,請調高此值。
-
MAX_OUTPUT_TOKENS:回覆內可以生成的詞元數量上限。一個詞元約為四個字元。100 個詞元約等於 60 到 80 個字。
如要取得較短的回覆,請指定較低的值;如要取得可能較長的回覆,請調高此值。
HTTP 方法和網址:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
JSON 要求內文:
{
"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/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 Content
您應該會收到如下的 JSON 回覆。
刪除調整後的模型
如何刪除調整後的模型:
REST
呼叫 models.delete 方法。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的專案 ID。
- REGION:調整後模型所在的區域。
- MODEL_ID:要刪除的模型。
HTTP 方法和網址:
DELETE https://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://aiplatform.TUNING_JOB_REGION.rep.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 DELETE `
-Headers $headers `
-Uri "https://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。
REST
呼叫 models.delete 方法。
使用任何要求資料之前,請先修改下列項目的值:
- PROJECT_ID:您的專案 ID。
- REGION:調整後模型所在的區域。
- MODEL_ID:要刪除的模型。
HTTP 方法和網址:
DELETE https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
如要傳送要求,請選擇以下其中一個選項:
curl
執行下列指令:
curl -X DELETE \
-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 DELETE `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
您應該會收到執行成功的狀態碼 (2xx) 和空白回應。
調整和驗證指標
您可以設定模型微調工作,收集並回報模型微調和模型評估指標,然後在 Agent Studio 中以圖表呈現。
如要在 Cloud de Confiance 控制台查看調整後模型的詳細資料,請前往「Agent Studio」頁面。
在「Tune and Distill」(調整及精煉) 表格中,按一下要查看指標的調整後模型名稱。
調整指標會顯示在「Monitor」(監控) 分頁下方。
模型調整指標
模型微調工作會自動收集下列模型微調指標:
/train_total_loss:訓練步驟中調整資料集的損失。/train_fraction_of_correct_next_step_preds:訓練步驟的詞元準確率。單一推論是由一連串預測的詞元組成。這項指標會將預測的詞元與調整資料集中的基準真相進行比較,評估預測詞元的準確度。/train_num_predictions:訓練步驟中預測的詞元數量。
模型驗證指標
您可以設定模型微調工作,收集下列模型驗證指標:
/eval_total_loss:驗證步驟中驗證資料集的損失。/eval_fraction_of_correct_next_step_preds:驗證步驟的詞元準確率。單一推論是由一連串預測的詞元組成。這項指標會將預測詞元與驗證資料集中的基準真相比較,評估預測詞元的準確度。/eval_num_predictions:驗證步驟中預測的詞元數量。
調整工作開始執行後,即可查看指標圖表。系統會隨著微調進度即時更新。如果在建立調整工作時未指定驗證資料集,則只能查看調整指標的圖表。
後續步驟
瞭解如何部署調整後的 Gemini 模型。
如要瞭解如何在建構生成式 AI 知識庫的解決方案中使用監督式微調,請參閱「快速部署解決方案:生成式 AI 知識庫」。