Exécuter un pipeline

Vertex AI Pipelines vous permet d'exécuter des pipelines de machine learning (ML) créés à l'aide du SDK Kubeflow Pipelines ou de TensorFlow Extended dans une solution sans serveur. Ce document explique comment exécuter un pipeline de ML.

Vous pouvez également créer des exécutions de pipeline à l'aide de modèles prédéfinis dans la galerie de modèles. Pour en savoir plus sur la galerie de modèles, consultez la page Utiliser un modèle prédéfini de la galerie de modèles.

Avant de commencer

Avant d'exécuter un pipeline avec Vertex AI Pipelines, suivez les instructions ci-dessous pour configurer votre projet et votre environnement de développement Google Cloud :

  1. Construire un pipeline

  2. Pour exécuter un pipeline à l'aide du SDK Vertex AI pour Python, installez le SDK Vertex.

Créer une exécution de pipeline

Suivez les instructions ci-dessous pour exécuter un pipeline de ML à l'aide de Google Cloud Console ou de Python.

Console

Suivez les instructions ci-dessous pour exécuter un pipeline de ML à l'aide de la console Google Cloud.

  1. Dans la section Vertex AI de la console Google Cloud, accédez à la page Pipelines.

    Accéder à la page Pipelines

  2. Dans la liste déroulante Région, sélectionnez la région pour créer l'exécution du pipeline.

  3. Cliquez sur Créer une exécution pour ouvrir le volet Créer une exécution de pipeline.

  4. Dans la section Détails de l'exécution, procédez comme suit :

    1. Cliquez sur une source d'exécution. Les options suivantes sont disponibles :

      • Sélectionner à partir de pipelines existants : pour créer une exécution de pipeline basée sur un modèle de pipeline existant, cliquez sur Sélectionner à partir de pipelines existants et saisissez les informations suivantes :

        1. Sélectionnez le Dépôt contenant le fichier de définition du pipeline ou du composant.

        2. Sélectionnez le Pipeline ou composant et la Version.

        3. Spécifiez un nom d'exécution pour identifier cette exécution de pipeline de manière unique.

      • Sélectionnez un pipeline de galerie de modèles : pour créer une exécution de pipeline basée sur un modèle de pipeline créé par Google à partir de la galerie de modèles, cliquez sur Sélectionner un pipeline de galerie de modèles et saisissez les informations suivantes :

        1. Dans la liste Pipeline de galerie de modèles, sélectionnez le modèle de pipeline.

        2. (Facultatif) Modifiez le nom d'exécution par défaut qui identifie de manière unique l'exécution de pipeline.

      • Importer un fichier : pour importer une définition de pipeline compilée, cliquez sur Importer un fichier et saisissez les informations suivantes :

        1. Cliquez sur Parcourir pour ouvrir le sélecteur de fichier. Accédez au fichier YAML du pipeline compilé que vous souhaitez exécuter, sélectionnez le pipeline, puis cliquez sur Ouvrir.

        2. Par défaut, le champ Nom du pipeline ou du composant affiche le nom spécifié dans la définition du pipeline. Vous pouvez éventuellement spécifier un autre nom de pipeline.

        3. Spécifiez un nom d'exécution pour identifier cette exécution de pipeline de manière unique.

      • Importer depuis Cloud Storage : pour importer un fichier de définition de pipeline à partir de Cloud Storage, cliquez sur Importer depuis Cloud Storage et saisissez les informations suivantes :

        1. Cliquez sur Parcourir pour accéder au bucket Cloud Storage contenant l'objet de définition de pipeline, sélectionnez le fichier, puis cliquez sur Sélectionner.

        2. Spécifiez le Nom du pipeline ou du composant.

        3. Spécifiez un nom d'exécution pour identifier cette exécution de pipeline de manière unique.

    2. Facultatif : pour planifier des exécutions récurrentes du pipeline, spécifiez la Planification d'exécution comme suit :

      1. Sélectionnez Récurrente.

      2. Sous Heure de début, indiquez à quel moment la planification devient active.

        • Pour planifier la première exécution immédiatement après la création de la programmation, sélectionnez Immédiatement.

        • Pour planifier la première exécution à une heure et une date spécifiques, sélectionnez Début.

      3. Dans le champ Fréquence, spécifiez la fréquence de programmation et d'exécution du pipeline à l'aide d'une expression de programmation Cron basée sur unix-cron.

      4. Sous Fin, indiquez le moment où la programmation se termine.

        • Pour indiquer que la programmation crée des exécutions du pipeline indéfiniment, sélectionnez Jamais.

        • Pour indiquer que la programmation se termine à une date et une heure spécifiques, sélectionnez Fin, puis spécifiez la date et l'heure de fin de la programmation.

      5. Facultatif : pour spécifier que l'exécution du pipeline utilise un compte de service personnalisé, une clé de chiffrement gérée par le client (CMEK) ou un réseau VPC appairé, cliquez sur Options avancées, puis utilisez les instructions suivantes :

        • Pour spécifier un compte de service, sélectionnez-en un dans la liste déroulante Compte de service.

          Si vous ne spécifiez pas de compte de service, Vertex AI Pipelines exécute votre pipeline à l'aide du compte de service Compute Engine par défaut.

          Découvrez comment configurer un compte de service à utiliser avec Vertex AI Pipelines.

        • Pour utiliser une CMEK, sélectionnez Utiliser une clé de chiffrement gérée par le client. La liste déroulante Sélectionner une clé gérée par le client s'affiche. Dans la liste déroulante Sélectionner une clé gérée par le client, choisissez la clé que vous souhaitez utiliser.

        • Pour utiliser un réseau VPC appairé dans ce pipeline exécuté, saisissez le nom du réseau VPC dans le champ Réseau VPC appairé.

    3. Cliquez sur Continuer.

  5. Dans la section Configuration de l'environnement d'exécution, configurez l'exécution du pipeline comme suit :

    1. Sous Emplacement Cloud Storage, cliquez sur Parcourir pour sélectionner le bucket Cloud Storage où stocker les artefacts de sortie du pipeline, puis cliquez sur Sélectionner.

    2. Facultatif : pour configurer la stratégie d'échec et le cache pour l'exécution du pipeline, cliquez sur Options avancées, puis suivez les instructions suivantes:

      • Sous Règle d'échec, spécifiez la règle d'échec pour l'ensemble du pipeline. En savoir plus sur les règles d'échec du pipeline

        • Pour configurer le pipeline de sorte qu'il continue à planifier des tâches après l'échec d'une tâche, sélectionnez Exécuter toutes les étapes du début à la fin. Cette option est sélectionnée par défaut.

        • Pour configurer le pipeline afin qu'il échoue après l'échec d'une tâche, sélectionnez Échouer cette exécution dès qu'une étape échoue.

      • Sous Configuration de la mise en cache, spécifiez la configuration du cache pour l'ensemble du pipeline.

        • Pour utiliser la configuration de cache au niveau des tâches pour le pipeline, sélectionnez Ne pas remplacer la configuration du cache au niveau des tâches.

        • Pour activer la mise en cache de toutes les tâches du pipeline et remplacer la configuration de cache au niveau des tâches, sélectionnez Activer la lecture à partir du cache pour toutes les étapes (plus rapide).

        • Pour désactiver la mise en cache de toutes les tâches du pipeline et remplacer la configuration de cache au niveau des tâches, sélectionnez Désactiver la lecture à partir du cache pour toutes les étapes (plus rapide).

    3. Facultatif: si le pipeline comporte des paramètres, sous Paramètres du pipeline, spécifiez les paramètres d'exécution du pipeline.

  6. Pour créer votre exécution de pipeline, cliquez sur Envoyer.

