本文說明如何對 Gemini 模型執行偏好調整。
事前準備
開始之前,請按照「準備 Gemini 模型的偏好調整資料」一文中的操作說明準備資料集。
建立調整工作
控制台
如要使用 Google Cloud 控制台設定偏好設定調整,請按照下列步驟操作:
前往 Google Cloud 控制台 Gemini Enterprise Agent Platform 專區的「Tuning」(調整) 頁面。
按一下「Create tuned model」(建立調整後的模型)。
選取「Preference tuning」(偏好設定調整)。
在「Model details」(模型詳細資料)下方,設定下列項目:
- 在「Tuned model name」(調整後模型名稱) 欄位中,輸入新調整後模型的名稱,最多 128 個半形字元。
- 在「Base model」(基礎模型) 欄位中,選取要調整的基礎模型。
- 在「Region」(區域) 下拉式欄位中,選取管道調整工作執行的區域,以及調整後模型的部署位置。
在「Tuning setting」(調整設定) 下方,進行下列設定:
- 在「Number of epochs」(訓練週期數) 欄位,輸入模型調整作業要執行的步數。
- 在「Adapter Size」(轉接器大小) 欄位中,輸入要用於調整模型的轉接器大小。
- 選用:在「Beta」欄位中輸入所需 Beta 值。Beta 是控制調整後模型與基準模型對齊程度的係數。
- 在「Learning rate multiplier」(學習率調節係數) 欄位中,輸入每次疊代的步距。預設值為 1。。
選用:如要停用中繼查核點,只使用最新查核點,請按一下「Export last checkpoint only」(僅匯出最後一個查核點) 切換鈕。
按一下「繼續」。
「Tuning dataset」(調整資料集) 頁面隨即開啟。
如要上傳資料集檔案,請選取下列其中一項:
- 如果您尚未上傳資料集,請選取「Upload file to Cloud Storage」(將檔案上傳至 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。
(選用) 如要在訓練期間取得驗證指標,請按一下「Enable model validation」(啟用模型驗證) 切換鈕。
- 在「Validation dataset」(驗證資料集) 檔案中,輸入驗證資料集的 Cloud Storage 路徑。
按一下「Start Tuning」(開始調整)。
新模型會顯示在「Tune and Distill」(調整及精煉) 頁面的「Managed tuning」(代管調整) 部分下方。模型調整完畢後,「Status」(狀態) 會顯示「Succeeded」(成功)。
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選用:模型在訓練期間完整通過整個訓練資料集的次數。如要使用預先填入的建議值,請保留未設定狀態。
- BETA選用:控制微調模型與基準模型對齊程度的係數。
- ADAPTER_SIZE選用:調整工作要使用的轉接器大小。轉接器大小會影響調整工作的可訓練參數數量。轉接器越大,模型可學習更複雜的工作,但需要更大的訓練資料集和更長的訓練時間。
- LEARNING_RATE_MULTIPLIER:選用。要套用至建議學習率的調節係數。如要使用建議值,請留空。
- EXPORT_LAST_CHECKPOINT_ONLY選用:設為
true,只使用最新的檢查點。 - TUNED_MODEL_DISPLAYNAME選用:調整後模型的顯示名稱。如未設定,系統會產生隨機名稱。
- KMS_KEY_NAME選用:用於保護資源的客戶自行管理加密金鑰,其 Cloud Key Management Service 資源 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",
"preferenceOptimizationSpec" : {
"trainingDatasetUri": "TRAINING_DATASET_URI",
"validationDatasetUri": "VALIDATION_DATASET_URI",
"hyperParameters": {
"epochCount": "EPOCH_COUNT",
"beta": "BETA",
"adapterSize": "ADAPTER_SIZE",
"learningRateMultiplier": "LEARNING_RATE_MULTIPLIER"
},
"exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY,
},
"tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME",
"encryptionSpec": {
"kmsKeyName": "KMS_KEY_NAME"
},
"serviceAccount": "SERVICE_ACCOUNT"
}
請展開以下其中一個選項,以傳送要求:
cURL 指令範例
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": "${BASE_MODEL}",
"preferenceOptimizationSpec" : {
"trainingDatasetUri": "gs://mybucket/preference_tuning/data/train_data.jsonl",
"validationDatasetUri": "gs://mybucket/preference_tuning/data/validation_data.jsonl"
},
"tunedModelDisplayName": "tuned_gemini"
}'
Google Gen AI SDK
調整超參數
建議您在不變更超參數的情況下,提交第一項微調工作。預設值是根據基準測試結果建議的值,可產生最佳模型輸出品質。
- 訓練週期:模型在訓練期間,完整通過整個訓練資料集的次數。Gemini Enterprise Agent Platform 會根據訓練資料集大小自動調整預設值。這個值是根據基準測試結果設定,可確保模型輸出內容品質最佳。
- Beta:控制調整後模型與基準模型相符程度的係數。Beta 值越低,更新幅度越大,越傾向偏好的回覆。建議範圍為 0.01 至 0.5 (含)。如果 Beta 值為 0,模型會停止學習。
- 轉接器大小:用於調整工作的轉接器大小。轉接器大小會影響調整工作的可訓練參數數量。轉接器越大,模型就能學習更複雜的工作,但需要更大的訓練資料集和更長的訓練時間。
- 學習率調節係數:要套用至建議學習率的調節係數。您可以提高這個值來加快收斂速度,或降低這個值來避免過度配適。
查看或取消調整工作
如要列出調整工作、查看調整工作詳細資料、取消調整工作,或刪除調整後的模型,請參閱監督式微調說明文件的下列章節:
模型調整指標
模型微調工作會自動收集下列微調指標:
/preference_optimization_train_loss:訓練步驟中調整資料集的偏好損失。
模型驗證指標
提供驗證資料後,模型調整工作會自動收集下列驗證指標:
/eval_total_loss:驗證步驟中驗證資料集的偏好損失。
調整工作開始執行後,即可查看指標圖表。這些指標會隨著調整進度即時更新。如果在建立調整工作時未指定驗證資料集,則只能查看調整指標的圖表。
後續步驟
- 瞭解如何部署調整後的 Gemini 模型。