將 Vertex 機器學習中繼資料與管道搭配使用

1. 總覽

在本實驗室中,您將瞭解如何使用 Vertex 機器學習中繼資料,分析 Vertex AI Pipelines 執行作業產生的中繼資料。

課程內容

學習重點:

  • 使用 Kubeflow Pipelines SDK 建構機器學習管道,在 Vertex AI 中建立資料集,並在該資料集上訓練及部署自訂 Scikit-learn 模型
  • 撰寫可產生構件和中繼資料的自訂管線元件
  • 比較 Vertex Pipelines 執行作業,包括在 Cloud 控制台和程式碼中執行
  • 追蹤管道產生的構件歷程
  • 查詢管道執行作業的中繼資料

在 Google Cloud 中執行這個實驗室的總費用約為 $2 美元。

2. Vertex AI 簡介

這個實驗室使用 Google Cloud 最新推出的 AI 產品服務。Vertex AI 整合了 Google Cloud 中的機器學習產品,提供流暢的開發體驗。先前使用 AutoML 訓練的模型和自訂模型,都能透過不同的服務存取。新產品將這兩項功能與其他新產品整合至單一 API。您也可以將現有專案遷移至 Vertex AI。

除了模型訓練和部署服務外,Vertex AI 也包含各種機器學習運作產品,包括 Vertex Pipelines、機器學習中繼資料、模型監控和特徵儲存庫等。所有 Vertex AI 產品項目均如下圖所示。

Vertex 產品總覽

本實驗室將著重於 Vertex PipelinesVertex 機器學習中繼資料

如有任何 Vertex AI 相關意見回饋,請前往支援頁面

為什麼機器學習管道很實用?

在深入瞭解前,我們先來瞭解為何要使用管道。假設您要建構的機器學習工作流程包含處理資料、訓練模型、超參數調整、評估和模型部署。每個步驟都有不同的依附元件,如果您將整個工作流程視為單體,可能會變得不穩定。開始擴大機器學習程序時,您可能會想與團隊中的其他成員分享機器學習工作流程,讓他們執行並提供程式碼。但如果沒有可靠且可重現的程序,這項工作就會變得困難。在管道中,機器學習程序的每個步驟都是獨立的容器。如此一來,您就能獨立開發步驟,並以可重現的方式追蹤每個步驟的輸入和輸出內容。您也可以根據 Cloud 環境中的其他事件,排定或觸發管道的執行作業,例如在有新訓練資料時啟動管道執行作業。

重點摘要:管道可協助您自動化重現機器學習工作流程。

3. 雲端環境設定

您必須擁有啟用計費功能的 Google Cloud Platform 專案,才能執行這個程式碼研究室。如要建立專案,請按照這篇文章中的操作說明進行。

啟動 Cloud Shell

在本研究室中,您將在 Cloud Shell 工作階段中進行作業,這是由在 Google 雲端運作的虛擬機器代管的指令解譯器。您也可以在自己的電腦上執行本節內容,但使用 Cloud Shell 可讓所有人都能在一致的環境中重現體驗。實驗室結束後,歡迎您在自己的電腦上重試這一節。

授權 Cloud Shell

啟用 Cloud Shell

在 Cloud 控制台的右上方,按一下下列按鈕來「啟用 Cloud Shell」

啟用 Cloud Shell

如果您先前從未啟動 Cloud Shell,您會看見中介畫面 (需捲動位置),說明螢幕內容。如果是這種情況,請點選「繼續」 (之後不會再顯示這個畫面)。以下是單次畫面的外觀:

Cloud Shell 設定

佈建並連線至 Cloud Shell 只需幾分鐘的時間。

Cloud Shell 啟動

這個虛擬機器會載入您需要的所有開發工具。提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作,大幅提高網路效能和驗證能力。您可以使用瀏覽器或 Chromebook 完成本編碼實驗室的大部分工作,甚至是全部工作。

連線至 Cloud Shell 後,您應會發現自己通過驗證,且專案已設為您的專案 ID。

在 Cloud Shell 中執行下列指令,確認您已通過驗證:

gcloud auth list

指令輸出

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案:

gcloud config list project

指令輸出

[core]
project = <PROJECT_ID>

如未設定,請輸入下列指令設定專案:

gcloud config set project <PROJECT_ID>

指令輸出

Updated property [core/project].

