カスタム コンテナを使用してマネージド ノートブック インスタンスを作成する
このページでは、ノートブック ファイルを実行するカーネルとして、Vertex AI Workbench マネージド ノートブック インスタンスにカスタム コンテナを追加する方法について説明します。
概要
マネージド ノートブック インスタンスで使用するカスタム コンテナを追加できます。これにより、ノートブック ファイルを実行できるローカル カーネルとしてカスタム コンテナを使用できるようになります。
カスタム コンテナの要件
Vertex AI Workbench マネージド ノートブックは、現在の Deep Learning Containers コンテナ イメージのいずれかをサポートしています。
独自のカスタム コンテナ イメージを作成するには、Deep Learning Containers コンテナ イメージの 1 つを変更して、派生コンテナ イメージを作成します。
カスタム コンテナ イメージを最初から作成するには、コンテナ イメージが次の要件を満たしていることを確認します。
有効な Jupyter カーネル仕様を 1 つ以上含む Docker コンテナ イメージを使用します。この公開済みの kernelspec により、Vertex AI Workbench マネージド ノートブックは、コンテナ イメージをカーネルとして読み込むことができます。コンテナ イメージに JupyterLab または Jupyter Notebook がインストールされている場合は、デフォルトで kernelspec が含まれています。コンテナ イメージに kernelspec がない場合は、直接 kernelspec をインストールできます。
Docker コンテナ イメージが
sleep infinity
をサポートしている必要があります。マネージド ノートブック エグゼキュータでカスタム コンテナを使用するには、カスタム コンテナに
nbexecutor
拡張機能があることを確認します。
次の Dockerfile テキストの例では、Ubuntu イメージに基づいて、最新の Python バージョンを含むカスタム Docker イメージをゼロからビルドしています。
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 kernelspec を特定します。JupyterLab インターフェースで、kernelspec はローカル カーネルとして表示されます。kernelspec が選択されると、マネージド ノートブック カーネル マネージャーがカスタム コンテナをカーネルとして実行し、そのカーネルで Jupyter セッションを開始します。
カスタム コンテナ カーネルの更新方法
Vertex AI Workbench は、次の場合にカーネル用の最新のコンテナ イメージを pull します。
インスタンスを作成するとき。
インスタンスをアップグレードするとき。
インスタンスを起動するとき。
インスタンスが停止すると、カスタム コンテナ カーネルは保持されないため、インスタンスが起動されるたびに、Vertex AI Workbench は最新バージョンのコンテナ イメージを pull します。
インスタンスの実行中に、コンテナの新しいバージョンがリリースされた場合、インスタンスを停止して起動するまでインスタンスのカーネルは更新されません。
カスタム コンテナ イメージの可用性
Deep Learning Containers コンテナ イメージは、すべてのユーザーが使用できます。Deep Learning Containers コンテナ イメージを使用する場合は、インスタンスが Deep Learning Containers コンテナ イメージをカーネルとして読み込めるよう、インスタンスのサービス アカウントに特定のロールを付与する必要があります。必要な権限と付与方法の詳細については、権限のセクションをご覧ください。
独自のカスタム コンテナ イメージを使用する場合は、Artifact Registry に配置し、一般公開する必要があります。
始める前に
- 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 Artifact Registry 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 Artifact Registry APIs.
インスタンスの作成時にカスタム コンテナを追加する
マネージド ノートブック インスタンスにカスタム コンテナを追加するには、インスタンスの作成時にカスタム コンテナ イメージを指定する必要があります。
マネージド ノートブック インスタンスの作成時にカスタム コンテナを追加するには、次の手順を行います。
Google Cloud コンソールで、[マネージド ノートブック] ページに移動します。
[
新規作成] をクリックします。[名前] フィールドに、インスタンスの名前を入力します。
[リージョン] リストをクリックして、インスタンスのリージョンを選択します。
[環境] セクションで、[カスタム Docker イメージを指定する] を選択します。
次のいずれかの方法で Docker コンテナ イメージを追加します。
- Docker コンテナ イメージのパスを入力します。たとえば、Deep Learning Containers のアクセラレータで TensorFlow 2.12 コンテナ イメージを使用するには、「
us-docker.pkg.dev/deeplearning-platform-release/gcr.io/tf-cpu.2-12.py310
」と入力します。 - [選択] をクリックして、Artifact Registry から Docker コンテナ イメージを追加します。次に、コンテナ イメージが保存されている [Artifact Registry] タブで、コンテナ イメージを含むプロジェクトに変更して、コンテナ イメージを選択します。
- Docker コンテナ イメージのパスを入力します。たとえば、Deep Learning Containers のアクセラレータで TensorFlow 2.12 コンテナ イメージを使用するには、「
必要に応じて、[インスタンスの作成] ダイアログの残りの手順を実行します。
[作成] をクリックします。
Vertex AI Workbench がインスタンスを自動的に起動します。インスタンスを使用する準備が整うと、Vertex AI Workbench で [JupyterLab を開く] リンクが有効になります。
Deep Learning Containers コンテナ イメージに権限を付与する
Deep Learning Containers コンテナ イメージを使用していない場合は、このセクションをスキップしてください。
インスタンスのサービス アカウントに Artifact Registry から Deep Learning Containers コンテナ イメージを読み込むために必要な権限があることを確認するには、インスタンスに対する次の IAM ロールをインスタンスのサービス アカウントに付与するよう管理者に依頼してください。
- Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
) -
Artifact Registry 読み取り(
roles/artifactregistry.reader
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
管理者は、インスタンスのサービス アカウントに、カスタムロールや他の事前定義ロールを使用して必要な権限を付与することもできます。
カスタム コンテナで実行するノートブック ファイルを設定する
JupyterLab を開いて新しいノートブック ファイルを作成し、カスタム コンテナのカーネルで実行するには、次の手順を行います。
マネージド ノートブック インスタンス名の横にある [JupyterLab を開く] をクリックします。
[Authenticate your managed notebook] ダイアログで、ボタンをクリックして認証コードを取得します。
アカウントを選択して [許可] をクリックします。認証コードをコピーします。
[Authenticate your managed notebook] ダイアログに認証コードを貼り付け、[認証] をクリックします。
マネージド ノートブック インスタンスで JupyterLab が開きます。
[File] > [New] > [Notebook] の順に選択します。
[Select kernel] ダイアログで、使用するカスタム コンテナ イメージのカーネルを選択し、[Select] をクリックします。サイズの大きいコンテナ イメージの場合、カーネルとして表示されるまでに時間がかかることがあります。必要なカーネルが表示されない場合は、数分後にもう一度お試しください。別のカーネルでノートブック ファイルを実行する場合は、いつでもカーネルを変更できます。
新しいノートブック ファイルが開きます。