Vertex AI Pipelines 可讓您以無伺服器的方式,執行使用 Kubeflow Pipelines SDK 或 TensorFlow Extended 建構的機器學習 (ML) 管道。本文說明如何執行機器學習 pipeline。
您也可以使用範本庫中的預先建構範本建立管道執行作業。如要進一步瞭解範本庫,請參閱「使用範本庫中的預先建立範本」。
事前準備
使用 Vertex AI Pipelines 執行管線前,請按照下列操作說明設定Google Cloud 專案和開發環境:
建立管道。
如要使用 Python 適用的 Vertex AI SDK 執行管道,請安裝 Vertex SDK。
- 安裝 Vertex AI SDK。
建立管道執行作業
請按照下列操作說明,使用 Google Cloud 主控台或 Python 執行 ML 管道。
控制台
請按照下列操作說明,使用 Google Cloud 主控台執行 ML 管道。
在 Google Cloud 控制台的「Vertex AI」專區中,前往「Pipelines」頁面。
在「區域」下拉式選單中,選取要建立管道執行作業的區域。
按一下「
建立執行作業」,開啟「建立管道執行作業」窗格。在「執行詳細資料」部分執行下列操作:
按一下「執行來源」。可用的選項如下:
從現有的管道中選取:如要根據現有的管道範本建立管道執行作業,請按一下「從現有的管道中選取」,然後輸入以下詳細資料:
選取包含 pipeline 或元件定義檔案的 存放區。
選取「Pipeline or component」和「Version」。
指定執行名稱,以便唯一識別管道執行作業。
選取範本庫 pipeline:如要根據 範本庫中 Google 撰寫的 pipeline 範本建立 pipeline 執行作業,請按一下「選取範本庫 pipeline」,然後輸入下列詳細資料:
在「Template Gallery pipeline」清單中,選取 pipeline 範本。
選用:修改可唯一識別管道執行作業的預設執行作業名稱。
上傳檔案:如要上傳已編譯的管道定義,請按一下「上傳檔案」,然後輸入以下詳細資料:
按一下「Browse」,開啟檔案選取器。前往要執行的已編譯管道 YAML 檔案,選取管道,然後按一下「Open」。
根據預設,「管道或元件名稱」會顯示管道定義中指定的名稱。您可以選擇指定其他管道名稱。
指定執行名稱,以便唯一識別管道執行作業。
從 Cloud Storage 匯入:如要從 Cloud Storage 匯入管道定義檔案,請按一下「從 Cloud Storage 匯入」,然後輸入下列詳細資料:
按一下「Browse」,前往包含管道定義物件的 Cloud Storage 值區,選取檔案,然後按一下「Select」。
指定 Pipeline 或元件名稱。
指定執行名稱,以便唯一識別管道執行作業。
選用步驟:如要安排管道定期執行作業,請指定執行時程,如下所示:
選取「週期性」。
在「開始時間」下方,指定排程生效的時間。
如要安排在建立排程後立即執行,請選取「立即」。
如要安排在特定日期和時間執行第一次放送,請選取「開啟」。
在「Frequency」欄位中,使用以 unix-cron 為基礎的 cron 排程運算式,指定排程和執行管道執行作業的頻率。
在「結束時間」下方,指定排程結束的時間。
如要表示排程會無限期建立管道執行作業,請選取「Never」。
如要指出排程會在特定日期和時間結束,請選取「於」,然後指定排程的結束日期和時間。
選用步驟:如要指定管道執行作業使用自訂服務帳戶、客戶管理的加密金鑰 (CMEK) 或對等 VPC 網路,請按一下「Advanced options」(進階選項),然後按照下列操作說明操作:
如要指定服務帳戶,請從「Service account」下拉式清單中選取服務帳戶。
如果您未指定服務帳戶,Vertex AI Pipelines 會使用預設的 Compute Engine 服務帳戶執行管道。
如要使用 CMEK,請選取「使用客戶自行管理的加密金鑰」。系統會顯示「Select a customer-managed key」(選取客戶管理的金鑰) 下拉式選單。在「Select a customer-managed key」(選取客戶管理的金鑰) 下拉式清單中,選取要使用的金鑰。
如要在這個管道執行作業中使用對等互連虛擬私有雲網路,請在「對等互連虛擬私有雲網路」方塊中輸入虛擬私有雲網路名稱。
按一下「繼續」。
在「執行階段設定」部分中,設定管道執行作業,如下所示:
在「Cloud storage location」(Cloud Storage 位置) 下方,按一下「Browse」(瀏覽) 選取用於儲存管道輸出構件資料的 Cloud Storage 值區,然後按一下「Select」(選取)。
選用:如要設定管道執行作業的失敗政策和快取,請按一下「進階選項」,然後按照下列指示操作:
在「失敗政策」下方,指定整個管道的失敗政策。進一步瞭解管道失敗政策。
如要設定管道,讓其在某項工作失敗後繼續安排工作,請選取「Run all steps to completion」。系統預設會選取這個選項。
如要將管道設為在任一工作失敗後失敗,請選取「只要一個步驟未成功,這項執行作業即宣告失敗」。
在「快取設定」下方,指定整個管道的快取設定。
如要在管道中為任務使用任務層級快取設定,請選取「不要覆寫任務層級快取設定」。
如要為管道中的所有工作啟用快取功能,並覆寫任何工作層級快取設定,請選取「啟用所有步驟的快取讀取功能 (最快)」。
如要關閉管道中所有工作的快取功能,並覆寫任何工作層級快取設定,請選取「停用所有步驟的快取讀取功能 (最快)」。
選用:如果管道有參數,請在「管道參數」下方指定管道執行參數。
如要建立管道執行作業,請按一下「提交」。
Python 適用的 Vertex AI SDK
請按照下列操作說明,使用 Python 適用的 Vertex AI SDK 執行機器學習管道。您必須先設定驗證,才能執行下列程式碼範例。
設定驗證方法
如要設定驗證方法,您必須建立服務帳戶金鑰,並為該服務帳戶金鑰的路徑設定環境變數。
-
建立服務帳戶:
-
前往 Google Cloud 控制台的「Create service account」(建立服務帳戶) 頁面。
- 在 [Service account name] (服務帳戶名稱) 欄位中輸入一個名稱。
- 選用:在「服務帳戶說明」欄位中輸入說明。
- 按一下 [建立]。
- 按一下「請選擇角色」欄位。在「所有角色」下方,依序選取「Vertex AI」 >「Vertex AI 使用者」。
-
按一下「Done」建立服務帳戶。
請勿關閉瀏覽器視窗。您將在下一個步驟中使用此項目。
-
-
建立服務帳戶金鑰以用於驗證程序:
- 在 Google Cloud 控制台中,按一下您建立的服務帳戶電子郵件地址。
- 點選「金鑰」。
- 依序點選「新增金鑰」和「建立新的金鑰」。
- 按一下「建立」,JSON 金鑰檔案會下載至您的電腦。
- 按一下 [關閉]。
- 將您用來執行管道的服務帳戶存取權,授予新的服務帳戶。
- 按一下 即可返回服務帳戶清單。
按一下用來執行管道的服務帳戶名稱。系統隨即會顯示「服務帳戶詳細資料」頁面。
如果您按照指南中的操作說明設定 Vertex AI Pipelines 專案,這就是您在「設定具備精細權限的服務帳戶」一節中建立的服務帳戶。否則,Vertex AI 會使用 Compute Engine 預設服務帳戶執行管道。Compute Engine 預設服務帳戶的名稱如下:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
- 按一下「Permissions」(權限) 分頁標籤。
- 按一下「Grant access」(授予存取權)。「Add principals」面板隨即會顯示。
- 在「新增主體」方塊中,輸入您在先前步驟中建立的服務帳戶電子郵件地址。
- 在「角色」下拉式選單中,依序選取「服務帳戶」 >「服務帳戶使用者」。
- 點選「儲存」。
-
將環境變數 GOOGLE_APPLICATION_CREDENTIALS 設為包含服務帳戶金鑰的 JSON 檔案路徑。這項變數僅適用於您目前的殼層工作階段,因此如果您開啟了新的工作階段,就必須重新設定變數。
範例:Linux 或 macOS
將 [PATH] 替換為包含服務帳戶金鑰的 JSON 檔案路徑。
export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
例如:
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"
範例:Windows
將 [PATH] 替換為包含服務帳戶金鑰的 JSON 檔案路徑,並將 [FILE_NAME] 替換為檔案名稱。
使用 PowerShell:
$env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"
例如:
$env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"
使用命令提示字元:
set GOOGLE_APPLICATION_CREDENTIALS=[PATH]
執行管道
如要執行 Vertex AI PipelineJob
,您必須建立 PipelineJob
物件,然後叫用 submit
方法。
KFP 支援的特殊輸入類型
建立管道執行作業時,您也可以將 KFP SDK 支援的下列預留位置做為輸入內容傳遞:
{{$.pipeline_job_name_placeholder}}
{{$.pipeline_job_resource_name_placeholder}}
{{$.pipeline_job_id_placeholder}}
{{$.pipeline_task_name_placeholder}}
{{$.pipeline_task_id_placeholder}}
{{$.pipeline_job_create_time_utc_placeholder}}
{{$.pipeline_root_placeholder}}
詳情請參閱 Kubeflow Pipelines v2 說明文件中的「特殊輸入類型」。
from google.cloud import aiplatform
job = aiplatform.PipelineJob(display_name = DISPLAY_NAME,
template_path = COMPILED_PIPELINE_PATH,
job_id = JOB_ID,
pipeline_root = PIPELINE_ROOT_PATH,
parameter_values = PIPELINE_PARAMETERS,
enable_caching = ENABLE_CACHING,
encryption_spec_key_name = CMEK,
labels = LABELS,
credentials = CREDENTIALS,
project = PROJECT_ID,
location = LOCATION,
failure_policy = FAILURE_POLICY)
job.submit(service_account=SERVICE_ACCOUNT,
network=NETWORK)
更改下列內容:
- DISPLAY_NAME:管道的名稱,會顯示在 Google Cloud 主控台中。
COMPILED_PIPELINE_PATH:已編譯管道 YAML 檔案的路徑。可以是本機路徑或 Cloud Storage URI。
選用:如要指定已編譯管道的特定版本,請在下列任一格式中加入版本標記:
COMPILED_PIPELINE_PATH:TAG
,其中 TAG 是版本標記。COMPILED_PIPELINE_PATH@SHA256_TAG
,其中 SHA256_TAG 是管道版本的sha256
雜湊值。
JOB_ID:(選用) 此管道執行作業的專屬 ID。如果未指定工作 ID,Vertex AI Pipelines 會使用管道名稱和管道開始執行的時間戳記,為您建立工作 ID。
PIPELINE_ROOT_PATH:(選用) 如要覆寫管道定義中指定的管道根路徑,請指定管道工作可存取的路徑,例如 Cloud Storage 值區 URI。
PIPELINE_PARAMETERS:(選用) 要傳遞至本次執行作業的管道參數。舉例來說,您可以建立
dict()
,其中參數名稱為字典索引鍵,參數值則為字典值。ENABLE_CACHING:(選用) 指定這個管道執行作業是否使用執行快取。執行快取功能可略過管道工作,因為管道工作會針對目前的輸入組合產生已知的輸出內容,藉此降低成本。如果未指定啟用快取引數,則會在這個管道執行作業中使用執行快取。進一步瞭解執行快取。
CMEK:(選用) 您要用於此管道執行作業的客戶管理加密金鑰名稱。
LABELS:(選用) 使用者定義的標籤,用於整理這個
PipelineJob
。如要進一步瞭解資源標籤,請參閱 Resource Manager 說明文件中的「建立及管理標籤」一文。Vertex AI Pipelines 會自動將下列標籤附加至管道執行作業:
vertex-ai-pipelines-run-billing-id: pipeline_run_id
其中
pipeline_run_id
是管道執行作業的唯一 ID。這個標籤會連結帳單報表中,由執行管道產生的 Google Cloud 資源用量。
CREDENTIALS:(選用) 用於建立此
PipelineJob
的自訂憑證。覆寫aiplatform.init
中設定的憑證。PROJECT_ID:(選用) 您要執行管道的 Google Cloud 專案。如果您未設定這個參數,系統會使用
aiplatform.init
中設定的專案。LOCATION:(選用) 您要執行管道的區域。如要進一步瞭解 Vertex AI Pipelines 可用地區,請參閱 Vertex AI 位置指南。如果您未設定這個參數,系統會使用
aiplatform.init
中設定的預設位置。FAILURE_POLICY:(選用) 指定整個管道的失敗政策。可用的設定如下:
如要設定管道在任一工作失敗後失敗,請輸入
fast
。如要設定管道在某項工作失敗後繼續排程工作,請輸入
slow
。
如果您未設定這個參數,系統會預設將失敗政策設定設為
slow
。進一步瞭解管道失敗政策。SERVICE_ACCOUNT:(選用) 這個管道執行作業要使用的服務帳戶名稱。如果您未指定服務帳戶,Vertex AI Pipelines 會使用預設的 Compute Engine 服務帳戶執行管道。
NETWORK:(選用):這個管道執行作業要使用的虛擬私有雲對等互連網路名稱。