執行自訂訓練時,您必須指定要讓 Vertex AI 執行的機器學習 (ML) 程式碼。如要這麼做,請為自訂容器或在預先建構的容器上執行的 Python 訓練應用程式,設定訓練容器設定。
如要決定使用自訂容器或預先建構的容器,請參閱訓練程式碼需求。
本文說明在上述任一情況下,您必須指定的 Vertex AI API 欄位。
指定容器設定的位置
在 WorkerPoolSpec
中指定設定詳細資料。視您執行自訂訓練的方式而定,請將這個 WorkerPoolSpec
放在下列其中一個 API 欄位中:
如要建立
CustomJob
資源,請在CustomJob.jobSpec.workerPoolSpecs
中指定WorkerPoolSpec
。如果您使用 Google Cloud CLI,可以在
gcloud ai custom-jobs create
指令中使用--worker-pool-spec
旗標或--config
旗標,指定工作站集區選項。進一步瞭解如何建立
CustomJob
。如要建立
HyperparameterTuningJob
資源,請在HyperparameterTuningJob.trialJobSpec.workerPoolSpecs
中指定WorkerPoolSpec
。如果您使用 gcloud CLI,則可以在
gcloud ai hpt-tuning-jobs create
指令上使用--config
標記,指定工作站集區選項。進一步瞭解如何建立
HyperparameterTuningJob
。如要建立
TrainingPipeline
資源,但不要進行超參數調整,請在TrainingPipeline.trainingTaskInputs.workerPoolSpecs
中指定WorkerPoolSpec
。進一步瞭解如何建立自訂
TrainingPipeline
。如要建立含超參數調整功能的
TrainingPipeline
,請在TrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecs
中指定WorkerPoolSpec
。
如果您執行分散式訓練,可以為每個工作站集區使用不同的設定。
設定容器
視您使用的是預先建構的容器或自訂容器,您必須在 WorkerPoolSpec
中指定不同欄位。選取適用於您情境的分頁標籤:
預先建構的容器
選取支援您打算用於訓練的機器學習架構的預先建構容器。在
pythonPackageSpec.executorImageUri
欄位中,指定其中一個容器映像檔的 URI。在
pythonPackageSpec.packageUris
欄位中,指定 Python 訓練應用程式的 Cloud Storage URI。您也可以在「
pythonPackageSpec.args
」欄位中,指定要傳遞至訓練應用程式進入點模組的指令列引數清單。
下列範例會標示出建立 CustomJob
時指定這些容器設定的位置:
控制台
在 Google Cloud 控制台中,您無法直接建立 CustomJob
。不過,您可以建立 TrainingPipeline
,藉此建立 CustomJob
。在 Google Cloud 控制台中建立TrainingPipeline
時,您可以在「訓練容器」步驟的特定欄位中指定預建容器設定:
pythonPackageSpec.executorImageUri
:使用「模型架構」和「模型架構版本」下拉式清單。pythonPackageSpec.packageUris
:使用「套件位置」欄位。pythonPackageSpec.pythonModule
:使用「Python module」(Python 模組) 欄位。pythonPackageSpec.args
:使用「Arguments」欄位。
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--python-package-uris=PYTHON_PACKAGE_URIS \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE
如需更多背景資訊,請參閱建立CustomJob
的指南。
自訂容器
在
containerSpec.imageUri
欄位中,指定自訂容器的 Artifact Registry 或 Docker Hub URI。如要覆寫容器中的
ENTRYPOINT
或CMD
指令,請指定containerSpec.command
或containerSpec.args
欄位。 這些欄位會根據下列規則影響容器的執行方式:如果兩個欄位都未指定:容器會根據
ENTRYPOINT
指令和CMD
指令 (如有) 執行。請參閱 Docker 說明文件,瞭解CMD
和ENTRYPOINT
如何互動。如果只指定
containerSpec.command
:容器會執行containerSpec.command
值,取代ENTRYPOINT
指令。如果容器有CMD
指示,系統會忽略該指示。如果只指定
containerSpec.args
:容器會根據ENTRYPOINT
指令執行,並以containerSpec.args
的值取代CMD
指令。如果您同時指定這兩個欄位:容器會執行,並以
containerSpec.command
取代ENTRYPOINT
指令,以及以containerSpec.args
取代CMD
指令。
下列範例著重說明建立 CustomJob
時,可指定部分容器設定的位置:
控制台
在 Google Cloud 控制台中,您無法直接建立 CustomJob
。不過,您可以建立 TrainingPipeline
,藉此建立 CustomJob
。在 Google Cloud 控制台中建立TrainingPipeline
時,您可以在「訓練容器」步驟的特定欄位中指定自訂容器設定:
containerSpec.imageUri
:使用「容器映像檔」欄位。containerSpec.command
:這個 API 欄位無法在Google Cloud 控制台中設定。containerSpec.args
:使用「Arguments」欄位。
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI
Java
在試用這個範例之前,請先按照Java使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Java API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Node.js
在試用這個範例之前,請先按照Node.js使用用戶端程式庫的 Vertex AI 快速入門中的操作說明進行設定。 詳情請參閱 Vertex AI Node.js API 參考說明文件。
如要向 Vertex AI 進行驗證,請設定應用程式預設憑證。 詳情請參閱「為本機開發環境設定驗證」。
Python
如要瞭解如何安裝或更新 Python 適用的 Vertex AI SDK,請參閱「安裝 Python 適用的 Vertex AI SDK」。 詳情請參閱 Python API 參考說明文件。
如需更多背景資訊,請參閱建立CustomJob
的指南。
後續步驟
- 瞭解如何建立
CustomJob
,執行自訂訓練。