Comprendre le service AI Platform Training

Cette page explique l'état d'un cluster d'entraînement pendant le cycle de vie d'un job d'entraînement et explique comment AI Platform Training gère les erreurs d'entraînement. Vous pouvez utiliser ces informations afin d'adapter votre code d'entraînement en conséquence.

Cycle de vie d'une tâche d'entraînement

Cette section explique comment AI Platform Training gère les VM de nœud de calcul tout au long du cycle de vie d'une tâche d'entraînement.

Démarrer les nœuds de calcul en parallèle

Lorsqu'une tâche d'entraînement démarre, AI Platform Training planifie le plus grand nombre possible de nœuds de calcul sur une courte période. Par conséquent, les nœuds de calcul peuvent démarrer en parallèle plutôt que de manière séquentielle. Afin de réduire la latence au démarrage, AI Platform Training commence à exécuter votre code sur chaque nœud de calcul dès qu'il devient disponible. Lorsque tous les nœuds de calcul sont disponibles, AI Platform Training définit l'état de la tâche sur RUNNING.

Dans la plupart des cas, votre framework de machine learning gère automatiquement les nœuds de calcul en parallèle. Si vous utilisez une stratégie de distribution dans votre code d'entraînement, vous devrez peut-être l'ajuster manuellement pour gérer les nœuds de calcul en parallèle. Obtenez plus d'informations sur les stratégies de distribution dans TensorFlow et dans PyTorch.

Redémarrer les nœuds de calcul pendant le job d'entraînement

Lors d'une tâche d'entraînement, AI Platform Training peut redémarrer votre maître, vos nœuds de calcul ou vos serveurs de paramètres portant le même nom d'hôte. Le problème peut survenir pour les raisons suivantes :

  • Maintenance de la VM : lorsque la VM qui exécute un nœud de calcul fait l'objet d'une maintenance de VM, AI Platform Training redémarre le nœud de calcul sur une autre VM. Apprenez-en davantage sur la migration à chaud pour la maintenance des VM.
  • Sorties non nulles : si un nœud de calcul s'arrête avec un code de sortie différent de zéro, AI Platform Training redémarre ce nœud de calcul immédiatement dans la même VM.

    • Si un nœud de calcul échoue en raison d'une erreur courante, celle-ci est traitée comme une erreur permanente et AI Platform Training arrête l'intégralité de la tâche. Si des conteneurs redémarrent avant qu'AI Platform Training n'arrête l'intégralité de la tâche, ils peuvent produire des journaux dans Cloud Logging.
    • Si un nœud de calcul échoue en raison d'une erreur non-permanente (soit toute erreur non répertoriée dans les erreurs courantes), AI Platform Training permet au nœud de calcul redémarré de poursuivre son exécution, à raison de cinq redémarrages par nœud de calcul. Si un nœud de calcul échoue à nouveau après cinq redémarrages, AI Platform Training retente jusqu'à trois fois l'intégralité de la tâche avant de la mettre en échec.

Pour gérer les redémarrages des nœuds de calcul dans votre code d'entraînement, enregistrez des points de contrôle régulièrement pendant l'entraînement afin de pouvoir reprendre à partir de ces points de contrôle lorsqu'un nœud de calcul redémarre. Si vous prévoyez que l'entraînement dure plus de quatre heures, nous vous recommandons d'enregistrer un point de contrôle au moins une fois toutes les quatre heures. Découvrez comment utiliser les points de contrôle d'entraînement dans TensorFlow et dans PyTorch.

Terminer une tâche avec succès

Une tâche d'entraînement se termine correctement lorsque son instance dupliquée principale se ferme avec le code de sortie 0. À ce stade, AI Platform Training arrête tous les autres nœuds de calcul en cours d'exécution.

Gestion des erreurs liées aux tâches d'entraînement par AI Platform Training

Cette section explique comment AI Platform Training gère les erreurs courantes et les erreurs internes des tâches d'entraînement.

Environ une minute après la fin d'une tâche, AI Platform Training définit le code d'erreur sur l'objet de tâche d'entraînement en se basant sur le code de sortie.

Gérer les erreurs courantes

AI Platform Training arrête tous les nœuds de calcul s'il rencontre l'un des problèmes suivants :

Type d'erreur Message d'erreur/Journal Remarque
Exception de code utilisateur L'instance dupliquée REPLICA_NAME s'est arrêtée avec un état différent de zéro (EXIT_CODE). Motif de l'arrêt : REASON. Au cas où la tâche aurait rencontré des codes de sortie transitoires, AI Platform Training tente de redémarrer la tâche jusqu'à trois fois. Les codes d'erreur potentiellement transitoires qui résultent en une nouvelle tentative d'exécution de la tâche par AI Platform Training sont les suivants :
  • SIGABRT
    • ExitCode 6
    • ExitCode 134 (conteneurs personnalisés)
  • SIGSEGV
    • ExitCode 11
    • ExitCode 139 (conteneurs personnalisés)
Mémoire saturée La mémoire de l'instance dupliquée REPLICA_NAME est saturée et l'instance s'est arrêtée avec un état EXIT_CODE différent de 0. GKE réserve de la mémoire sur les nœuds AI Platform Training. Sur les plus petits types de machines (tels que n1-standard-4), les agents du système AI Platform Training peuvent utiliser jusqu'à 40 % de la mémoire totale. Pour les VM plus importantes, la surcharge est relativement faible. Comparez les ressources de mémoire pouvant être allouées aux types de machines n1-standard.
Capacité insuffisante dans votre région (rupture de stock de Compute Engine) Les ressources sont insuffisantes dans la région : REGION_NAME. Essayez une autre région ou utilisez un autre accélérateur. Une rupture de stock se produit lorsque Compute Engine atteint sa capacité maximale pour le type de processeur ou GPU sélectionné dans votre région. Cela n'est pas lié au quota de votre projet. Dans une telle éventualité, AI Platform Training tente de redémarrer la tâche jusqu'à trois fois.

Gérer les erreurs internes

Si AI Platform Training rencontre une erreur interne, il tente de redémarrer une tâche deux fois (trois tentatives au total). Si le redémarrage échoue encore, AI Platform Training renvoie une erreur interne avec le message : Internal error occurred for the current attempt.