Exécuter des fichiers notebook avec l'exécuteur

Cette page explique comment utiliser l'exécuteur dans une instance de notebooks gérés Vertex AI Workbench pour exécuter des fichiers de notebook en une seule exécution et selon une planification spécifique.

Aperçu

L'exécuteur vous permet d'envoyer un fichier de notebook (ipynb) pour l'exécuter sur l'entraînement personnalisé Vertex AI. Vous pouvez définir des valeurs de paramètres à chaque exécution d'un fichier notebook. Vous pouvez également exécuter un fichier notebook de manière récurrente. Une fois l'exécution terminée, vous pouvez afficher les résultats et les partager avec d'autres utilisateurs.

Lorsqu'un fichier notebook est envoyé à l'entraînement personnalisé Vertex AI, l'outil crée une tâche d'entraînement personnalisée qui exécute votre fichier notebook en suivant le cycle de vie d'une tâche d'entraînement.

Conditions requises pour l'exécution du code de notebook par l'exécuteur

Lorsque vous écrivez du code de notebook à exécuter dans l'exécuteur, gardez à l'esprit que le code sera exécuté dans un projet locataire distinct de celui de votre instance de notebooks gérés. Cette section décrit l'incidence de ce code sur votre code lorsqu'il est exécuté dans l'exécuteur.

Vérifier que les installations de packages sont disponibles pour l'exécuteur

Si votre notebook dépend d'installations de packages qui ne sont pas déjà incluses dans le noyau des notebooks gérés que vous utilisez, assurez-vous que vos packages sont disponibles pour votre code de notebook dans l'exécuteur de l'une des manières suivantes :

Utiliser la sélection explicite de projets

Lorsque vous accédez à des ressources via le code exécuté par l'exécuteur, il se peut que l'exécuteur ne se connecte pas au bon projet Google Cloud. Si vous rencontrez des erreurs d'autorisation, une connexion au mauvais projet peut être le problème.

Ce problème survient, car l'exécuteur n'exécute pas votre code directement dans le projet Google Cloud de votre instance de notebooks gérés. L'exécuteur exécute plutôt votre code dans un entraînement personnalisé Vertex AI dans un projet locataire géré par Google. Par conséquent, n'essayez pas de déduire un ID de projet de l'environnement de votre code de notebook. Spécifiez les ID de projet explicitement.

Si vous ne souhaitez pas coder en dur un ID de projet dans votre code, vous pouvez référencer la variable d'environnement CLOUD_ML_PROJECT_ID. Vertex AI définit cette variable d'environnement dans chaque conteneur d'entraînement personnalisé pour qu'il contienne le numéro du projet dans lequel vous avez lancé l'entraînement personnalisé. De nombreux outils Google Cloud peuvent accepter un numéro de projet dès lors qu'il est associé à un ID de projet.

Par exemple, si vous souhaitez utiliser le client Python pour Google BigQuery afin d'accéder à une table BigQuery du même projet, ne déduisez pas le projet dans votre code de notebook :

Sélection implicite d'un projet

from google.cloud import bigquery

client = bigquery.Client()

Utilisez plutôt un code qui sélectionne explicitement un projet :

Sélection explicite d'un projet

import os

from google.cloud import bigquery

project_number = os.environ["CLOUD_ML_PROJECT_ID"]

client = bigquery.Client(project=project_number)

Authentifier l'accès à l'aide de comptes de service

Par défaut, votre instance de notebooks gérés peut avoir accès aux ressources existantes du même projet. Par conséquent, lorsque vous exécutez manuellement le code de votre fichier notebook, ces ressources ne nécessitent pas d'authentification supplémentaire. Cependant, étant donné que l'exécuteur s'exécute dans un projet locataire distinct, il n'a pas le même accès par défaut.

En outre, l'exécuteur ne peut pas utiliser les identifiants de l'utilisateur final pour authentifier l'accès aux ressources, par exemple la commande gcloud auth login.

Pour résoudre ces problèmes, authentifiez l'accès aux ressources via un compte de service dans le code de votre fichier notebook.

Ensuite, lorsque vous créez une exécution ou une planification, spécifiez le compte de service.

Par exemple, lorsque vous créez une exécution, procédez comme suit :

  1. Dans la boîte de dialogue Envoyer les notebooks à l'exécuteur, développez les Options avancées.

  2. Dans la section Identité et accès à l'API, décochez la case Utiliser le compte de service par défaut de Vertex AI Training et saisissez le compte de service spécifique.

Consultez la liste complète des étapes à suivre pour créer une exécution.

Exigences concernant l'utilisation d'un conteneur personnalisé

Vous pouvez utiliser l'exécuteur pour exécuter le code de notebook sur un conteneur personnalisé. Votre conteneur personnalisé doit inclure l'extension nbexecutor, qui permet à l'exécuteur d'exécuter le code de notebook en tant que job d'entraînement personnalisé Vertex AI. Pour vous assurer que votre conteneur personnalisé possède l'extension nbexecutor, vous pouvez modifier l'une des images de conteneur Deep Learning Containers pour créer une image de conteneur dérivé. Les images de conteneurs de deep learning incluent l'extension nbexecutor.

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 Vertex AI 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 Vertex AI APIs.

    Enable the APIs

  8. Si vous ne l'avez pas déjà fait, créez une instance de notebooks gérés.