SDK Vertex AI pour Python

Suivez les instructions ci-dessous pour exécuter un pipeline de ML à l'aide du SDK Vertex AI pour Python. Avant d'exécuter l'exemple de code suivant, vous devez configurer l'authentification.

Configurer l'authentification

Pour configurer l'authentification, vous devez créer une clé de compte de service et définir une variable d'environnement pour le chemin d'accès à la clé de compte de service.

  1. Créez un compte de service :

    1. Dans la console Google Cloud, accédez à la page Créer un compte de service.

      Accéder à la page "Créer un compte de service"

    2. Dans le champ Nom du compte de service, saisissez un nom.
    3. Facultatif : Dans le champ Description du compte de service, saisissez une description.
    4. Cliquez sur Create (Créer).
    5. Cliquez sur le champ Sélectionner un rôle. Sous Tous les rôles, sélectionnez Vertex AI > Utilisateur de Vertex AI.
    6. Cliquez sur Terminé pour créer le compte de service.

      Ne fermez pas la fenêtre de votre navigateur. Vous en aurez besoin lors de la tâche suivante.

  2. Créez une clé de compte de service pour l'authentification :

    1. Dans la console Google Cloud, cliquez sur l'adresse e-mail du compte de service que vous avez créé.
    2. Cliquez sur Keys (Clés).
    3. Cliquez sur AJOUTER UNE CLÉ -> Créer une clé.
    4. Cliquez sur Create (Créer). Un fichier de clé JSON est téléchargé sur votre ordinateur.
    5. Cliquez sur Close (Fermer).
  3. Accordez à votre nouveau compte de service l'accès au compte de service que vous utilisez pour exécuter des pipelines.
    1. Cliquez sur pour revenir à la liste des comptes de service.
    2. Cliquez sur le nom du compte de service que vous utilisez pour exécuter des pipelines. La page Détails du compte de service s'affiche.

      Si vous avez suivi les instructions du guide de configuration de votre projet pour Vertex AI Pipelines, il s'agit du compte de service que vous avez créé à l'étape Configurer un compte de service avec des autorisations précises. Sinon, Vertex AI utilise le compte de service Compute Engine par défaut pour exécuter des pipelines. Le compte de service Compute Engine par défaut est nommé comme suit : PROJECT_NUMBER-compute@developer.gserviceaccount.com

    3. Cliquez sur l'onglet Autorisations.
    4. Cliquez sur Accorder l'accès. Le panneau Ajouter des comptes principaux s'affiche.
    5. Dans la zone Nouveaux comptes principaux, saisissez l'adresse e-mail du compte de service que vous avez créé à une étape précédente.
    6. Dans la liste déroulante Rôle, sélectionnez Comptes de service > Utilisateur du compte de service.
    7. Cliquez sur Enregistrer.
  4. Définissez la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS pour qu'elle pointe vers le chemin d'accès au fichier JSON contenant la clé de votre compte de service. Cette variable ne s'applique qu'à la session d'interface système actuelle. Par conséquent, si vous ouvrez une nouvelle session, vous devez la définir à nouveau.

    Exemple : Linux ou macOS

    Remplacez [PATH] par le chemin du fichier JSON contenant la clé de votre compte de service.

    export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    Exemple :

    export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

    Exemple : Windows

    Remplacez [PATH] par le chemin du fichier JSON contenant la clé de votre compte de service et [FILE_NAME] par le nom du fichier.

    Avec PowerShell :

    $env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

    Exemple :

    $env:GOOGLE_APPLICATION_CREDENTIALS="C:\Users\username\Downloads\[FILE_NAME].json"

    Avec l'invite de commande :

    set GOOGLE_APPLICATION_CREDENTIALS=[PATH]

