Vertex AI SDK 包含多個類別,您可以在訓練模型時使用。大多數訓練類別都用於建立、訓練及傳回模型。使用HyperparameterTuningJob
調整訓練工作的超參數。使用 PipelineJob
管理機器學習 (ML) 工作流程,自動化及監控機器學習系統。
下列主題會簡要說明 Vertex AI SDK 中與訓練相關的每個類別。
結構化資料的 AutoML 訓練類別
Vertex AI SDK 包含下列類別,可用於訓練結構化 AutoML 模型。
AutoMLForecastingTrainingJob
AutoMLForecastingTrainingJob
類別會使用 AutoML
訓練方法來訓練及執行預測模型。AutoML
訓練方法適用於大多數預測用途。如果您的使用案例無法從 Seq2seq
或 SequenceToSequencePlusForecastingTrainingJob
和 TemporalFusionTransformerForecastingTrainingJob
類別提供的 Temporal fusion transformer
訓練方法獲益,則 AutoML
可能是預測的最佳訓練方法。
如需示範如何使用 AutoMLForecastingTrainingJob
的程式碼範例,請參閱 GitHub 上的「建立訓練管道預測範例」。
AutoMLTabularTrainingJob
AutoMLTabularTrainingJob
類別代表建立、訓練及傳回 AutoML
表格模型的作業。如要進一步瞭解如何訓練表格模型和 Vertex AI,請參閱表格資料和表格資料總覽。
下列程式碼片段範例說明如何使用 Vertex AI SDK 建立及執行 AutoML
表格模型:
dataset = aiplatform.TabularDataset('projects/my-project/location/us-central1/datasets/{DATASET_ID}')
job = aiplatform.AutoMLTabularTrainingJob(
display_name="train-automl",
optimization_prediction_type="regression",
optimization_objective="minimize-rmse",
)
model = job.run(
dataset=dataset,
target_column="target_column_name",
training_fraction_split=0.6,
validation_fraction_split=0.2,
test_fraction_split=0.2,
budget_milli_node_hours=1000,
model_display_name="my-automl-model",
disable_early_stopping=False,
)
SequenceToSequencePlusForecastingTrainingJob
SequenceToSequencePlusForecastingTrainingJob
類別會使用 Seq2seq+
訓練方法來訓練及執行預測模型。
Seq2seq+
訓練方法很適合用於實驗。這個選項的演算法較簡單,使用的搜尋空間也比 AutoML
選項小。如果想快速取得結果,且資料集小於 1 GB,建議使用 Seq2seq+
。
如需示範如何使用 SequenceToSequencePlusForecastingTrainingJob
的程式碼範例,請參閱 GitHub 上的「建立訓練管道預測 Seq2seq 範例」。
TemporalFusionTransformerForecastingTrainingJob
TemporalFusionTransformerForecastingTrainingJob
類別會使用時間融合轉換器 (TFT) 訓練方法,訓練及執行預測模型。TFT 訓練方法會實作以注意力為基礎的深層類神經網路 (DNN) 模型,並使用多重預測期間任務來產生預測結果。
如需示範如何使用 TemporalFusionTransformerForecastingTrainingJob
的程式碼範例,請參閱 GitHub 上的建立訓練管道,預測時間融合轉換器範例。
TimeSeriesDenseEncoderForecastingTrainingJob
TimeSeriesDenseEncoderForecastingTrainingJob
類別會使用時間序列稠密型編碼器 (TiDE) 訓練方法,訓練及執行預測模型。TiDE 使用多層感知器 (MLP),提供具有共變數和非線性依附關係的線性模型預測速度。如要進一步瞭解 TiDE,請參閱「Recent advances in deep long-horizon forecasting」(近期在深度長程預測方面的進展) 和這篇 TiDE 網誌文章。
非結構化資料的 AutoML 訓練類別
Vertex AI SDK 包含下列類別,可訓練非結構化圖片和影片模型:
AutoMLImageTrainingJob
使用 AutoMLImageTrainingJob
類別建立、訓練及傳回圖片模型。如要進一步瞭解如何在 Vertex AI 中使用圖片資料模型,請參閱「圖片資料」。
如需使用 AutoMLImageTrainingJob
類別的範例,請參閱 AutoML 圖片分類筆記本中的教學課程。
AutoMLVideoTrainingJob
使用 AutoMLVideoTrainingJob
類別建立、訓練及傳回影片模型。如要進一步瞭解如何在 Vertex AI 中使用影片資料模型,請參閱影片資料。
如要瞭解如何使用 AutoMLVideoTrainingJob
類別,請參閱「AutoML training video action recognition model for batch prediction」筆記本中的教學課程。
自訂資料訓練課程
您可以使用 Vertex AI SDK 自動執行自訂訓練工作流程。如要瞭解如何使用 Vertex AI 執行自訂訓練應用程式,請參閱「自訂訓練總覽」。
Vertex AI SDK 包含三個類別,可建立自訂訓練管道。訓練 pipeline 會接受輸入的 Vertex AI 代管資料集,並使用該資料集訓練模型。接著,訓練工作完成後,系統會傳回模型。這三種自訂訓練管道類別的訓練管道建立方式各不相同。CustomTrainingJob
使用 Python 指令碼,CustomContainerTrainingJob
使用自訂容器,而 CustomPythonPackageTrainingJob
使用 Python 套件和預先建構的容器。
CustomJob
類別會建立自訂訓練工作,但不是管道。與自訂訓練 pipeline 不同,CustomJob
類別可以使用非 Vertex AI 代管資料集的資料集訓練模型,且不會傳回訓練好的模型。由於這個類別接受不同類型的資料集,且不會傳回已訓練的模型,因此相較於自訂訓練管道,這個類別的自動化程度較低,但彈性較高。
CustomContainerTrainingJob
使用 CustomContainerTrainingJob
類別,透過容器在 Vertex AI 中啟動自訂訓練管道。
如需如何使用 CustomContainerTrainingJob
類別的範例,請參閱 PyTorch 圖片分類多節點分散式資料平行訓練 (使用 Vertex AI Training 和自訂容器在 GPU 上進行) 筆記本中的教學課程。
CustomJob
使用 CustomJob
類別,透過指令碼在 Vertex AI 中啟動自訂訓練工作。
訓練工作比訓練管線更具彈性,因為您不必在 Vertex AI 管理的資料集中載入資料,訓練工作完成後也不會註冊模型參照。舉例來說,您可能會想使用 CustomJob
類別、其 from_local_script
方法,以及從 scikit-learn 或 TensorFlow 載入資料集的指令碼。或者,您可能想在訓練好的模型註冊至 Vertex AI 前,先進行分析或測試。
如要進一步瞭解自訂訓練工作,包括提交自訂訓練工作前的必要條件、自訂工作包含的內容,以及 Python 程式碼範例,請參閱「建立自訂訓練工作」。
由於 CustomJob.run
不會傳回訓練好的模型,因此您需要使用指令碼將模型構件寫入某個位置,例如 Cloud Storage 值區。詳情請參閱「匯出已訓練的機器學習模型」。
下列程式碼範例說明如何使用範例工作站集區規格,建立及執行自訂工作。程式碼會將訓練好的模型寫入名為「artifact-bucket」的 Cloud Storage bucket。
# Create a worker pool spec that specifies a TensorFlow cassava dataset and
# includes the machine type and Docker image. The Google Cloud project ID
# is 'project-id'.
worker_pool_specs=[
{
"replica_count": 1,
"machine_spec": { "machine_type": "n1-standard-8",
"accelerator_type": "NVIDIA_TESLA_V100",
"accelerator_count": 1
},
"container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
},
{
"replica_count": 1,
"machine_spec": { "machine_type": "n1-standard-8",
"accelerator_type": "NVIDIA_TESLA_V100",
"accelerator_count": 1
},
"container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
}
]
# Use the worker pool spec to create a custom training job. The custom training
# job artifacts are stored in the Cloud Storage bucket
# named 'artifact-bucket'.
your_custom_training_job = aiplatform.CustomJob(
display_name='multiworker-cassava-sdk',
worker_pool_specs=worker_pool_specs,
staging_bucket='gs://{artifact-bucket}')
# Run the training job. This method doesn't return the trained model.
my_multiworker_job.run()
CustomPythonPackageTrainingJob
使用 CustomPythonPackageTrainingJob
類別,透過 Python 套件在 Vertex AI 中啟動自訂訓練管道。
如需如何使用 CustomPythonPackageTrainingJob
類別的範例,請參閱「使用 Python 套件、受管理文字資料集和 TensorFlow 服務容器進行自訂訓練」筆記本中的教學課程。
CustomTrainingJob
使用 CustomTrainingJob
類別,透過指令碼在 Vertex AI 中啟動自訂訓練管線。
如要查看如何使用 CustomTrainingJob
類別的範例,請參閱「Custom training image classification model for online prediction with explainability」筆記本中的教學課程。
超參數訓練類別
Vertex AI SDK 包含超參數調整的類別。 超參數調整功能會將控管訓練程序的變數 (又稱超參數) 最佳化,盡可能提高模型的預測準確率。詳情請參閱超參數調整總覽。
HyperparameterTuningJob
使用 HyperparameterTuningJob
類別,自動調整訓練應用程式的超參數。
如要瞭解如何使用 HyperparameterTuningJob
類別建立及調整自訂訓練模型,請參閱 GitHub 上的超參數調整教學課程。
如要瞭解如何使用 HyperparameterTuningJob
類別,為 TensorFlow 模型執行 Vertex AI 超參數調整工作,請參閱 GitHub 上的「為 TensorFlow 模型執行超參數調整」教學課程。
Pipeline 訓練課程
管道會在 Vertex AI 中自動調度管理機器學習工作流程。您可以使用管道自動化處理、監控及管理機器學習系統。如要進一步瞭解 Vertex AI 中的管道,請參閱「Vertex AI 管道簡介」。
PipelineJob
PipelineJob
類別的執行個體代表 Vertex AI 管道。
我們提供多個教學課程筆記本,說明如何使用 PipelineJob
類別:
如要瞭解如何執行 Kubeflow Pipelines (KFP) 管道,請參閱 GitHub 上的「使用 KFP SDK 的管道控制結構」教學課程。
如要瞭解如何訓練 scikit-learn 表格分類模型,以及如何使用 Vertex AI Pipeline 建立批次預測工作,請參閱 GitHub 上的「Training and batch prediction with BigQuery source and destination for a custom tabular classification model」教學課程。
如要瞭解如何建構 AutoML 圖片分類模型及使用 Vertex AI 管道,請參閱 GitHub 上的 AutoML 圖片分類管道 (使用 google-cloud-pipeline-components) 教學課程。
如需更多教學課程筆記本,請參閱 Vertex AI 筆記本教學課程。
後續步驟
- 瞭解 Vertex AI SDK。