📔

[Vertex AI Workbench]マネージド環境とユーザー管理環境へのdocker imageの取り込みの違い

2022/07/28に公開

furuhonです。

Vetex AI WorkbenchのJupyter ノートブック(jupyter Lab)に対して、開発環境を統一したいので、カスタムコンテナ(docker container image)の利用を検討しています。

その際に、マネージドノートブック環境と、ユーザー管理のノートブック環境では、
カスタムコンテナの扱いが異なることに気づいたので、自分なりにまとめてみました。

workbenchの環境の違い カスタムコンテナの扱い
マネージド環境 カスタムコンテナをカーネルとして追加してインスタンスを作成する。
ユーザー管理 カスタムコンテナをベースに指定してインスタンスを作成する。

公式ドキュメントでは、以下のとおり区別されています。

https://cloud.google.com/vertex-ai/docs/workbench/user-managed/custom-container?hl=ja

https://cloud.google.com/vertex-ai/docs/workbench/user-managed/custom-container?hl=ja

マネージド環境では、カスタムコンテナがカーネルの1つとして追加されたNotebookが作成される。

マネージド環境において、Container Registryに登録しておいたカスタムコンテナを指定してノートブックインスタンスを作成した場合、実行できるカーネルの1つとして、カスタムコンテナの環境が追加されます。

※ カスタムコンテナの追加方法は、過去の記事を参照ください。
https://zenn.dev/furuhon/articles/5c065009a088b8

ユーザー管理環境では、カスタムコンテナをベースとしたNotebookが作成される。

ユーザー管理環境で新規にノートブックを作成するときは、Python3(GPUなし)やTensorFlowなどの選択肢から環境を指定することができます。その際、Custom containerを指定することで、自分で作成してContainer Registryに登録しておいたdocker image containerを利用することができます。

docker image containerを指定した場合、マネージド環境ではカーネルが追加されましたが、ユーザー管理環境では指定したコンテナイメージがベースのカーネルになるようです。

デフォルトのPython3を環境として指定した場合は、以下のようにPython3とだけ表示されます。

自作のコンテナを指定した場合は、Python3の下に(ipykernel)と表示されます。

MeCabが利用できるように作成した自作のコンテナを指定して作成したノートブックで、
mecabが無事利用できることを確認しました。

まとめ

  • マネージド環境、ユーザー管理環境のどちらでもコンテナを指定して開発環境を統一できる。
  • マネージド環境ではカスタムコンテナがカーネルとして追加されたNotebookが作成される。
  • ユーザー管理環境ではカスタムコンテナをベースのカーネルとしたNotebookが作成される。

疑問点

カスタムコンテナを最初に指定すると、以降コンテナを変更することはできない?
Container Registry自体を上書きすれば変更できるのだろうか?

Discussion