Exécuter un pipeline

Pour exécuter une commande PipelineJob Vertex AI, vous devez créer un objet PipelineJob, puis appeler la méthode submit.

Types d'entrées spéciaux compatibles avec KFP

Lors de la création d'une exécution de pipeline, vous pouvez également transmettre les espaces réservés suivants compatibles avec le SDK KFP en tant qu'entrées :

  • {{$.pipeline_job_name_placeholder}}

  • {{$.pipeline_job_resource_name_placeholder}}

  • {{$.pipeline_job_id_placeholder}}

  • {{$.pipeline_task_name_placeholder}}

  • {{$.pipeline_task_id_placeholder}}

  • {{$.pipeline_job_create_time_utc_placeholder}}

  • {{$.pipeline_root_placeholder}}

Pour en savoir plus, consultez la section Types d'entrées spéciaux dans la documentation de Kubeflow Pipelines v2.

from google.cloud import aiplatform

job = aiplatform.PipelineJob(display_name = DISPLAY_NAME,
                             template_path = COMPILED_PIPELINE_PATH,
                             job_id = JOB_ID,
                             pipeline_root = PIPELINE_ROOT_PATH,
                             parameter_values = PIPELINE_PARAMETERS,
                             enable_caching = ENABLE_CACHING,
                             encryption_spec_key_name = CMEK,
                             labels = LABELS,
                             credentials = CREDENTIALS,
                             project = PROJECT_ID,
                             location = LOCATION,
                             failure_policy = FAILURE_POLICY)

job.submit(service_account=SERVICE_ACCOUNT,
           network=NETWORK)