Cloud Shell 有幾個環境變數,包括 GOOGLE_CLOUD_PROJECT,其中包含目前 Cloud 專案的名稱。我們會在本研究室的各個不同地方使用這些內容。您可以執行以下指令來查看:

echo $GOOGLE_CLOUD_PROJECT

啟用 API

在後續步驟中,您會瞭解何時需要這些服務 (以及原因),但目前請執行以下指令,讓專案存取 Compute Engine、Container Registry 和 Vertex AI 服務:

gcloud services enable compute.googleapis.com         \
                       containerregistry.googleapis.com  \
                       aiplatform.googleapis.com

這應該會產生類似以下的成功訊息:

Operation "operations/acf.cc11852d-40af-47ad-9d59-477a12847c9e" finished successfully.

建立 Cloud Storage bucket

如要在 Vertex AI 執行訓練工作,我們需要一個儲存儲存的模型資產的儲存空間值區。值區必須是區域性值區,我們在這裡使用 us-central,但您也可以使用其他區域 (只要在本研究室中進行替換即可)。如果您已有資料夾,可以略過這個步驟。

在 Cloud Shell 終端機中執行下列指令,即可建立儲存桶:

BUCKET_NAME=gs://$GOOGLE_CLOUD_PROJECT-bucket
gsutil mb -l us-central1 $BUCKET_NAME

接著,我們會為運算服務帳戶授予這個值區的存取權。這樣一來,Vertex Pipelines 就能具備寫入這個值區的必要權限。執行下列指令即可新增此權限:

gcloud projects describe $GOOGLE_CLOUD_PROJECT > project-info.txt
PROJECT_NUM=$(cat project-info.txt | sed -nre 's:.*projectNumber\: (.*):\1:p')
SVC_ACCOUNT="${PROJECT_NUM//\'/}-compute@developer.gserviceaccount.com"
gcloud projects add-iam-policy-binding $GOOGLE_CLOUD_PROJECT --member serviceAccount:$SVC_ACCOUNT --role roles/storage.objectAdmin

建立 Vertex AI Workbench 執行個體

在 Cloud 控制台的 Vertex AI 專區中,按一下「Workbench」:

Vertex AI 選單

接著在「使用者自行管理的筆記本」中,按一下「新增筆記本」

建立新的筆記本

接著選取「TensorFlow 企業版 2.3 (含 LTS)」執行個體類型,且不加入任何 GPU

TFE 執行個體

使用預設選項,然後點選「建立」

開啟筆記本

建立執行個體後,請選取「Open JupyterLab」

開啟筆記本

4. Vertex Pipelines 設定

如要使用 Vertex Pipelines,您還需要安裝一些額外的程式庫:

  • Kubeflow Pipelines:這是我們用來建構管道的 SDK。Vertex Pipelines 支援使用 Kubeflow Pipelines 或 TFX 建構的管線執行作業。
  • Vertex AI SDK:這個 SDK 可改善呼叫 Vertex AI API 的體驗。我們會使用它在 Vertex AI 上執行管道。

建立 Python 筆記本及安裝程式庫

首先,在 Notebook 執行個體的啟動器選單中,選取「Python 3」,建立筆記本:

建立 Python 3 筆記本

如要安裝本實驗室中會用到的兩項服務,請先在筆記本儲存格中設定使用者標記:

USER_FLAG = "--user"

然後在筆記本中執行下列指令:

!pip3 install {USER_FLAG} google-cloud-aiplatform==1.7.0
!pip3 install {USER_FLAG} kfp==1.8.9

安裝這些套件後,您必須重新啟動核心:

import os

if not os.getenv("IS_TESTING"):
    # Automatically restart kernel after installs
    import IPython

    app = IPython.Application.instance()
    app.kernel.do_shutdown(True)

接下來,請檢查您是否已正確安裝 KFP SDK 版本。應為 >=1.8:

!python3 -c "import kfp; print('KFP SDK version: {}'.format(kfp.__version__))"

接著,請確認 Vertex AI SDK 版本是否為 1.6.2 以上:

!pip list | grep aiplatform

設定專案 ID 和值區

在這個研究室中,您會參照 Cloud 專案 ID 和先前建立的值區。接下來,我們將為每個變數建立變數。

如果您不知道專案 ID,可以執行下列指令來取得:

import os
PROJECT_ID = ""

# Get your Google Cloud project ID from gcloud
if not os.getenv("IS_TESTING"):
    shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
    PROJECT_ID = shell_output[0]
    print("Project ID: ", PROJECT_ID)

