Créer une instance de notebooks gérés avec un conteneur personnalisé

Cette page explique comment ajouter un conteneur personnalisé à une instance de notebook gérés Vertex AI Workbench en tant que noyau sur lequel vous pouvez exécuter vos fichiers de notebook.

Présentation

Vous pouvez ajouter un conteneur personnalisé à utiliser avec votre instance de notebooks gérés. Le conteneur personnalisé est ensuite disponible en tant que noyau local sur lequel vous pouvez exécuter votre fichier notebook.

Exigences relatives aux conteneurs personnalisés

Les notebooks gérés Vertex AI Workbench sont compatibles avec toutes les images de conteneurs Deep Learning Containers actuelles.

Pour créer vos propres images de conteneurs personnalisées, vous pouvez modifier l'une des images de conteneurs Deep Learning Containers afin de créer une image de conteneur dérivé.

Pour créer une image de conteneur personnalisée en partant de zéro, assurez-vous qu'elle répond aux exigences suivantes:

  • Utilisez une image de conteneur Docker avec au moins une spécification de noyau Jupyter valide. Cette spécification de noyau exposée permet aux notebooks gérés Vertex AI Workbench de charger l'image de conteneur en tant que noyau. Si votre image de conteneur inclut une installation de JupyterLab ou de Notebook Jupyter, l'installation inclura la spécification noyau par défaut. Si l'image de conteneur ne contient pas la spécification de noyau, vous pouvez installer la spécification de noyau directement.

  • L'image de conteneur Docker doit être compatible avec sleep infinity.

  • Pour utiliser votre conteneur personnalisé avec l'exécuteur de notebooks gérés, assurez-vous que votre conteneur personnalisé possède l'extension nbexecutor.

L'exemple suivant de texte Dockerfile crée de toutes pièces une image Docker personnalisée basée sur une image Ubuntu, en incluant la dernière version de 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

Remplacez VERSION_NUMBER par la version de Python que vous utilisez.

Comment un conteneur personnalisé devient un noyau dans les notebooks gérés

Pour chaque image de conteneur personnalisé fournie, votre instance de notebooks gérés identifie les spécifications du noyau Jupyter disponibles sur l'image de conteneur au démarrage de l'instance. Les spécifications du noyau sont affichées en tant que noyau local dans l'interface JupyterLab. Lorsque les spécifications du noyau sont sélectionnées, le gestionnaire de noyau de notebooks gérés exécute le conteneur personnalisé en tant que noyau et démarre une session Jupyter sur ce noyau.

Mise à jour des kernels de conteneurs personnalisés

Vertex AI Workbench extrait la dernière image de conteneur pour votre kernel :

  • lors de la création d'une instance ;

  • lors de la mise à niveau d'une instance ;

  • lors du démarrage d'une instance.

Le kernel d'un conteneur personnalisé ne persiste pas lorsque votre instance est arrêtée. Par conséquent, chaque fois que votre instance est démarrée, Vertex AI Workbench extrait la dernière version de l'image de conteneur.

Si votre instance est en cours d'exécution lors de la publication d'une nouvelle version de conteneur, le kernel de votre instance n'est pas mis à jour tant que vous n'avez pas arrêté et démarré votre instance.

Disponibilité des images de conteneurs personnalisés

Les images de conteneurs Deep learning Containers sont disponibles pour tous les utilisateurs. Lorsque vous utilisez une image de conteneur Deep Learning Containers, vous devez attribuer des rôles spécifiques au compte de service de votre instance afin que celle-ci puisse charger l'image de conteneur Deep Learning Containers en tant que noyau. Pour en savoir plus sur les autorisations requises et sur la façon de les accorder, consultez la section Autorisations.

Si vous souhaitez utiliser votre propre image de conteneur personnalisé, elle doit se trouver dans Artifact Registry et l'image du conteneur doit être accessible au public.

Avant de commencer

  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

Ajouter un conteneur personnalisé lors de la création d'une instance

Pour ajouter un conteneur personnalisé à une instance de notebooks gérés, l'image de conteneur personnalisé doit être spécifiée lors de la création de l'instance.

Pour ajouter un conteneur personnalisé lorsque vous créez une instance de notebooks gérés, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Notebooks gérés.

    Accéder à la page "Notebooks gérés"

  2. Cliquez sur  Créer.

  3. Dans le champ Nom, saisissez le nom du cluster.

  4. Cliquez sur la liste Région et sélectionnez une région pour votre instance.

  5. Dans la section Environnement, sélectionnez Fournir des images Docker personnalisées.

  6. Ajoutez une image de conteneur Docker de l'une des manières suivantes:

    • Saisissez un chemin d'accès d'image de conteneur Docker. Par exemple, pour utiliser une image de conteneur TensorFlow 2.12 avec des accélérateurs à partir de Conteneurs de deep learning, saisissez us-docker.pkg.dev/deeplearning-platform-release/gcr.io/tf-cpu.2-12.py310.
    • Cliquez sur Sélectionner pour ajouter une image de conteneur Docker à partir d'Artifact Registry. Dans l'onglet Artifact Registry dans lequel votre image de conteneur est stockée, remplacez le projet par le projet qui inclut votre image de conteneur, puis sélectionnez votre image de conteneur.
  7. Renseignez les autres champs de la boîte de dialogue Créer une instance en fonction de vos besoins.

  8. Cliquez sur Créer.

  9. Vertex AI Workbench démarre automatiquement l'instance. Lorsque l'instance est prête à l'emploi, Vertex AI Workbench active un lien Ouvrir JupyterLab.

Accorder des autorisations aux images de conteneurs Deep Learning Containers

Si vous n'utilisez pas d'image de conteneur Deep Learning Containers, ignorez cette section.

Pour vous assurer que le compte de service de votre instance dispose des autorisations nécessaires pour charger une image de conteneur de deep learning à partir d'Artifact Registry, demandez à votre administrateur d'accorder au compte de service de votre instance les rôles IAM suivants sur votre instance :

Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Votre administrateur peut également attribuer au compte de service de votre instance les autorisations requises à l'aide de rôles personnalisés ou d'autres rôles prédéfinis.

Configurer un fichier notebook à exécuter dans votre conteneur personnalisé

Pour ouvrir JupyterLab, créer un fichier notebook et le configurer pour qu'il s'exécute sur le noyau de votre conteneur personnalisé, procédez comme suit :

  1. À côté du nom de votre instance de notebooks gérés, cliquez sur Ouvrir JupyterLab.

  2. Dans la boîte de dialogue Authentifier votre notebook géré, cliquez sur le bouton pour obtenir un code d'authentification.

  3. Choisissez un compte, puis cliquez sur Autoriser. Copiez le code d'authentification.

  4. Dans la boîte de dialogue Authentifier votre notebook géré, collez le code d'authentification, puis cliquez sur Authentifier.

    Votre instance de notebooks gérés ouvre alors JupyterLab.

  5. Sélectionnez Fichier > Nouveau > Notebook.

  6. Dans la boîte de dialogue Sélectionner le noyau, sélectionnez le noyau de l'image de conteneur personnalisé que vous souhaitez utiliser, puis cliquez sur Sélectionner. Les images de conteneurs plus volumineuses peuvent prendre un certain temps pour apparaître en tant que noyau. Si le noyau souhaité n'est pas encore présent, réessayez dans quelques minutes. Vous pouvez modifier le noyau chaque fois que vous souhaitez exécuter votre fichier notebook sur un autre noyau.

    Le nouveau fichier notebook s'ouvre.

Étape suivante