Rôles requis

Pour vous assurer que le compte de service de votre instance dispose des autorisations nécessaires pour interagir avec l'exécuteur Vertex AI Workbench, demandez à votre administrateur d'accorder au compte de service de votre instance le rôle IAM suivant sur le projet :

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.

Ouvrir JupyterLab

Pour ouvrir JupyterLab et préparer un fichier notebook à exécuter, procédez comme suit.

  1. Ouvrez JupyterLab.

  2. Importez un fichier de notebook (ipynb), ouvrez un fichier existant ou ouvrez un nouveau fichier notebook, puis ajoutez le code que vous souhaitez exécuter sur le notebook.

  3. Assurez-vous que le code de votre fichier notebook répond aux exigences d'utilisation de l'exécuteur.

Créer une exécution

Pour créer une exécution qui exécute votre fichier notebook, procédez comme suit : Ces étapes couvrent à la fois la planification des exécutions et la création d'une exécution ponctuelle.

  1. Dans l'interface utilisateur de JupyterLab de votre instance de notebooks gérés, ouvrez le fichier de notebook que vous souhaitez exécuter.

  2. Cliquez sur le bouton  Exécuter.

  3. Dans la boîte de dialogue Envoyer les notebooks à l'exécuteur, dans le champ Nom de l'exécution, saisissez un nom pour votre exécution.

  4. Sélectionnez un Type de machine et un Type d'accélérateur.

  5. Sélectionnez un environnement.

  6. Dans le champ Type, sélectionnez Exécution unique ou Exécutions récurrentes basées sur des planifications, puis compléter la boîte de dialogue permettant de planifier l'exécution.

  7. Dans Options avancées, sélectionnez la région dans laquelle vous souhaitez exécuter votre notebook.

  8. Dans le champ Bucket Cloud Storage, sélectionnez un bucket Cloud Storage disponible ou saisissez un nom pour un nouveau bucket, puis cliquez sur Créer et sélectionner. L'exécuteur stocke la sortie de votre notebook dans ce bucket Cloud Storage.

  9. Facultatif : dans la section Paramètres du notebook, dans la zone de texte Paramètres d'entrée, ajoutez les paramètres des notebooks séparés par une virgule, par exemple, optimizer="SGD",learning_rate=0.01.

    En savoir plus sur l'utilisation des paramètres des notebooks.

  10. Facultatif : dans la section Identité et accès à l'API, sélectionnez Utiliser le compte de service par défaut de Vertex AI Training ou décochez la case et saisissez un compte de service spécifique.

  11. Facultatif : dans la section Mise en réseau, spécifiez un réseau cloud privé virtuel. L'utilisation d'un réseau VPC pour votre exécution nécessite une connexion d'accès aux services privés.

  12. Cliquez sur Envoyer.

    Les exécutions ponctuelles commencent immédiatement. Les exécutions programmées s'exécutent automatiquement selon la planification que vous avez définie.

Dans la console Google Cloud, dans Vertex AI Workbench vous pouvez afficher les exécutions terminées dans l'onglet Exécutions et afficher vos planifications sur l'onglet Planifications.

Afficher, partager et importer un fichier notebook exécuté

À l'aide de l'interface utilisateur de JupyterLab de votre instance de notebooks gérés, vous pouvez afficher le résultat d'un notebook exécuté, partager les résultats avec d'autres utilisateurs et importer le fichier de notebook exécuté dans JupyterLab.

Afficher les résultats d'une exécution de notebook

Vous pouvez afficher les résultats d'une exécution de notebook dans la console Google Cloud ou dans l'interface utilisateur de JupyterLab.

Console

  1. Dans la console Google Cloud, accédez à la page Vertex AI Workbench et cliquez sur l'onglet Exécutions.

    Accéder à la page "Exécutions"

  2. Sélectionnez la région qui contient vos résultats.

  3. À côté de l'exécution que vous souhaitez afficher, cliquez sur Afficher le résultat.

    Le résultat s'ouvre dans un nouvel onglet du navigateur.

JupyterLab

  1. Dans le menu de navigation de JupyterLab, cliquez sur le bouton  Exécuteur de notebooks.

  2. Cliquez sur l'onglet Exécutions.

  3. Sous l'exécution que vous souhaitez afficher, cliquez sur Afficher le résultat.

    Le résultat s'ouvre dans un nouvel onglet du navigateur.

Partager les résultats d'une exécution de notebook

