本頁面說明如何使用 Cloud de Confiance 控制台或 Agent Platform API,透過圖片資料集訓練 AutoML 物件偵測模型。
訓練 AutoML 模型
Cloud de Confiance 控制台
前往 Cloud de Confiance 控制台「Agent Platform」部分的「Datasets」(資料集) 頁面。
按一下要用來訓練模型的資料集名稱,開啟詳細資料頁面。
點選「訓練新模型」。
訓練方法請選取「 AutoML」AutoML。
在「Choose where to use the model」(選擇模型使用位置) 區段,選擇模型託管位置:「Cloud」(雲端)、「Edge」(邊緣) 或 「Agent Platform Vision」。
按一下「繼續」。
輸入模型的名稱。
如要手動設定訓練資料的分割方式,請展開「進階選項」,然後選取資料分割選項。詳情請參閱「關於 AutoML 模型的資料分割」。
點按「開始訓練」。
模型訓練可能需要數小時,具體時間取決於資料的大小和複雜度,以及您指定的訓練預算 (如有)。您可以關閉這個分頁,稍後再返回查看。模型訓練完成後,您會收到電子郵件通知。
API
請根據您的語言或環境,選取下方分頁標籤:
REST
使用任何要求資料之前,請先修改下列項目的值:
- LOCATION:資料集所在及模型建立的區域。例如:
us-central1。 - PROJECT:您的專案 ID。
- TRAININGPIPELINE_DISPLAYNAME:必填,trainingPipeline 的顯示名稱。
- DATASET_ID:訓練用資料集的 ID 號碼。
fractionSplit:選用。資料的其中一種可能機器學習用途分割選項。fractionSplit的值總和必須為 1。例如:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*:TrainingPipeline 上傳 (建立) 的模型顯示名稱。
- MODEL_DESCRIPTION*:模型說明。
- modelToUpload.labels*:用於整理模型的任何鍵/值組合。例如:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†:要訓練的雲端託管模型類型。選項包括:
CLOUD_1:最適合在 Google Cloud 中使用的模型,無法匯出。與上述 CLOUD_HIGH_ACCURACY_1 和 CLOUD_LOW_LATENCY_1 模型相比,這個模型預期可提供更高的預測品質和更低的延遲時間。CLOUD_HIGH_ACCURACY_1:最適合在 Google Cloud 中使用的模型,無法匯出。這個模型的延遲時間預期會較長,但預測品質應高於其他雲端模型。CLOUD_LOW_LATENCY_1:最適合在 Google Cloud 中使用的模型,無法匯出。這個模型的延遲時間預計會較短,但預測品質可能低於其他雲端模型。
- NODE_HOUR_BUDGET†:實際訓練費用會等於或低於這個值。Cloud 模型的預算必須介於 20,000 至 900,000 毫節點時數 (含) 之間。 預設值為 216,000,代表 1 天的 wall time (假設使用 9 個節點)。
- PROJECT_NUMBER:系統自動產生的專案編號
| * | 您在 trainingTaskDefinition 中指定的結構定義檔案說明,會描述這個欄位的用途。 |
| † | 您在 trainingTaskDefinition 中指定的結構定義檔案會宣告及說明這個欄位。 |
HTTP 方法和網址:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
JSON 要求內文:
{
"displayName": "TRAININGPIPELINE_DISPLAYNAME",
"inputDataConfig": {
"datasetId": "DATASET_ID",
"fractionSplit": {
"trainingFraction": "DECIMAL",
"validationFraction": "DECIMAL",
"testFraction": "DECIMAL"
}
},
"modelToUpload": {
"displayName": "MODEL_DISPLAYNAME",
"description": "MODEL_DESCRIPTION",
"labels": {
"KEY": "VALUE"
}
},
"trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_object_detection_1.0.0.yaml",
"trainingTaskInputs": {
"modelType": ["MODELTYPE"],
"budgetMilliNodeHours": NODE_HOUR_BUDGET
}
}
如要傳送要求,請選擇以下其中一個選項:
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
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://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
回覆內容包含規格和 TRAININGPIPELINE_ID 的相關資訊。
Java
在試用這個範例之前,請先按照「使用用戶端程式庫的 Agent Platform 快速入門導覽課程」中的 Java 設定說明操作。詳情請參閱 Agent Platform Java API 參考文件。
如要向 Agent Platform 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Node.js
在試用這個範例之前,請先按照「使用用戶端程式庫的 Agent Platform 快速入門導覽課程」中的 Node.js 設定說明操作。詳情請參閱 Agent Platform Node.js API 參考文件。
如要向 Agent Platform 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
如要瞭解如何安裝或更新 Vertex AI SDK for Python,請參閱「安裝 Vertex AI SDK for Python」。詳情請參閱 Python API 參考文件。
使用 REST 控制資料分割
您可以控管訓練資料在訓練集、驗證集和測試集之間的分配方式。使用 Agent Platform API 時,請透過 Split 物件決定資料分割方式。Split 物件可以做為多種物件類型之一,包含在 InputConfig 物件中,每種物件類型都提供不同的訓練資料分割方式。只能選取一種方法。
-
FractionSplit:- TRAINING_FRACTION:訓練資料中用於訓練集的部分。
- VALIDATION_FRACTION:要用於驗證集的訓練資料比例。不適用於影片資料。
- TEST_FRACTION:要用於測試集的訓練資料比例。
如果指定了任何分數,則必須指定所有分數。分數加總必須為 1.0。分數的預設值會因資料類型而異。瞭解詳情。
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION }, -
FilterSplit: - TRAINING_FILTER:符合這項篩選條件的資料項目會用於訓練集。
- VALIDATION_FILTER:符合這項篩選條件的資料項目會用於驗證集。影片資料必須為「-」。
- TEST_FILTER:符合這項篩選條件的資料項目會用於測試集。
這些篩選器可與 ml_use 標籤搭配使用,或與您套用至資料的任何標籤搭配使用。進一步瞭解如何使用 ml-use 標籤和其他標籤篩選資料。
以下範例說明如何搭配使用 filterSplit 物件和 ml_use 標籤,並納入驗證集:
"filterSplit": {
"trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training",
"validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation",
"testFilter": "labels.aiplatform.googleapis.com/ml_use=test"
}