使用執行器執行筆記本檔案
本頁說明如何在 Vertex AI Workbench 代管型筆記本執行個體中使用執行緒,以一次性執行和排程執行筆記本檔案。
總覽
執行緒可讓您提交筆記本 (ipynb) 檔案,以便在 Vertex AI 自訂訓練 中執行。您可以為每次執行 Notebook 檔案設定參數值。您也可以依照週期性排程執行筆記本檔案。執行作業完成後,您可以查看執行結果並與他人分享。
將筆記本檔案提交至 Vertex AI 自訂訓練時,Vertex AI 會建立新的自訂訓練工作,按照訓練工作生命週期執行筆記本檔案。
執行緒執行的筆記本程式碼需求
編寫要在執行緒中執行的筆記本程式碼時,請注意,程式碼會在租用戶專屬專案中執行,而非在受管理的筆記本執行個案專案中執行。本節將說明這會如何影響在執行緒中執行的程式碼。
確保執行者可安裝套件
如果您的筆記本會依賴套件安裝作業,而這些作業並未包含在您使用的受管理筆記本核心中,請透過下列任一方式,確保執行緒中的筆記本程式碼可使用這些套件:
使用已安裝套件的自訂容器,然後在該自訂容器上執行 Notebook。請參閱使用執行緒搭配自訂容器的相關規定。
在筆記本檔案的程式碼中安裝套件。每次執行筆記本檔案時,系統都會安裝套件,但這可確保套件可在執行筆記本時選取的容器中使用。
使用明確的專案選取方式
當您透過執行緒執行的程式碼存取資源時,執行緒可能無法連線至正確的Google Cloud 專案。如果發生權限錯誤,可能是連線至錯誤的專案。
發生這個問題的原因是執行緒未直接在受管理的 Notebook 執行個體的Google Cloud 專案中執行程式碼。執行程序會在 Google 管理的租用戶專案中,執行 Vertex AI 自訂訓練中的程式碼。因此,請勿嘗試從 Notebook 程式碼中的環境推論專案 ID,請明確指定專案 ID。
如果您不想在程式碼中硬式編碼專案 ID,可以參照 CLOUD_ML_PROJECT_ID
環境變數。Vertex AI 會在每個自訂訓練容器中設定這個環境變數,以便包含您啟動自訂訓練的專案專案編號。許多 Google Cloud 工具都能在接受專案 ID 時接受專案編號。
舉例來說,如果您想使用 Google BigQuery 的 Python 用戶端存取同一個專案中的 BigQuery 資料表,請勿在筆記本程式碼中推斷專案:
隱含專案選取功能
from google.cloud import bigquery
client = bigquery.Client()
請改用明確選取專案的程式碼:
明確的專案選取方式
import os
from google.cloud import bigquery
project_number = os.environ["CLOUD_ML_PROJECT_ID"]
client = bigquery.Client(project=project_number)
使用服務帳戶驗證存取權
根據預設,受管理的 Notebook 執行個體可存取同一個專案中的資源。因此,當您手動執行筆記本檔案的程式碼時,這些資源不需要額外驗證。不過,由於執行者是在個別租用戶專案中執行,因此不會具有相同的預設存取權。
此外,執行緒無法使用使用者憑證驗證資源存取權,例如 gcloud auth login
指令。
如要解決這些問題,請在筆記檔案的程式碼中,透過服務帳戶驗證資源存取權。
接著,在建立執行作業或排程時,指定服務帳戶。
舉例來說,在建立執行作業時,請完成下列步驟:
在「Submit notebooks to Executor」對話方塊中,展開「Advanced options」。
在「Identity and API access」(身分及 API 存取權) 部分,取消勾選「Use Vertex AI Training's default service account」(使用 Vertex AI Training 的預設服務帳戶) 旁的勾號,然後輸入要使用的特定服務帳戶。
請參閱建立執行作業的完整步驟。
使用自訂容器時的必要條件
您可以使用執行緒在自訂容器上執行筆記本程式碼。自訂容器必須包含 nbexecutor
擴充功能,才能讓執行緒將筆記本程式碼當作 Vertex AI 自訂訓練工作執行。為確保自訂容器具有 nbexecutor
副檔名,您可以修改其中一個深度學習容器容器映像檔,建立衍生容器映像檔。深度學習容器映像檔包含 nbexecutor
副檔名。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks and Vertex AI APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Notebooks and Vertex AI APIs.
- 如果您尚未建立代管型筆記本執行個體,請先完成這項作業。
-
筆記本檢視器 (
roles/notebooks.viewer
) -
Vertex AI 使用者 (
roles/aiplatform.user
) -
Storage 管理員 (
roles/storage.admin
) 在代管型筆記本執行個體的 JupyterLab 使用者介面中,開啟要執行的筆記本檔案。
按一下
「Execute」按鈕。在「Submit notebooks to Executor」對話方塊的「Execution name」欄位中,輸入執行作業的名稱。
選取「Machine type」(機器類型)和「Accelerator type」(加速器類型)。
選取環境。
在「Type」欄位中,選取「One-time execution」或「Schedule-based recurring executions」,然後完成排定執行作業的對話方塊。
在「進階選項」中,選取要執行筆記本的「區域」。
在「Cloud Storage bucket」欄位中,選取可用的 Cloud Storage bucket,或輸入新 bucket 的名稱,然後按一下「Create and select」。執行程式會將筆記本輸出內容儲存在這個 Cloud Storage 值區中。
選用步驟:在「Notebook 參數化」部分的「輸入參數」文字方塊中,新增以半形逗號分隔的 Notebook 參數,例如
optimizer="SGD",learning_rate=0.01
。進一步瞭解如何使用 Notebook 參數。
選用:在「Identity and API access」部分,選取「Use Vertex AI Training's default service account」或取消勾選核取方塊,然後輸入要使用的特定服務帳戶。
選用步驟:在「Networking」部分,指定虛擬私有雲網路。使用 VPC 網路執行作業時,必須使用私人服務存取權連線。
按一下「提交」。
一次性執行作業會立即開始。系統會依照您設定的時間表自動執行排定的執行作業。
在 Google Cloud 控制台中,前往「Vertex AI Workbench」頁面,然後按一下「Executions」分頁。
選取包含結果的「區域」。
在要查看的執行作業旁邊,按一下「查看結果」。
系統會在新瀏覽器分頁中開啟結果。
在 JupyterLab 的導覽選單中,按一下
「Notebook Executor」按鈕。按一下「執行」分頁標籤。
在要查看的執行作業下方,按一下「查看結果」。
系統會在新瀏覽器分頁中開啟結果。
在 Google Cloud 控制台中,前往「Vertex AI Workbench」頁面,然後按一下「Executions」分頁。
選取包含執行作業的「區域」。
在要分享的執行作業旁邊,按一下
「分享」按鈕。請按照對話方塊中的指示,將 Cloud Storage 值區的存取權授予使用者,以便執行筆記本。
在代管型筆記本執行個體的 JupyterLab 使用者介面中,按一下導覽選單中的
「Notebook Executor」按鈕。按一下「執行」分頁標籤。
在要分享的執行作業旁邊,按一下
選項選單,然後選取「分享執行結果」。請按照對話方塊中的指示,將 Cloud Storage 值區的存取權授予使用者,以便執行筆記本。
在代管型筆記本執行個體的 JupyterLab 使用者介面中,按一下導覽選單中的
「Notebook Executor」按鈕。按一下「執行」分頁標籤。
選取包含已執行筆記本的區域。
在要匯入的執行作業旁,按一下
選項選單,然後選取「匯入已執行的筆記本」。選取要開啟的筆記本核心。
執行程式會在 JupyterLab 中開啟已執行的筆記本檔案,並將此筆記本檔案儲存在 JupyterLab 檔案瀏覽器中,位於名為 imported_notebook_jobs 的資料夾中。
在 Google Cloud 控制台中,前往「Vertex AI Workbench」頁面,然後按一下「時間表」分頁。
選取含有排程的「區域」。
按一下排程名稱,開啟「排程詳細資料」頁面。
按一下執行名稱旁的「View result」,即可開啟已執行的筆記本檔案。執行程式會在新瀏覽器分頁中開啟結果。
在代管型筆記本執行個體的 JupyterLab 使用者介面中,按一下導覽選單中的
「Notebook Executor」按鈕。按一下「時程」分頁標籤。
如要查看最新執行作業,請在要查看的執行作業下方,點選「查看最新執行結果」。執行程式會在新瀏覽器分頁中開啟結果。
如要查看所有執行作業,請按一下排程名稱。執行者會在 Google Cloud 控制台中開啟「排程詳細資料」頁面。
按一下執行名稱旁的「View result」,即可開啟已執行的筆記本檔案。執行程式會在新瀏覽器分頁中開啟結果。
在 Google Cloud 控制台中,前往「Vertex AI Workbench」頁面,然後按一下「時間表」分頁。
選取含有排程的「區域」。
選取要刪除的時間表。
按一下「Delete」(刪除) 圖示
。在代管型筆記本執行個體的 JupyterLab 使用者介面中,按一下導覽選單中的
「Notebook Executor」按鈕。按一下「時程」分頁標籤。
按一下要刪除的時間表名稱。執行者會在 Google Cloud 控制台中開啟「排程詳細資料」頁面。
按一下「Delete」(刪除) 圖示
。瞭解如何執行含有參數的筆記本。
進一步瞭解 Vertex AI 自訂訓練。
必要的角色
為確保您的執行個體服務帳戶具備與 Vertex AI Workbench 執行程序互動的必要權限,請要求管理員將專案的下列 IAM 角色授予您的執行個體服務帳戶:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
管理員也可能會透過自訂角色或其他預先定義的角色,為執行個體的服務帳戶授予必要權限。
開啟 JupyterLab
如要開啟 JupyterLab 並準備要執行的 Notebook 檔案,請完成下列步驟。
可建立執行作業
如要建立可執行 Notebook 檔案的執行作業,請完成下列步驟。這些步驟涵蓋排定執行作業和建立一次性執行作業。
在 Google Cloud 控制台的「Vertex AI Workbench」頁面中,您可以在「Executions」分頁標籤查看已執行完畢的執行作業,也可以在「Schedules」分頁標籤查看排程。
查看、分享及匯入已執行的筆記本檔案
您可以使用代管型筆記本執行個體的 JupyterLab 使用者介面,查看已執行的筆記本輸出內容、與他人分享結果,以及將已執行的筆記本檔案匯入 JupyterLab。
查看筆記本執行結果
您可以在 Google Cloud 主控台或 JupyterLab 使用者介面中查看筆記本執行結果。
主控台
JupyterLab
分享筆記本執行結果
您可以提供 Notebook 執行作業的 Cloud Storage 值區存取權,藉此分享執行結果。提供這項存取權也會授予使用者存取同一個 Cloud Storage 值區中任何其他資源的權限。如要分享執行結果,請完成下列步驟。
主控台
JupyterLab
將已執行的筆記本匯入 JupyterLab
如要將已執行的筆記本匯入 JupyterLab,請完成下列步驟。
查看或刪除時間表
您可以使用 Google Cloud 控制台或受管理筆記本執行個體的 JupyterLab 使用者介面,查看及刪除排程。
查看時間表
查看排程,瞭解排程的頻率設定,或查看筆記本執行結果。
主控台
JupyterLab
刪除時間表
刪除排程不會刪除該排程產生的執行作業。
主控台
JupyterLab
Vertex AI 自訂訓練的工作
由於筆記本執行作業會在 Vertex AI 自訂訓練中執行,因此會在 Vertex AI 中以自訂訓練工作形式公開。您可以在 Google Cloud 控制台的「Vertex AI 訓練」頁面的「自訂工作」分頁中查看這些自訂訓練工作。進一步瞭解如何使用 Vertex AI 自訂訓練工作。