否則請在這裡設定:

if PROJECT_ID == "" or PROJECT_ID is None:
    PROJECT_ID = "your-project-id"  # @param {type:"string"}

然後建立變數來儲存值區名稱。如果您在本研究室中建立了這個值,則下列值會有效。否則,您必須手動設定:

BUCKET_NAME="gs://" + PROJECT_ID + "-bucket"

匯入程式庫

新增以下程式碼,匯入我們在本程式碼研究室中會用到的程式庫:

import matplotlib.pyplot as plt
import pandas as pd

from kfp.v2 import compiler, dsl
from kfp.v2.dsl import pipeline, component, Artifact, Dataset, Input, Metrics, Model, Output, InputPath, OutputPath

from google.cloud import aiplatform

# We'll use this namespace for metadata querying
from google.cloud import aiplatform_v1

定義常數

在建構管道之前,我們需要定義一些常數變數。PIPELINE_ROOT 是 Cloud Storage 路徑,用於寫入管道建立的構件。我們在此使用 us-central1 做為區域,但如果您在建立值區時使用其他區域,請更新下方程式碼中的 REGION 變數:

PATH=%env PATH
%env PATH={PATH}:/home/jupyter/.local/bin
REGION="us-central1"

PIPELINE_ROOT = f"{BUCKET_NAME}/pipeline_root/"
PIPELINE_ROOT

執行上述程式碼後,您應該會看到管道根目錄的輸出內容。這是用來寫入管道構件的 Cloud Storage 位置。格式為 gs://YOUR-BUCKET-NAME/pipeline_root/

5. 使用自訂元件建立 3 步驟管道

本研究室的重點在於瞭解管道執行作業的中繼資料。為此,我們需要在 Vertex Pipelines 上執行管道,這也是我們要著手的地方。這裡,我們使用下列自訂元件來定義 3 步驟管道:

  • get_dataframe:從 BigQuery 表格擷取資料,並轉換為 Pandas DataFrame
  • train_sklearn_model:使用 Pandas DataFrame 訓練並匯出 Scikit Learn 模型,以及一些指標
  • deploy_model:將匯出的 Scikit Learn 模型部署至 Vertex AI 中的端點

在這個管道中,我們會使用 UCI Machine Learning 的Dry beans dataset,來源為:KOKLU, M. and OZKAN, I.A., (2020 年)《Multiclass Classification of ry Beans Using Computer Vision and Machine Learning Techniques》(使用電腦視覺和機器學習技術的多重類別分類)。DOI

這是一個表格資料集,在管道中,我們會使用這份資料集訓練、評估及部署 Scikit-learn 模型,讓模型根據豆子的特性將豆子分成 7 種類型。開始編寫程式吧!

建立以 Python 函式為基礎的元件

使用 KFP SDK,我們就能根據 Python 函式建立元件。我們會將這個值用於此管道中的 3 個元件。

下載 BigQuery 資料並轉換為 CSV

首先,我們會建構 get_dataframe 元件:

@component(
    packages_to_install=["google-cloud-bigquery", "pandas", "pyarrow", "db-dtypes"],
    base_image="python:3.9",
    output_component_file="create_dataset.yaml"
)
def get_dataframe(
    bq_table: str,
    output_data_path: OutputPath("Dataset")
):
    from google.cloud import bigquery
    import pandas as pd
    import os

    project_number = os.environ["CLOUD_ML_PROJECT_ID"]
    bqclient = bigquery.Client(project=project_number)
    table = bigquery.TableReference.from_string(
        bq_table
    )
    rows = bqclient.list_rows(
        table
    )
    dataframe = rows.to_dataframe(
        create_bqstorage_client=True,
    )
    dataframe = dataframe.sample(frac=1, random_state=2)
    dataframe.to_csv(output_data_path)

讓我們進一步瞭解這個元件發生了什麼事:

  • 當管道執行時,@component 修飾器會將此函式編譯為元件。您在編寫自訂元件時,都會使用這個方法。
  • base_image 參數會指定此元件要使用的容器映像檔。
  • 這個元件會使用一些 Python 程式庫,我們會透過 packages_to_install 參數指定這些程式庫。
  • output_component_file 參數為選用項目,可指定要將編譯元件寫入的 yaml 檔案。執行單元格後,您應該會看到該檔案已寫入 Notebook 執行個體。如果您想與他人分享此元件,可以傳送產生的 yaml 檔案,並請對方使用以下方式載入:
# This is optional, it shows how to load a component from a yaml file
# dataset_component = kfp.components.load_component_from_file('./create_dataset.yaml')
  • 接著,這個元件會使用 BigQuery Python 用戶端程式庫,將資料從 BigQuery 下載至 Pandas DataFrame,然後以 CSV 檔案格式建立該資料的輸出構件。這會做為輸入內容傳遞至下一個元件

建立元件來訓練 Scikit-learn 模型

在這個元件中,我們會取得先前產生的 CSV,用來訓練 Scikit-learn 決策樹模型。這個元件會匯出產生的 Scikit 模型,以及 Metrics 構件,其中包含模型的準確度、架構,以及用於訓練模型的資料集大小:

@component(
    packages_to_install=["sklearn", "pandas", "joblib", "db-dtypes"],
    base_image="python:3.9",
    output_component_file="beans_model_component.yaml",
)
def sklearn_train(
    dataset: Input[Dataset],
    metrics: Output[Metrics],
    model: Output[Model]
):
    from sklearn.tree import DecisionTreeClassifier
    from sklearn.metrics import roc_curve
    from sklearn.model_selection import train_test_split
    from joblib import dump

    import pandas as pd
    df = pd.read_csv(dataset.path)
    labels = df.pop("Class").tolist()
    data = df.values.tolist()
    x_train, x_test, y_train, y_test = train_test_split(data, labels)

    skmodel = DecisionTreeClassifier()
    skmodel.fit(x_train,y_train)
    score = skmodel.score(x_test,y_test)
    print('accuracy is:',score)

    metrics.log_metric("accuracy",(score * 100.0))
    metrics.log_metric("framework", "Scikit Learn")
    metrics.log_metric("dataset_size", len(df))
    dump(skmodel, model.path + ".joblib")

定義元件,將模型上傳至 Vertex AI

最後,我們的最後一個元件會使用您在上一個步驟中訓練過的模型,將模型上傳到 Vertex AI,然後部署至端點:

@component(
    packages_to_install=["google-cloud-aiplatform"],
    base_image="python:3.9",
    output_component_file="beans_deploy_component.yaml",
)
def deploy_model(
    model: Input[Model],
    project: str,
    region: str,
    vertex_endpoint: Output[Artifact],
    vertex_model: Output[Model]
):
    from google.cloud import aiplatform

    aiplatform.init(project=project, location=region)

    deployed_model = aiplatform.Model.upload(
        display_name="beans-model-pipeline",
        artifact_uri = model.uri.replace("model", ""),
        serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/sklearn-cpu.0-24:latest"
    )
    endpoint = deployed_model.deploy(machine_type="n1-standard-4")

    # Save data to the output params
    vertex_endpoint.uri = endpoint.resource_name
    vertex_model.uri = deployed_model.resource_name

我們會使用 Vertex AI SDK 上傳模型,並使用預建的預測容器。接著將模型部署至端點,並將 URI 傳回模型和端點資源。在本程式碼研究室的後續內容中,您將進一步瞭解將這項資料做為構件傳回的意義。

定義及編譯管道

我們已定義三個元件,接下來將建立管道定義。這裡說明輸入和輸出構件如何在步驟之間流動:

@pipeline(
    # Default pipeline root. You can override it when submitting the pipeline.
    pipeline_root=PIPELINE_ROOT,
    # A name for the pipeline.
    name="mlmd-pipeline",
)
def pipeline(
    bq_table: str = "",
    output_data_path: str = "data.csv",
    project: str = PROJECT_ID,
    region: str = REGION
):
    dataset_task = get_dataframe(bq_table)

    model_task = sklearn_train(
        dataset_task.output
    )

    deploy_task = deploy_model(
        model=model_task.outputs["model"],
        project=project,
        region=region
    )

以下會產生 JSON 檔案,您可以用來執行管道:

compiler.Compiler().compile(
    pipeline_func=pipeline, package_path="mlmd_pipeline.json"
)

啟動兩個管道執行作業

接下來,我們將啟動兩個管道執行作業。首先,讓我們定義要用於管道工作 ID 的時間戳記:

from datetime import datetime

TIMESTAMP = datetime.now().strftime("%Y%m%d%H%M%S")

請注意,管道在執行時會採用一個參數:我們要用來訓練資料的 bq_table。這個管道執行作業會使用豆類資料集的小型版本:

run1 = aiplatform.PipelineJob(
    display_name="mlmd-pipeline",
    template_path="mlmd_pipeline.json",
    job_id="mlmd-pipeline-small-{0}".format(TIMESTAMP),
    parameter_values={"bq_table": "sara-vertex-demos.beans_demo.small_dataset"},
    enable_caching=True,
)

接下來,請使用相同資料集的較大版本建立另一個管道執行作業。

run2 = aiplatform.PipelineJob(
    display_name="mlmd-pipeline",
    template_path="mlmd_pipeline.json",
    job_id="mlmd-pipeline-large-{0}".format(TIMESTAMP),
    parameter_values={"bq_table": "sara-vertex-demos.beans_demo.large_dataset"},
    enable_caching=True,
)

最後,為這兩次執行作業啟動管道執行作業。建議您在兩個分開的筆記本儲存格中執行這項操作,以便查看每次執行的輸出內容。

run1.submit()

接著,啟動第二次執行作業:

run2.submit()

執行這個儲存格後,您會在 Vertex AI 控制台中看見各個管道的連結。開啟該連結即可查看管道的詳細資料:

管道執行作業網址

完成後 (這個管道每次執行大約需要 10 到 15 分鐘),您會看到類似下方的畫面:

已完成的 sklearn 管道

您現已完成兩個管道執行作業,現在可以進一步瞭解管道構件、指標和歷程。

6. 瞭解管道構件和歷程

在管道圖中,您會在每個步驟後方看到小方塊。這些是構件,或管道步驟產生的輸出內容。構件有許多類型,在這個特定管道中,我們有資料集、指標、模型和端點構件。按一下 UI 頂端的「Expand Artifacts」滑桿,即可查看每個構件詳細資料:

展開構件

點選構件即可查看更多詳細資料,包括該構件的 URI。舉例來說,點選「vertex_endpoint」vertex_endpoint構件就會顯示 URI,您可以在 Vertex AI 控制台中找到該已部署的端點:

端點構件詳細資料

Metrics 構件可讓您傳遞與特定管道步驟相關聯的自訂指標。在管道的 sklearn_train 元件中,我們記錄了模型準確率、架構和資料集大小的指標。按一下指標構件,即可查看詳細資料:

模型指標

每個構件都有Lineage,用於說明與其相關聯的其他構件。再次按一下管道的 vertex_endpoint 構件,然後按一下「View Lineage」按鈕:

顯示歷程

系統會開啟一個新分頁,您可以在其中查看與所選項目相關聯的所有構件。您的系譜圖會如下所示:

端點系譜圖

這會顯示與這個端點相關聯的模型、指標和資料集。這項檢測的實用性何在?您可能會將模型部署至多個端點,或者需要瞭解用於訓練模型的特定資料集,以便將模型部署至您要查看的端點。沿革圖可協助您瞭解機器學習系統中其他部分的每個構件。您也可以透過程式輔助存取歷程,我們稍後會在本程式碼研究室中說明。

7. 比較管道執行作業

單一管道很可能會執行多次,可能會使用不同的輸入參數、新資料,或是由團隊中的人員執行。為了追蹤管道執行情形,建議您根據各種指標比較管道。本節將介紹兩種比較執行作業的方法。

在管道 UI 中比較執行作業

在 Cloud 控制台中,前往「管道」資訊主頁。這可讓您概略瞭解已執行的每個管道執行作業。檢查最後兩次執行結果,然後按一下頂端的「比較」按鈕:

比較執行作業

這會帶我們前往一個頁面,讓我們比較所選執行作業的輸入參數和指標。請留意上述兩項執行作業不同的 BigQuery 資料表、資料集大小和準確率值:

比較指標

您可以使用這個 UI 功能比較兩次以上的執行作業,甚至比較不同管道的執行作業。

比較使用 Vertex AI SDK 的執行作業

在執行許多管道時,您可能會希望以程式輔助方式取得這些比較指標,進一步深入瞭解指標詳細資料並建立視覺化效果。

您可以使用 aiplatform.get_pipeline_df() 方法存取執行中繼資料。我們會在此取得相同管道最後兩次執行作業的中繼資料,並將其載入 Pandas DataFrame。此處的 pipeline 參數是指管道定義中所指定的管道名稱:

df = aiplatform.get_pipeline_df(pipeline="mlmd-pipeline")
df

當您列印 DataFrame 時,會看到類似以下的內容:

pipeline 指標 DataFrame

