訓練課程

Vertex AI SDK 包含多個類別,您可以在訓練模型時使用。大多數訓練類別都用於建立、訓練及傳回模型。使用HyperparameterTuningJob調整訓練工作的超參數。使用 PipelineJob 管理機器學習 (ML) 工作流程,自動化及監控機器學習系統。

下列主題會簡要說明 Vertex AI SDK 中與訓練相關的每個類別。

結構化資料的 AutoML 訓練類別

Vertex AI SDK 包含下列類別,可用於訓練結構化 AutoML 模型。

AutoMLForecastingTrainingJob

AutoMLForecastingTrainingJob 類別會使用 AutoML 訓練方法來訓練及執行預測模型。AutoML 訓練方法適用於大多數預測用途。如果您的使用案例無法從 Seq2seqSequenceToSequencePlusForecastingTrainingJobTemporalFusionTransformerForecastingTrainingJob 類別提供的 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-learnTensorFlow 載入資料集的指令碼。或者,您可能想在訓練好的模型註冊至 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 類別:

如需更多教學課程筆記本,請參閱 Vertex AI 筆記本教學課程

後續步驟