Vous pouvez partager les résultats d'exécution en fournissant un accès au bucket Cloud Storage contenant l'exécution de votre notebook. En fournissant cet accès, les utilisateurs peuvent également accéder à toutes les autres ressources du même bucket Cloud Storage. Pour partager les résultats d'exécution, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Vertex AI Workbench et cliquez sur l'onglet Exécutions.

    Accéder à la page "Exécutions"

  2. Sélectionnez la région qui contient l'exécution.

  3. À côté de l'exécution que vous souhaitez partager, cliquez sur le bouton Partager .

  4. Suivez les instructions de la boîte de dialogue pour autoriser les utilisateurs à accéder au bucket Cloud Storage contenant l'exécution de votre notebook.

JupyterLab

  1. Dans l'interface utilisateur de JupyterLab de votre instance de notebooks gérés, cliquez sur le bouton  Exécuteur de notebooks dans le menu de navigation.

  2. Cliquez sur l'onglet Exécutions.

  3. À côté de l'exécution que vous souhaitez partager, cliquez sur le menu des options , puis sélectionnez Partager le résultat de l'exécution.

  4. Suivez les instructions de la boîte de dialogue pour autoriser les utilisateurs à accéder au bucket Cloud Storage contenant l'exécution de votre notebook.

Importer un notebook exécuté dans JupyterLab

Pour importer un notebook exécuté dans JupyterLab, procédez comme suit :

  1. Dans l'interface utilisateur de JupyterLab de votre instance de notebooks gérés, cliquez sur le bouton  Exécuteur de notebooks dans le menu de navigation.

  2. Cliquez sur l'onglet Exécutions.

  3. Sélectionnez la région qui contient votre notebook exécuté.

  4. À côté de l'exécution que vous souhaitez importer, cliquez sur le menu des options , puis sélectionnez Importer le notebook exécuté.

  5. Sélectionnez le noyau auquel vous souhaitez ouvrir le notebook.

    L'exécuteur ouvre le fichier notebook exécuté dans JupyterLab et le stocke dans l'explorateur de fichiers JupyterLab dans un dossier nommé imported_notebook_jobs.

Afficher ou supprimer une planification

Vous pouvez afficher et supprimer des planifications à l'aide de la console Google Cloud ou de l'interface utilisateur JupyterLab de votre instance de notebooks gérés.

Afficher une planification

Affichez une planification ppour afficher ses paramètres de fréquence ou pour afficher les résultats des exécutions de notebook.

Console

  1. Dans la console Google Cloud, accédez à la page Vertex AI Workbench et cliquez sur l'onglet Planifications.

    Accéder aux planifications

  2. Sélectionnez la région qui contient votre planification.

  3. Cliquez sur le nom d'une planification pour ouvrir la page Informations sur la planification.

  4. À côté d'un nom d'exécution, cliquez sur Afficher le résultat pour ouvrir le fichier notebook exécuté. L'exécuteur ouvre votre résultat dans un nouvel onglet du navigateur.

JupyterLab

  1. Dans l'interface utilisateur de JupyterLab de votre instance de notebooks gérés, cliquez sur le bouton  Exécuteur de notebooks dans le menu de navigation.

  2. Cliquez sur l'onglet Planifications.

  3. Pour afficher la dernière exécution, cliquez sur Afficher le dernier résultat d'exécution sous l'exécution que vous souhaitez afficher. L'exécuteur ouvre votre résultat dans un nouvel onglet du navigateur.

    Pour afficher toutes les exécutions, cliquez sur le nom de la planification. L'exécuteur ouvre la page Informations sur la planification dans la console Google Cloud.

  4. À côté d'un nom d'exécution, cliquez sur Afficher le résultat pour ouvrir le fichier notebook exécuté. L'exécuteur ouvre votre résultat dans un nouvel onglet du navigateur.

Supprimer une programmation

La suppression d'une planification ne supprime pas les exécutions générées à partir de celle-ci.

Console

  1. Dans la console Google Cloud, accédez à la page Vertex AI Workbench et cliquez sur l'onglet Planifications.

    Accéder aux planifications

  2. Sélectionnez la région qui contient votre planification.

  3. Sélectionnez la planification que vous souhaitez supprimer.

  4. Cliquez sur  Supprimer.

JupyterLab

  1. Dans l'interface utilisateur de JupyterLab de votre instance de notebooks gérés, cliquez sur le bouton  Exécuteur de notebooks dans le menu de navigation.

  2. Cliquez sur l'onglet Planifications.

  3. Cliquez sur le nom de la planification que vous souhaitez supprimer. L'exécuteur ouvre la page Informations sur la planification dans la console Google Cloud.

  4. Cliquez sur  Supprimer.

Tâches sur l'entraînement personnalisé de Vertex AI

Les exécutions de notebook s'exécutant sur un entraînement personnalisé Vertex AI sont exposées en tant que tâches d'entraînement personnalisées dans Vertex AI. Vous pouvez afficher ces tâches d'entraînement personnalisé dans la console Google Cloud depuis l'onglet Tâches personnalisées de la page Vertex AI Training. Découvrez comment utiliser les tâches d'entraînement personnalisées de Vertex AI.

Étape suivante