Remplacez les éléments suivants :

  • DISPLAY_NAME : nom du pipeline, qui apparaîtra dans la console Google Cloud.
  • COMPILED_PIPELINE_PATH : chemin d'accès au fichier JSON du pipeline compilé. Il peut s'agir d'un chemin d'accès local ou d'un URI Google Cloud Storage.

    Facultatif : Pour spécifier une version particulière d'un pipeline compilé, incluez le tag de version dans l'un des formats suivants :

    • COMPILED_PIPELINE_PATH:TAG, où TAG est le tag de version.

    • COMPILED_PIPELINE_PATH@SHA256_TAG, où SHA256_TAG est la valeur de hachage sha256 de la version du pipeline.

  • JOB_ID : (facultatif) Identifiant unique pour cette exécution de ce pipeline. Si l'ID de tâche n'est pas spécifié, Vertex AI Pipelines crée un ID de tâche à l'aide du nom du pipeline et de l'horodatage du début de l'exécution du pipeline.

  • PIPELINE_ROOT_PATH : (facultatif) Pour remplacer le chemin d'accès racine spécifié dans la définition du pipeline, spécifiez un chemin auquel votre tâche de pipeline peut accéder, tel qu'un URI de bucket Cloud Storage.

  • PIPELINE_PARAMETERS : (facultatif) Paramètres du pipeline à transmettre à cette exécution. Par exemple, créez un dict() avec les noms de paramètres comme clés de dictionnaire et les valeurs de paramètres comme valeurs de dictionnaire.

  • ENABLE_CACHING : (facultatif) Spécifie si l'exécution du pipeline utilise la mise en cache d'exécution. La mise en cache d'exécution réduit les coûts en ignorant les tâches du pipeline où la sortie est connue pour l'ensemble d'entrées actuel. Si l'argument d'activation de la mise en cache n'est pas spécifié, la mise en cache d'exécution est utilisée dans cette exécution de pipeline. En savoir plus sur la mise en cache d'exécution.

  • CMEK : (facultatif) Nom de la clé de chiffrement gérée par le client que vous souhaitez utiliser pour cette exécution de pipeline.

  • LABELS : (facultatif) Étiquettes définies par l'utilisateur pour organiser ce PipelineJob. Pour en savoir plus sur les étiquettes de ressources, consultez la section Créer et gérer des étiquettes dans la documentation de Resource Manager.

    Vertex AI Pipelines associe automatiquement l'étiquette suivante à votre exécution de pipeline :

    vertex-ai-pipelines-run-billing-id: pipeline_run_id

    pipeline_run_id est l'ID unique de l'exécution du pipeline.

    Cette étiquette associe l'utilisation des ressources Google Cloud générées par l'exécution de pipeline dans les rapports de facturation.

  • CREDENTIALS : (facultatif) Identifiants personnalisés à utiliser pour créer ce PipelineJob. Remplace les identifiants définis dans aiplatform.init.

  • PROJECT_ID : (facultatif) projet Google Cloud dans lequel vous souhaitez exécuter le pipeline. Si vous ne définissez pas ce paramètre, le projet défini dans aiplatform.init est utilisé.

  • LOCATION : (facultatif) région dans laquelle vous souhaitez exécuter le pipeline. Pour en savoir plus sur les régions dans lesquelles Vertex AI Pipelines est disponible, consultez le guide des emplacements Vertex AI. Si vous ne définissez pas ce paramètre, l'emplacement par défaut défini dans aiplatform.init est utilisé.

  • FAILURE_POLICY : (facultatif) spécifiez la règle d'échec pour l'ensemble du pipeline. Les configurations suivantes sont disponibles :

    • Pour configurer l'échec du pipeline après l'échec d'une tâche, saisissez fast.

    • Pour configurer le pipeline de sorte qu'il continue à planifier des tâches après l'échec d'une tâche, saisissez slow.

    Si vous ne définissez pas ce paramètre, la configuration de la règle d'échec est définie par défaut sur slow. En savoir plus sur les règles d'échec du pipeline

  • SERVICE_ACCOUNT : (facultatif) Nom du compte de service à utiliser pour cette exécution de pipeline. Si vous ne spécifiez pas de compte de service, Vertex AI Pipelines exécute votre pipeline à l'aide du compte de service Compute Engine par défaut.

  • NETWORK : (facultatif) Nom du réseau VPC appairé à utiliser pour cette exécution de pipeline.