Utilisez les nœuds PAI DLC dans DataWorks pour charger des tâches d'entraînement distribué DLC, configurer leurs dépendances de planification et les exécuter périodiquement.
Prérequis
-
Accordez à DataWorks l'accès à PAI.
Accédez à la page d'autorisation pour accorder les autorisations en un seul clic. Pour plus d'informations sur la stratégie d'autorisation, consultez la section AliyunServiceRoleForDataWorksEngine. Seuls un compte Alibaba Cloud ou un utilisateur RAM disposant de la stratégie AliyunDataWorksFullAccess peuvent effectuer cette autorisation en un clic.
-
Créez un workflow.
Vous devez créer un workflow avant de créer un nœud. Pour plus d'informations, consultez la rubrique Créer un workflow.
Considérations
Chaque exécution réussie d'un nœud PAI DLC génère une nouvelle tâche DLC sur la plateforme Distributed Training (DLC) de PAI. Pour éviter l'accumulation de nombreuses tâches portant le même nom, définissez une fréquence de planification raisonnable et ajoutez des variables de date et d'heure au nom de la tâche. Assignez des paramètres de planification basés sur l'heure à ces variables afin que chaque nom de tâche inclue un horodatage unique. Pour plus d'informations, consultez l'étape Étape 2 : Développer une tâche PAI DLC.
DataWorks ne prend pas en charge l'exécution de tâches PAI DLC sur le groupe de ressources de planification public.
Les exemples de cette rubrique utilisent la région Chine (Shanghai). L'interface utilisateur peut varier selon les autres régions.
Étape 1 : Créer un nœud PAI DLC
-
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Development.
Cliquez avec le bouton droit sur le workflow cible et choisissez .
Dans la boîte de dialogue Create Node, saisissez un Name pour le nœud et cliquez sur OK. Vous pouvez ensuite développer et configurer la tâche au sein du nœud.
Étape 2 : Développer une tâche PAI DLC
Exemple de code de tâche
Dans l'éditeur de nœud PAI DLC, vous pouvez écrire une tâche DLC de l'une des manières suivantes :
-
Générer du code à partir d'une tâche DLC existante.
Recherchez une tâche DLC existante par son nom et chargez-la. L'éditeur de nœud génère le code correspondant en fonction de la configuration PAI de la tâche. Vous pouvez ensuite modifier ce code selon vos besoins.
RemarqueSi vous ne disposez pas des autorisations nécessaires pour charger ou créer une tâche, suivez les instructions affichées à l'écran pour accorder l'autorisation.
Si aucune tâche n'est disponible, créez-en une dans la console PAI. Vous pouvez créer des tâches PAI DLC de plusieurs façons selon vos besoins. Pour plus de détails, consultez les rubriques Créer une tâche d'entraînement, Créer une tâche d'entraînement : SDK Python et Créer une tâche d'entraînement : Ligne de commande.
-
Écrire directement le code de la tâche DLC.
Saisissez directement le code de la tâche dans l'éditeur de nœud PAI DLC.
Après l'exécution du nœud PAI DLC, une nouvelle tâche DLC est générée dans PAI en fonction de la configuration. Le code suivant en fournit un exemple :
dlc submit xgboostjob \ #Submits the DLC task.
--name=wsytest_pai04_XGBoost \ #The name of the DLC task. We recommend using a variable name or the DataWorks node name.
--command='echo '\''${variable_name}'\'';' \ #The command to be executed by the DLC task.
--workspace_id=80593 \ #The ID of the workspace where the DLC task runs.
--priority=1 \ #The task priority. Valid values: 1 to 9. 1 is the lowest priority and 9 is the highest.
--workers=1 \ #The number of workers. If the value is greater than 1, the task is distributed and can run in parallel on multiple workers.
--worker_image=registry.cn-hangzhou.aliyuncs.com/pai-dlc/tensorflow-training:2.3-cpu-py36-ubuntu18.04 \ #The worker image that provides the runtime environment for the DLC task.
--worker_spec=ecs.g6.xlarge #The worker specification, which is the compute instance type used by the workers.
Utiliser des paramètres de planification dans le code
DataWorks met à disposition les Scheduling Parameter pour transmettre dynamiquement des variables à votre code. Définissez les variables dans le code de votre tâche en utilisant le format ${variable_name} et attribuez-leur des valeurs dans la section Scheduling > Parameter. Pour plus d'informations sur les formats pris en charge, consultez la rubrique Formats pris en charge pour les paramètres de planification.
Le code suivant illustre l'utilisation d'un paramètre de planification :
--command='echo '\''${variable_name}'\'';' \ -- Can be used with scheduling parameters.
Étape 3 : Configurer la planification des tâches
Pour exécuter la tâche du nœud périodiquement, cliquez sur Scheduling dans le volet de droite et configurez les propriétés de planification. Pour plus d'informations, consultez la rubrique Aperçu des propriétés de planification des tâches.
Vous devez définir l'Rerun attribute et les Parent Nodes pour le nœud avant de pouvoir le soumettre.
Étape 4 : Déboguer la tâche
Effectuez les opérations de débogage suivantes pour vérifier que la tâche s'exécute comme prévu.
-
(Facultatif) Sélectionnez un groupe de ressources et attribuez des valeurs aux paramètres personnalisés.
Cliquez sur l'icône
dans la barre d'outils. Dans la boîte de dialogue Parameter, sélectionnez le groupe de ressources de planification pour le débogage.Si le code de votre tâche utilise des paramètres de planification, vous pouvez leur attribuer des valeurs ici à des fins de débogage. Pour plus d'informations sur la logique d'attribution des paramètres, consultez la rubrique Quelle est la différence de logique d'attribution entre Run, Advanced Run et le test de fumée dans l'environnement de développement ?.
-
Enregistrez et exécutez le code.
Cliquez sur l'icône
dans la barre d'outils pour enregistrer le code, puis cliquez sur l'icône
pour exécuter la tâche. -
(Facultatif) Effectuez un test de fumée.
Pour vérifier si la tâche planifiée du nœud s'exécute correctement dans l'environnement de développement, effectuez un test de fumée lors de la soumission du nœud ou après celle-ci. Pour plus d'informations, consultez la rubrique Effectuer un test de fumée.
Étape 5 : Soumettre et déployer la tâche
Une fois la tâche du nœud configurée, soumettez-la et déployez-la. Après le déploiement, le nœud s'exécute périodiquement en fonction de sa configuration de planification.
Cliquez sur l'icône
dans la barre d'outils pour enregistrer le nœud.-
Cliquez sur l'icône
dans la barre d'outils pour soumettre la tâche du nœud.Dans la boîte de dialogue Commit Node, saisissez une Change Description. Vous pouvez également choisir d'effectuer une revue de code après la soumission.
RemarqueVous devez définir l'Rerun attribute et les Parent Nodes pour le nœud avant de pouvoir le soumettre.
La revue de code permet de garantir la qualité du code et d'éviter le déploiement de tâches erronées en production. Si vous activez la revue de code, le code soumis doit être approuvé avant le déploiement. Pour plus d'informations, consultez la rubrique Revue de code.
Si vous utilisez un espace de travail en mode standard, cliquez sur Deploy dans le coin supérieur droit de la page d'édition du nœud après la soumission pour déployer la tâche en production. Pour plus d'informations, consultez la rubrique Déployer une tâche.
Étapes suivantes
Une fois la tâche soumise et déployée, elle s'exécute périodiquement en fonction de la configuration du nœud. Cliquez sur O&M Personnel dans le coin supérieur droit de la page de l'éditeur pour consulter l'état de planification et d'exécution. Pour plus d'informations, consultez la rubrique Gérer les tâches planifiées.