カスタム コンテナを使用してマネージド ノートブック インスタンスを作成する

このページでは、ノートブック ファイルを実行するカーネルとして、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 に配置し、一般公開する必要があります。

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Notebooks and Artifact Registry API を有効にします。

    API を有効にする

  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Google Cloud プロジェクトで課金が有効になっていることを確認します

  7. Notebooks and Artifact Registry API を有効にします。

    API を有効にする

インスタンスの作成時にカスタム コンテナを追加する

マネージド ノートブック インスタンスにカスタム コンテナを追加するには、インスタンスの作成時にカスタム コンテナ イメージを指定する必要があります。

マネージド ノートブック インスタンスの作成時にカスタム コンテナを追加するには、次の手順を行います。

  1. Google Cloud コンソールで、[マネージド ノートブック] ページに移動します。

    [マネージド ノートブック] に移動

  2. [新規作成] をクリックします。

  3. [名前] フィールドに、インスタンスの名前を入力します。

  4. [リージョン] リストをクリックして、インスタンスのリージョンを選択します。

  5. [環境] セクションで、[カスタム Docker イメージを指定する] を選択します。

  6. 次のいずれかの方法で 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] タブで、コンテナ イメージを含むプロジェクトに変更して、コンテナ イメージを選択します。
  7. 必要に応じて、[インスタンスの作成] ダイアログの残りの手順を実行します。

  8. [作成] をクリックします。

  9. Vertex AI Workbench がインスタンスを自動的に起動します。インスタンスを使用する準備が整うと、Vertex AI Workbench で [JupyterLab を開く] リンクが有効になります。

Deep Learning Containers コンテナ イメージに権限を付与する

Deep Learning Containers コンテナ イメージを使用していない場合は、このセクションをスキップしてください。

インスタンスのサービス アカウントに Artifact Registry から Deep Learning Containers コンテナ イメージを読み込むために必要な権限があることを確認するには、インスタンスに対する次の IAM ロールをインスタンスのサービス アカウントに付与するよう管理者に依頼してください。

ロールの付与の詳細については、アクセスの管理をご覧ください。

管理者は、インスタンスのサービス アカウントに、カスタムロールや他の事前定義ロールを使用して必要な権限を付与することもできます。

カスタム コンテナで実行するノートブック ファイルを設定する

JupyterLab を開いて新しいノートブック ファイルを作成し、カスタム コンテナのカーネルで実行するには、次の手順を行います。

  1. マネージド ノートブック インスタンス名の横にある [JupyterLab を開く] をクリックします。

  2. [Authenticate your managed notebook] ダイアログで、ボタンをクリックして認証コードを取得します。

  3. アカウントを選択して [許可] をクリックします。認証コードをコピーします。

  4. [Authenticate your managed notebook] ダイアログに認証コードを貼り付け、[認証] をクリックします。

    マネージド ノートブック インスタンスで JupyterLab が開きます。

  5. [File] > [New] > [Notebook] の順に選択します。

  6. [Select kernel] ダイアログで、使用するカスタム コンテナ イメージのカーネルを選択し、[Select] をクリックします。サイズの大きいコンテナ イメージの場合、カーネルとして表示されるまでに時間がかかることがあります。必要なカーネルが表示されない場合は、数分後にもう一度お試しください。別のカーネルでノートブック ファイルを実行する場合は、いつでもカーネルを変更できます。

    新しいノートブック ファイルが開きます。

次のステップ