訓練及部署模型

在本教學課程的前幾個步驟中,您已準備好訓練資料,並建立了 Vertex AI 用於訓練模型的指令碼。您現在可以使用 Python 適用的 Vertex AI SDK 建立 CustomTrainingJob

建立 CustomTrainingJob 時,您會在背景定義訓練管道。Vertex AI 會使用訓練管道和 Python 訓練指令碼中的程式碼,訓練及建立模型。詳情請參閱「建立訓練管道」。

定義訓練管道

如要建立訓練管道,請建立 CustomTrainingJob 物件。在下一個步驟中,您將使用 CustomTrainingJobrun 指令建立及訓練模型。如要建立 CustomTrainingJob,請將下列參數傳遞至其建構函式:

  • display_name:在定義 Python 訓練指令碼的指令引數時,所建立的 JOB_NAME 變數。

  • script_path:您在本教學課程中先前建立的 Python 訓練指令碼路徑。

  • container_url:用於訓練模型的 Docker 容器映像檔 URI。

  • requirements:指令碼的 Python 套件依附元件清單。

  • model_serving_container_image_uri:提供模型預測結果的 Docker 容器映像檔 URI。這個容器可以是預建容器或您自己的自訂映像檔。本教學課程使用預先建構的容器。

執行下列程式碼,建立訓練管道。CustomTrainingJob 方法會使用 task.py 檔案中的 Python 訓練指令碼,建構 CustomTrainingJob

job = aiplatform.CustomTrainingJob(
    display_name=JOB_NAME,
    script_path="task.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
    requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes", "protobuf<3.20.0"],
    model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest",
)

建立及訓練模型

在先前的步驟中,您建立了名為 jobCustomTrainingJob。如要建立及訓練模型,請在 CustomTrainingJob 物件上呼叫 run 方法,並傳遞下列參數:

  • dataset:本教學課程中先前建立的資料表資料集。這個參數可以是表格、圖片、影片或文字資料集。

  • model_display_name - 模型名稱。

  • bigquery_destination:指定 BigQuery 資料集位置的字串。

  • args:傳遞至 Python 訓練指令碼的指令列引數。

如要開始訓練資料並建立模型,請在筆記本中執行下列程式碼:

MODEL_DISPLAY_NAME = "penguins_model_unique"

# Start the training and create your model
model = job.run(
    dataset=dataset,
    model_display_name=MODEL_DISPLAY_NAME,
    bigquery_destination=f"bq://{project_id}",
    args=CMDARGS,
)

在繼續進行下一個步驟之前,請確認 job.run 指令的輸出內容中顯示以下內容,以便驗證是否已完成:

CustomTrainingJob run completed

訓練作業完成後,您就可以部署模型。

部署模型

部署模型時,您也會建立用於預測的 Endpoint 資源。如要部署模型並建立端點,請在筆記本中執行下列程式碼:

DEPLOYED_NAME = "penguins_deployed_unique"

endpoint = model.deploy(deployed_model_display_name=DEPLOYED_NAME)

請等待模型部署完成,再繼續進行下一個步驟。模型部署後,輸出結果會包含文字 Endpoint model deployed

如要在 Google Cloud 控制台中查看部署作業狀態,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Endpoints」(端點) 頁面。

    前往「端點」

  2. 監控「模型」下方的值。端點建立後,在模型部署前,這個值為 0。模型部署後,值會更新為 1

    下圖顯示端點建立完成後,但尚未部署模型的狀態。

    未部署模型的端點。

    以下顯示端點建立完成後,以及模型部署至端點後的情況。

    未部署模型的端點。