使用自訂容器建立代管型筆記本執行個體

本頁說明如何將自訂容器新增至 Vertex AI Workbench 代管型筆記本執行個體,做為可用於執行筆記本檔案的核心。

總覽

您可以新增自訂容器,以便與受管理的 Notebooks 執行個體搭配使用。自訂容器隨即可做為本機核心使用,您可以在該核心上執行筆記本檔案。

自訂容器需求

Vertex AI Workbench 代管型筆記本支援目前的任何深度學習容器容器映像檔

如要自行建立自訂容器映像檔,您可以修改其中一個深度學習容器容器映像檔,建立衍生容器映像檔

如要從頭開始建立自訂容器映像檔,請確認容器映像檔符合下列規定:

  • 使用至少含有一個有效 Jupyter 核心設定的 Docker 容器映像檔。這個公開的 kernelspec 可讓 Vertex AI Workbench 代管型筆記本將容器映像檔載入為核心。如果容器映像檔包含 JupyterLabJupyter Notebook 的安裝程序,則安裝程序預設會包含 kernelspec。如果容器映像檔沒有 kernelspec,您可以直接安裝 kernelspec

  • Docker 容器映像檔必須支援 sleep infinity

  • 如要將自訂容器與受管理的 Notebooks 執行器搭配使用,請確認自訂容器具有 nbexecutor 擴充功能。

下列 Dockerfile 文字範例會從頭開始建構自訂 Docker 映像檔,該映像檔以 Ubuntu 映像檔為基礎,並包含最新的 Python 版本。

FROM --platform=linux/amd64 ubuntu:22.04

RUN apt-get -y update
RUN apt-get install -y --no-install-recommends \
python3-pip \
pipx \
git \
make \
jq

RUN pip install \
argcomplete>=1.9.4 \
poetry==1.1.14 \
jupyterlab==3.3.0

# Create a link that points to the right python bin directory
RUN ln -s /usr/bin/pythonVERSION_NUMBER /usr/bin/python

VERSION_NUMBER 替換為您使用的 Python 版本。

自訂容器如何在受管理的筆記本中成為核心

對於提供的每個自訂容器映像檔,您的代管型筆記本執行個體會在執行個體啟動時,找出容器映像檔中可用的 Jupyter 核心規格。在 JupyterLab 介面中,kernelspec 會顯示為本機核心。選取核心規格後,受管理的筆記本核心管理員會以核心的形式執行自訂容器,並在該核心上啟動 Jupyter 工作階段。

如何更新自訂容器核心

Vertex AI Workbench 會為核心提取最新的容器映像檔:

  • 建立執行個體時。

  • 升級執行個體時。

  • 啟動執行個體時。

自訂容器核心在執行個體停止時不會保留,因此每次啟動執行個體時,Vertex AI Workbench 都會擷取最新版的容器映像檔。

如果容器的新版本在執行中,您必須停止並重新啟動執行個體,才能更新執行個體的核心。

自訂容器映像檔的供應情形

所有使用者都可以使用深度學習容器容器映像檔。使用深度學習容器容器映像檔時,您必須將特定角色授予執行個體的服務帳戶,讓執行個體能夠將深度學習容器容器映像檔載入為核心。如要進一步瞭解所需權限和授予方式,請參閱「權限」一節。

如果您想使用自訂容器映像檔,該映像檔必須位於 Artifact Registry 中,且必須是公開的。

事前準備

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks and Artifact Registry APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks and Artifact Registry APIs.

    Enable the APIs

  8. 在建立執行個體時新增自訂容器

    如要將自訂容器新增至受管理的筆記本執行個體,必須在建立執行個體時指定自訂容器映像檔。

    如要在建立受管理的 Notebooks 執行個體時新增自訂容器,請完成下列步驟。

    1. 在 Google Cloud 控制台中,前往「受管理的筆記本」頁面。

      前往「受管理的筆記本」

    2. 按一下「建立新項目」

    3. 在「Name」欄位中,輸入執行個體的名稱。

    4. 按一下「Region」清單,然後選取執行個體所在的區域。

    5. 在「環境」部分中,選取「提供自訂 Docker 映像檔」

    6. 請透過下列其中一種方式新增 Docker 容器映像檔:

      • 輸入 Docker 容器映像檔路徑。舉例來說,如要使用 TensorFlow 2.12 容器映像檔搭配 深度學習容器的加速器,請輸入 us-docker.pkg.dev/deeplearning-platform-release/gcr.io/tf-cpu.2-12.py310
      • 按一下「選取」,即可從 Artifact Registry 新增 Docker 容器映像檔。接著,在儲存容器映像檔的 Artifact Registry 分頁中,將專案變更為包含容器映像檔的專案,然後選取容器映像檔。
    7. 根據需求完成「建立執行個體」對話方塊的其餘部分。

    8. 按一下 [建立]。

    9. Vertex AI Workbench 會自動啟動執行個體。執行個體可供使用時,Vertex AI Workbench 會啟用「Open JupyterLab」連結。

    授予深度學習容器容器映像檔的權限

    如果您未使用深度學習容器容器映像檔,請略過本節。

    為確保執行個體的服務帳戶具備從 Artifact Registry 載入深度學習容器容器映像檔的必要權限,請要求管理員授予執行個體的服務帳戶以下 IAM 角色:

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

    管理員也可能會透過自訂角色或其他預先定義的角色,為執行個體的服務帳戶授予必要權限。

    設定筆記本檔案,以便在自訂容器中執行

    如要開啟 JupyterLab、建立新的 Notebook 檔案,並將其設為在自訂容器的核心上執行,請完成下列步驟。

    1. 按一下代管型筆記本執行個體名稱旁的「Open JupyterLab」(開啟 JupyterLab)

    2. 在「Authenticate your managed notebook」(驗證代管型筆記本) 對話方塊中,按一下按鈕來取得驗證碼。

    3. 選取所需的帳戶,然後按一下「Allow」(允許)。複製驗證碼。

    4. 在「Authenticate your managed notebook」(驗證代管型筆記本) 對話方塊中貼上驗證碼,然後按一下「Authenticate」(驗證)

      代管型筆記本執行個體中會開啟 JupyterLab。

    5. 依序選取「File」>「New」>「Notebook」

    6. 在「Select kernel」對話方塊中,選取要使用的自訂容器映像檔的核心,然後按一下「Select」。較大的容器映像檔可能需要一段時間才會顯示為核心。如果您要的核心尚未出現,請過幾分鐘後再試一次。如要將 Notebook 檔案執行在其他核心上,您可以變更核心

      新的筆記本檔案會隨即開啟。

    後續步驟