本文說明如何對 Gemini 模型執行偏好設定調整作業。
事前準備
開始之前,請先按照「準備 Gemini 模型的偏好設定調整資料」一文中的操作說明準備資料集。
建立微調工作
控制台
如要使用 Google Cloud 控制台設定偏好設定調整功能,請按照下列步驟操作:
在 Google Cloud 控制台的 Vertex AI 專區中,前往「Vertex AI Studio」頁面。
按一下「Create tuned model」(建立調整後的模型)。
選取「偏好設定調整」。
在「Model details」(模型詳細資料) 下方,設定下列項目:
- 在「Tuned model name」(微調後模型名稱) 欄位中,輸入新微調後模型的名稱,最多 128 個半形字元。
- 在「Base model」(基礎模型) 欄位中,選取要微調的基礎模型。
- 在「Region」(區域) 下拉式欄位中,選取管道調整工作執行的區域,以及調整後模型的部署位置。
在「微調設定」下方,設定下列項目:
- 在「Number of epochs」(訓練週期數) 欄位中,輸入用於執行模型微調的步驟數量。
- 在「Adapter Size」(轉接器大小) 欄位中,輸入要用於調整模型轉接器的大小。
- 選用:在「Beta」欄位中,輸入所需的 Beta 值。Beta 是用來控制調整後模型與基準模型一致程度的係數。
- 在「學習率調節係數」欄位中,輸入每次疊代的步距。預設值為 1。。
選用:如要停用中繼檢查點,只使用最新的檢查點,請點選「僅匯出最後一個檢查點」切換鈕。
按一下「繼續」。
「調整資料集」頁面隨即開啟。
如要上傳資料集檔案,請選取下列其中一個選項:
- 如果尚未上傳資料集,請選取「將檔案上傳至 Cloud Storage」的單選按鈕。
- 在「Select JSONL file」(選取 JSONL 檔案) 欄位中,按一下「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 路徑。
按一下「開始調整」。
新模型會顯示在「Tune and Distill」(調整及精煉) 頁面的「Managed tuning」(管理調整) 專區下方。模型微調完成後,「狀態」會顯示「成功」。
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 KMS 資源 ID。金鑰格式為
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key。金鑰必須與運算資源的建立位置位於相同區域。詳情請參閱客戶管理的加密金鑰 (CMEK)。 - SERVICE_ACCOUNT選用:用來執行 tuningJob 工作負載的服務帳戶。如未指定,則會使用專案中的 Vertex AI 安全微調服務代理。請參閱「調整服務代理程式」。如要使用客戶管理的服務帳戶,請務必將
roles/aiplatform.tuningServiceAgent角色授予該服務帳戶。此外,請將「Tuning Service Agent」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"
}'
調整超參數
建議您提交第一個微調工作時,不要變更超參數。預設值是根據基準化結果建議的值,可產生最佳模型輸出品質。
- 訓練週期:模型在訓練期間完整處理整個訓練資料集的次數。Vertex AI 會根據訓練資料集大小自動調整預設值。這個值是根據基準化結果計算得出,可提升模型輸出內容的品質。
- Beta:這個係數可控制微調模型與基準的相符程度。Beta 值越低,模型越會積極更新,以提供偏好的回覆。建議範圍為 0.01 至 0.5 (含)。如果 Beta 值為 0,模型就會停止學習。
- 轉接器大小:用於微調工作的轉接器大小。轉接器大小會影響調整工作可訓練的參數數量。轉接器越大,模型就能學習更複雜的工作,但需要更大的訓練資料集和更長的訓練時間。
- 學習率調節係數:要套用至建議學習率的調節係數。您可以增加值來加快收斂速度,或減少值來避免過度擬合。
查看或取消調整工作
如要列出微調工作、查看微調工作詳細資料、取消微調工作或刪除微調模型,請參閱監督式微調文件中的下列章節:
模型調整指標
模型微調作業會自動收集下列微調指標:
/preference_optimization_train_loss:訓練步驟中微調資料集的偏好設定損失。
模型驗證指標
提供驗證資料後,模型微調作業會自動收集下列驗證指標:
/eval_total_loss:驗證步驟中驗證資料集的偏好設定損失。
調整工作開始執行後,即可查看指標的視覺化資料。 這些指標會隨著微調作業的進展即時更新。如果您在建立調整工作時未指定驗證資料集,則只能查看調整指標的視覺化資料。
後續步驟
- 瞭解如何部署已調整的 Gemini 模型。