我們在這裡只執行管道兩次,但您可以想像,如果執行次數更多,會有多少指標。接下來,我們會使用 matchartlib 建立自訂圖表,查看模型準確率與訓練用資料量之間的關係。

在新筆記本儲存格中執行下列指令:

plt.plot(df["metric.dataset_size"], df["metric.accuracy"],label="Accuracy")
plt.title("Accuracy and dataset size")
plt.legend(loc=4)
plt.show()

畫面應如下所示:

Matplotlib 中繼資料圖表

8. 查詢管道指標

除了取得所有管道指標的 DataFrame,您可能還想以程式輔助方式查詢機器學習系統中建立的構件。您可以在此建立自訂資訊主頁,或讓貴機構中的其他人查看特定構件詳細資料。

取得所有模型構件

如要以這種方式查詢構件,我們會建立 MetadataServiceClient

API_ENDPOINT = "{}-aiplatform.googleapis.com".format(REGION)
metadata_client = aiplatform_v1.MetadataServiceClient(
  client_options={
      "api_endpoint": API_ENDPOINT
  }
)

接下來,我們會向該端點提出 list_artifacts 要求,並傳遞篩選器,指出我們希望在回應中看到哪些構件。首先,讓我們取得專案中所有模型的構件。如要這麼做,請在筆記本中執行下列指令:

MODEL_FILTER="schema_title = \"system.Model\""
artifact_request = aiplatform_v1.ListArtifactsRequest(
    parent="projects/{0}/locations/{1}/metadataStores/default".format(PROJECT_ID, REGION),
    filter=MODEL_FILTER
)
model_artifacts = metadata_client.list_artifacts(artifact_request)

產生的 model_artifacts 回應會包含專案中每個模型構件的可迴圈物件,以及每個模型的相關中繼資料。

篩選物件並在 DataFrame 中顯示

如果我們可以更輕鬆地將產生的構件查詢視覺化,將會非常方便。接下來,我們來取得 2021 年 8 月 10 日後建立的所有成果,並顯示 LIVE 狀態。執行這項要求後,我們會在 Pandas DataFrame 中顯示結果。首先執行要求:

LIVE_FILTER = "create_time > \"2021-08-10T00:00:00-00:00\" AND state = LIVE"
artifact_req = {
    "parent": "projects/{0}/locations/{1}/metadataStores/default".format(PROJECT_ID, REGION),
    "filter": LIVE_FILTER
}
live_artifacts = metadata_client.list_artifacts(artifact_req)

接著,在 DataFrame 中顯示結果:

data = {'uri': [], 'createTime': [], 'type': []}

for i in live_artifacts:
    data['uri'].append(i.uri)
    data['createTime'].append(i.create_time)
    data['type'].append(i.schema_title)

df = pd.DataFrame.from_dict(data)
df

畫面顯示的內容如下:

經過篩選的構件資料框

除了這裡嘗試的條件外,您也可以根據其他條件篩選構件。

這樣就完成實驗室了!

🎉 恭喜!🎉

您已瞭解如何使用 Vertex AI 執行下列作業:

  • 使用 Kubeflow Pipelines SDK 建構機器學習管道,在 Vertex AI 中建立資料集,並在該資料集上訓練及部署自訂 Scikit-learn 模型
  • 撰寫可產生構件和中繼資料的自訂管線元件
  • 比較 Vertex Pipelines 執行作業,包括在 Cloud 控制台和程式碼中執行
  • 追蹤管道產生的構件歷程
  • 查詢管道執行作業的中繼資料

如要進一步瞭解 Vertex 的其他部分,請參閱說明文件

9. 清理

為避免產生費用,建議您刪除在本研究室中建立的資源。

停止或刪除 Notebooks 執行個體

如果您想繼續使用在本實驗室中建立的 Notebook,建議您在未使用時關閉 Notebook。在 Cloud 控制台的 Notebook 使用者介面中,選取 Notebook,然後選取「Stop」。如要完全刪除執行個體,請選取「刪除」

停止執行個體

刪除 Vertex AI 端點

如要刪除已部署的端點,請前往 Vertex AI 控制台的「Endpoints」專區,然後按一下刪除圖示:

刪除端點

刪除 Cloud Storage 值區

如要刪除儲存體值區,請使用 Cloud 控制台的「導覽」選單,前往「儲存體」頁面,選取所需值區,然後按一下「刪除」:

刪除儲存空間