訓練課程

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

下列主題將概略說明 Vertex AI SDK 中每個訓練相關類別。

適用於結構化資料的 AutoML 訓練類別

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

AutoMLForecastingTrainingJob

AutoMLForecastingTrainingJob 類別會使用 AutoML 訓練方法訓練及執行預測模型。AutoML 訓練方法適用於多數預測用途。如果您的用途無法從 SequenceToSequencePlusForecastingTrainingJobTemporalFusionTransformerForecastingTrainingJob 類別分別提供的 Seq2seqTemporal 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 類別會使用 Temporal Fusion Transformer (TFT) 訓練方法,訓練及執行預測模型。TFT 訓練方法會實作以注意力為基礎的深層類神經網路 (DNN) 模型,該模型會使用多重預測期間任務產生預測結果。

如需顯示如何使用 TemporalFusionTransformerForecastingTrainingJob 的程式碼範例,請參閱 GitHub 上的建立訓練管道預測時間融合轉換器範例

TimeSeriesDenseEncoderForecastingTrainingJob

TimeSeriesDenseEncoderForecastingTrainingJob 類別會使用時間序列稠密型編碼器 (TiDE) 訓練方法,訓練及執行預測模型。TiDE 使用多層感知器 (MLP),以便在預測線性模型時,加入協變量和非線性依附性,加快預測速度。如要進一步瞭解 TiDE,請參閱「深度長期預測的最新進展」和這篇 TiDE 網誌文章

非結構化資料的 AutoML 訓練類別

Vertex AI SDK 包含下列類別,可訓練非結構化圖像、文字和影片模型:

AutoMLImageTrainingJob

使用 AutoMLImageTrainingJob 類別建立、訓練及傳回圖片模型。如要進一步瞭解如何在 Vertex AI 中使用圖片資料模型,請參閱「圖片資料」。

如需 AutoMLImageTrainingJob 類別的使用方法示例,請參閱 AutoML 圖片分類 的筆記本教學課程。

AutoMLTextTrainingJob

使用 AutoMLTextTrainingJob 類別建立、訓練及傳回文字模型。如要進一步瞭解如何在 Vertex AI 中使用文字資料模型,請參閱「文字資料」。

如需 AutoMLTextTrainingJob 類別的使用方式示例,請參閱「AutoML 訓練文字實體擷取模型,以便進行線上預測」的 Notebook 中的教學課程。

AutoMLVideoTrainingJob

使用 AutoMLVideoTrainingJob 類別建立、訓練及傳回影片模型。如要進一步瞭解如何在 Vertex AI 中使用影片資料模型,請參閱「影片資料」。

如需 AutoMLVideoTrainingJob 類別的使用方式示例,請參閱「AutoML 訓練影片動作識別模型,以便進行批次預測」的 Notebook 中的教學課程。

自訂資料訓練類別

您可以使用 Vertex AI SDK 自動化自訂訓練工作流程。如要瞭解如何使用 Vertex AI 執行自訂訓練應用程式,請參閱「自訂訓練總覽」。

Vertex AI SDK 包含三個類別,可用於建立自訂訓練管道。訓練管道會接受輸入的 Vertex AI 代管資料集,用於訓練模型。接著,在訓練工作完成後傳回模型。三個自訂訓練管道類別各自以不同方式建立訓練管道。CustomTrainingJob 使用 Python 指令碼、CustomContainerTrainingJob 使用自訂容器,而 CustomPythonPackageTrainingJob 則使用 Python 套件和預先建構的容器。

CustomJob 類別會建立自訂訓練工作,但不是管道。與自訂訓練管道不同,CustomJob 類別可使用非 Vertex AI 代管資料集的資料集訓練模型,且不會傳回已訓練的模型。由於此類別會接受不同類型的資料集,且不會傳回已訓練的模型,因此相較於自訂訓練管道,此類別的自動化程度較低,但彈性較高。

CustomContainerTrainingJob

使用 CustomContainerTrainingJob 類別,透過容器在 Vertex AI 中啟動自訂訓練管道。

如需 CustomContainerTrainingJob 類別的使用方式範例,請參閱「使用 Vertex AI 訓練和自訂容器,在 GPU 上進行 PyTorch 圖片分類多節點分散式資料平行訓練」的 Notebook 中的教學課程。

CustomJob

使用 CustomJob 類別,透過指令碼在 Vertex AI 中啟動自訂訓練工作。

訓練工作比訓練管道更具彈性,因為您不必將資料載入 Vertex AI 管理的資料集中,且訓練工作完成後,系統不會註冊模型參照。舉例來說,您可能會想使用 CustomJob 類別、其 from_local_script 方法和指令碼,從 scikit-learnTensorFlow 載入資料集。或者,您可能想在將訓練好的模型註冊至 Vertex AI 前,先分析或測試該模型。

如要進一步瞭解自訂訓練工作,包括提交自訂訓練工作前的必要條件、自訂工作所包含的內容,以及 Python 程式碼範例,請參閱「建立自訂訓練工作」。

由於 CustomJob.run 不會傳回已訓練的模型,因此您必須使用指令碼將模型構件寫入位置,例如 Cloud Storage 值區。詳情請參閱「匯出已訓練的機器學習模型」。

以下程式碼範例說明如何使用工作站集區範例規格建立及執行自訂工作。程式碼會將已訓練的模型寫入名為「artifact-bucket」的 Cloud Storage 值區。

# 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 類別的使用方法示例,請參閱「自訂訓練圖像分類模型,以便進行線上預測並提供可解釋性」的 Notebook 中的教學課程。

超參數訓練類別

Vertex AI SDK 包含超參數調整類別。超參數調整可透過最佳化控管訓練程序的變數 (稱為「超參數」),將模型的預測準確率提升至最高。詳情請參閱「超參數調整總覽」。

HyperparameterTuningJob

使用 HyperparameterTuningJob 類別,自動調整訓練應用程式的超參數。

如要瞭解如何使用 HyperparameterTuningJob 類別建立及調整自訂訓練模型,請參閱 GitHub 上的超參數調整教學課程。

如要瞭解如何使用 HyperparameterTuningJob 類別,為 TensorFlow 模型執行 Vertex AI 超參數調整工作,請參閱 GitHub 上的為 TensorFlow 模型執行超參數調整教學課程。

管道訓練類別

管道會在 Vertex AI 中自動調度管理機器學習工作流程。您可以使用管道自動化處理、監控及管理機器學習系統。如要進一步瞭解 Vertex AI 中的管道,請參閱「Vertex AI 管道簡介」。

PipelineJob

PipelineJob 類別的例項代表 Vertex AI 管道。

我們提供多個教學筆記,說明如何使用 PipelineJob 類別:

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

後續步驟