Share via


Résolution des problèmes d’environnement

Dans cet article, découvrez comment résoudre les problèmes courants que vous pouvez rencontrer avec les builds d’images d’environnement et découvrez les vulnérabilités de l’environnement AzureML.

Nous sollicitons votre feedback ! Si vous avez accédé à cette page via vos journaux d’analyse des échecs de génération ou de définition d’environnement, nous aimerions savoir si la fonctionnalité vous a été utile ou si vous souhaitez rapporter un scénario d’échec qui n’est pas encore couvert par notre analyse. Vous pouvez aussi laisser un feedback sur cette documentation. Laissez vos réflexions ici.

Environnements Azure Machine Learning

Les environnements Azure Machine Learning sont une encapsulation de l’environnement dans lequel votre formation Machine Learning se produit. Ils spécifient l’image Docker de base, les packages Python et les paramètres logiciels autour de vos scripts de formation et de notation. Les environnements sont des ressources managées et avec version dans votre espace de travail Machine Learning qui permettent de bénéficier de workflows Machine Learning reproductibles, pouvant être audités et portables parmi différentes cibles de calcul.

Types d’environnements

Les environnements appartiennent à trois catégories : organisés, gérés par l’utilisateur et gérés par le système.

Les environnements organisés sont des environnements pré-créés gérés par Azure Machine Learning et sont disponibles par défaut dans chaque espace de travail. Ils contiennent des collections de packages et paramètres Python destinés à vous aider à prendre en main diverses infrastructures de Machine Learning, et ils sont prévus pour être utilisés tels quels. Ces environnements précréés offrent également un temps de déploiement plus rapide.

Dans un environnement géré par l’utilisateur, vous êtes responsable de la configuration de votre environnement et de l’installation de chaque package dont votre script d’apprentissage a besoin sur la cible de calcul. Veillez également à inclure toutes les dépendances nécessaires pour le modèle de déploiement.

Ces types d’environnements ont deux sous-types. Pour le premier type, BYOC (apportez votre propre conteneur), vous apportez une image Docker existante dans Azure Machine Learning. Pour le deuxième type, les environnements basés sur le contexte de génération Docker, Azure Machine Learning matérialise l’image à partir du contexte que vous fournissez.

Utilisez des environnements gérés par le système quand vous souhaitez que Conda gère l’environnement Python pour vous. Azure Machine Learning crée un nouvel environnement Conda isolé en matérialisant votre spécification Conda sur une image Docker de base. Par défaut, Azure Machine Learning ajoute des fonctionnalités courantes à l’image dérivée. Les packages Python présents dans l’image de base ne sont pas disponibles dans l’environnement Conda isolé.

Créer et gérer des environnements

Vous pouvez créer et gérer des environnements à partir de clients tels que le SDK Python Azure Machine Learning, Azure Machine Learning CLI, l’interface utilisateur Azure Machine Learning Studio, l’extension Visual Studio Code.

Les environnements « anonymes » sont automatiquement inscrits dans votre espace de travail lorsque vous soumettez une expérience sans inscrire ou référencer un environnement déjà existant. Ils ne sont pas répertoriés, mais vous pouvez les récupérer par version ou étiquette.

Azure Machine Learning génère des définitions d’environnement dans des images Docker. Il met également en cache les images dans Azure Container Registry associées à votre espace de travail Azure Machine Learning afin qu’elles puissent être réutilisées dans les travaux de formation et les déploiements de points de terminaison de service suivants. Plusieurs environnements avec la même définition peuvent entraîner la même image mise en cache.

L’exécution d’un script d’apprentissage à distance requiert la création d’une image Docker.

Vulnérabilités dans les environnements AzureML

Vous pouvez résoudre les vulnérabilités en effectuant une mise à niveau vers une version plus récente d’une dépendance (image de base, package Python, etc.) ou en migrant vers une autre dépendance qui répond aux exigences de sécurité. L’atténuation des vulnérabilités est fastidieuse et coûteuse, car elle peut nécessiter une refactorisation du code et de l’infrastructure. Avec la prévalence des logiciels open source et l’utilisation de dépendances imbriquées complexes, il est important de gérer et de suivre les vulnérabilités.

Il existe plusieurs façons de réduire l’impact des vulnérabilités :

  • Réduisez le nombre de dépendances : utilisez l’ensemble minimal de dépendances pour chaque scénario.
  • Compartimentez votre environnement afin de pouvoir étendre et résoudre les problèmes en un seul endroit.
  • Comprenez les vulnérabilités signalées et leur pertinence par rapport à votre scénario.

Analyser les vulnérabilités

Vous pouvez monitorer et gérer l’intégrité de l’environnement avec Microsoft Defender pour Container Registry pour rechercher des vulnérabilités dans les images.

Pour automatiser ce processus en fonction des déclencheurs de Microsoft Defender, consultez Automatiser les réponses aux déclencheurs Microsoft Defender pour le cloud.

Vulnérabilités et reproductibilité

La reproductibilité est l’une des bases du développement de logiciels. Lors du développement de code de production, une opération répétée doit garantir le même résultat. L’atténuation des vulnérabilités peut perturber la reproductibilité en modifiant les dépendances.

L’objectif principal d’Azure Machine Learning est de veiller à la reproductibilité. Les environnements appartiennent à trois catégories : organisés, gérés par l’utilisateur et gérés par le système.

Environnements organisés

Les environnements organisés sont des environnements pré-créés gérés par Azure Machine Learning et sont disponibles par défaut dans chaque espace de travail Azure Machine Learning provisionné. De nouvelles versions sont publiées par Azure Machine Learning pour résoudre les vulnérabilités. Le fait que vous utilisiez la dernière image peut résulter d’un compromis entre la reproductibilité et les gestion des vulnérabilités.

Les environnements organisés contiennent des collections de packages et paramètres Python destinés à vous aider à prendre en main diverses infrastructures de Machine Learning. Vous êtes censé les utiliser tels qu’ils sont. Ces environnements précréés offrent également un temps de déploiement plus rapide.

Environnements gérés par l’utilisateur

Dans les environnement géré par l’utilisateur, vous êtes responsable de la configuration de votre environnement et de l’installation de chaque package dont votre script d’entraînement a besoin sur la cible de calcul et pour le déploiement de modèle. Ces types d’environnements ont deux sous-types :

  • BYOC (Apportez votre propre conteneur) : l’utilisateur fournit une image Docker à Azure Machine Learning
  • Contexte de génération Docker : Azure Machine Learning matérialise l’image à partir du contenu fourni par l’utilisateur

Une fois que vous avez installé des dépendances supplémentaires sur une image fournie par Microsoft ou que vous avez apporté votre propre image de base, la gestion des vulnérabilités devient votre responsabilité.

Environnements gérés par le système

Vous utilisez des environnements gérés par le système quand vous souhaitez que Conda gère l’environnement Python pour vous. Azure Machine Learning crée un nouvel environnement Conda isolé en matérialisant votre spécification Conda sur une image Docker de base. Même si Azure Machine Learning corrige les images de base avec chaque version, le fait que vous utilisiez la dernière image peut résulter d’un compromis entre la reproductibilité et les gestion des vulnérabilités. Par conséquent, il vous incombe de choisir la version de l’environnement utilisée pour vos travaux ou vos déploiements de modèles lors de l’utilisation d’environnements gérés par le système.

Vulnérabilités : problèmes courants

Vulnérabilités dans les images Docker de base

Les vulnérabilités système dans un environnement sont généralement introduites à partir de l’image de base. Par exemple, les vulnérabilités marquées comme « Ubuntu » ou « Debian » proviennent du niveau système de l’environnement (l’image Docker de base). Si l’image de base provient d’un émetteur tiers, vérifiez si la dernière version contient des correctifs pour les vulnérabilités marquées. Les sources les plus courantes pour les images de base dans Azure Machine Learning sont les suivantes :

  • Registre des artefacts Microsoft (MAR), aussi connu sous le nom de Microsoft Container Registry (mcr.microsoft.com).
    • Les images peuvent être répertoriées à partir de la page d’accueil MAR, en appelant l’API du catalogue ou avec /tags/list
    • Les notes de source et de publication pour les images de base de formation à partir d’AzureML sont disponibles dans Azure/AzureML-Containers
  • Nvidia (nvcr.io ou profil nvidia)

Si la dernière version de votre image de base ne résout pas vos vulnérabilités, vous pouvez résoudre les vulnérabilités de l’image de base en installant les versions recommandées par une analyse des vulnérabilités :

apt-get install -y library_name

Vulnérabilités dans les packages Python

Les vulnérabilités peuvent également provenir de packages Python installés sur l’image de base gérée par le système. Ces vulnérabilités liées à Python doivent être résolues en mettant à jour vos dépendances Python. Les vulnérabilités Python (pip) dans l’image proviennent généralement de dépendances définies par l’utilisateur.

Pour rechercher des vulnérabilités et des solutions Python connues, consultez GitHub Advisory Database. Pour résoudre les vulnérabilités Python, mettez à jour le package vers la version qui contient des correctifs pour le problème marqué :

pip install -u my_package=={good.version}

Si vous utilisez un environnement conda, mettez à jour la référence dans le fichier de dépendances conda.

Dans certains cas, les packages Python sont automatiquement installés lors de la configuration de votre environnement par conda sur une image Docker de base. Les étapes d’atténuation pour ceux-ci sont les mêmes que celles pour les packages introduits par l’utilisateur. Conda installe les dépendances nécessaires pour chaque environnement qu’elle matérialise. Les packages tels que le chiffrement, les setuptools, wheel, etc. seront automatiquement installés à partir des canaux par défaut de conda. Il existe un problème connu avec le canal anaconda par défaut qui ne possède pas les dernières versions du package. Il est donc recommandé de hiérarchiser le canal conda-forge géré par la communauté. Sinon, spécifiez explicitement les packages et les versions, même si vous ne les référencez pas dans le code que vous prévoyez d’exécuter sur cet environnement.

Problèmes de cache

Une instance d’Azure Container Registry utilisée comme cache pour les images conteneur est associée à votre espace de travail Azure Machine Learning. Toute image matérialisée est envoyée (par push) dans le registre de conteneurs et est utilisée si l’expérimentation ou le déploiement est déclenché pour l’environnement correspondant. Azure Machine Learning ne supprime aucune image de votre registre de conteneurs et c’est à vous d’évaluer les images que vous devez tenir à jour au fil du temps.

Résoudre les problèmes liés aux builds d’images d’environnement

Découvrez comment résoudre les problèmes liés à la génération d’images d’environnement et à l’installation de packages.

Problèmes de définition d’environnement

Problèmes de nom d’environnement

Préfixe organisé non autorisé

Ce problème peut se produire lorsque le nom de votre environnement personnalisé utilise des termes réservés uniquement aux environnements organisés. Les environnements organisés sont des environnements que Microsoft gère. Les environnements personnalisés sont des environnements que vous créez et gérez.

Causes potentielles :

  • Le nom de votre environnement commence par Microsoft ou AzureML

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Mettez à jour le nom de votre environnement pour exclure le préfixe réservé que vous utilisez actuellement

Ressources

Le nom de l’environnement est trop long

Causes potentielles :

  • Le nom de votre environnement comporte plus de 255 caractères

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Mettre à jour le nom de votre environnement de 255 caractères ou moins

Problèmes Docker

S’APPLIQUE À :extension Azure CLI ml v1

S’APPLIQUE À :SDK Python azureml v1

Pour créer un nouvel environnement, vous devez utiliser l'une des approches suivantes (voir DockerSection ) :

  • Image de base
    • Fournir le nom de l’image de base, le référentiel à partir duquel l’extraire, et les informations d’identification si nécessaire
    • Fournir une spécification conda
  • Base Dockerfile
    • Fournir un fichier Dockerfile
    • Fournir une spécification conda
  • Contexte de build Docker
    • Indiquer l’emplacement du contexte de build (URL)
    • Le contexte de build doit contenir au moins un fichier Dockerfile, mais peut également contenir d’autres fichiers.

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Pour créer un environnement, vous devez utiliser l’une des approches suivantes :

  • Image Docker
    • Fournissez l’URI de l’image hébergée dans un registre, comme Docker Hub ou Azure Container Registry
    • Exemple ici
  • Contexte de build Docker
    • Spécifiez le répertoire utilisé comme contexte de génération
    • Le répertoire doit contenir un fichier Dockerfile et tous les autres fichiers nécessaires pour générer l’image
    • Exemple ici
  • Spécification Conda
    • Vous devez spécifier une image Docker de base pour l’environnement ; Azure Machine Learning crée l’environnement Conda sur l’image Docker fournie
    • Fournir le chemin d’accès relatif au fichier conda
    • Exemple ici

Définition Docker manquante

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Ce problème peut se produire lorsque votre définition d’environnement ne contient pas un DockerSection. Cette section configure les paramètres liés à l’image Docker finale générée à partir de votre spécification d’environnement.

Causes potentielles :

  • Vous n’avez pas spécifié le DockerSection de votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Ajoutez un DockerSectionà votre définition d’environnement, en spécifiant une image de base, un dockerfile de base ou un contexte de build Docker.

from azureml.core import Environment
myenv = Environment(name="myenv")
# Specify docker steps as a string.
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''

myenv.docker.base_dockerfile = dockerfile

Ressources

Trop d’options Docker

Causes potentielles :

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Vous avez plusieurs de ces options Docker spécifiées dans votre définition d’environnement

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Vous avez plusieurs de ces options Docker spécifiées dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Choisissez l’option Docker que vous souhaitez utiliser pour créer votre environnement. Définissez ensuite toutes les autres options spécifiées sur Aucun.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

from azureml.core import Environment
myenv = Environment(name="myEnv")
dockerfile = r'''
FROM mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
RUN echo "Hello from custom container!"
'''
myenv.docker.base_dockerfile = dockerfile
myenv.docker.base_image = "pytorch/pytorch:latest"

# Having both base dockerfile and base image set will cause failure. Delete the one you won't use.
myenv.docker.base_image = None

Option Docker manquante

Causes potentielles :

Vous n’avez pas spécifié l’une des options suivantes dans votre définition d’environnement

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Vous n’avez pas spécifié l’une des options suivantes dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Choisissez l’option Docker que vous souhaitez utiliser pour créer votre environnement, puis renseignez-la dans votre définition d’environnement.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

from azureml.core import Environment
myenv = Environment(name="myEnv")
myenv.docker.base_image = "pytorch/pytorch:latest"

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

env_docker_image = Environment(
    image="pytorch/pytorch:latest",
    name="docker-image-example",
    description="Environment created from a Docker image.",
)
ml_client.environments.create_or_update(env_docker_image)

Ressources

Informations d’identification du registre de conteneurs manquantes à l’aide d’un nom d’utilisateur ou d’un mot de passe

Causes potentielles :

  • Vous avez spécifié un nom d’utilisateur ou un mot de passe pour votre registre de conteneurs dans votre définition d’environnement, mais pas les deux.

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Ajoutez le nom d’utilisateur ou le mot de passe manquant à votre définition d’environnement pour résoudre le problème

myEnv.docker.base_image_registry.username = "username"

Vous pouvez aussi fournir l’authentification via des connexions d’espace de travail.

from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

Créez une connexion d’espace de travail à partir d’un fichier de spécification YAML

az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace

Notes

  • La spécification d’informations d’identification dans votre définition d’environnement n’est plus prise en charge. Utilisez à la place des connexions d’espace de travail.

Ressources

Plusieurs informations d’identification pour le registre d’images de base

Causes potentielles :

  • Vous avez spécifié plusieurs ensembles d’informations d’identification pour votre registre d’images de base

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Si vous utilisez des connexions d’espace de travail, affichez les connexions que vous avez définies et supprimez celles que vous ne voulez pas utiliser

from azureml.core import Workspace
ws = Workspace.from_config()
ws.list_connections()
ws.delete_connection("myConnection2")

Si vous avez spécifié des informations d’identification dans votre définition d’environnement, choisissez un ensemble d’informations d’identification à utiliser et définissez toutes les autres sur Null

myEnv.docker.base_image_registry.registry_identity = None

Notes

  • La spécification d’informations d’identification dans votre définition d’environnement n’est plus prise en charge. Utilisez à la place des connexions d’espace de travail.

Ressources

Secrets dans le registre d’images de base

Causes potentielles :

  • Vous avez spécifié des informations d’identification dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

La spécification d’informations d’identification dans votre définition d’environnement n’est plus prise en charge. Supprimez les informations d’identification de votre définition d’environnement et utilisez à la place des connexions d’espace de travail.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Définissez une connexion d’espace de travail sur votre espace de travail

from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "ACR", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

Créez une connexion d’espace de travail à partir d’un fichier de spécification YAML

az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace

Ressources

Attribut Docker déconseillé

Causes potentielles :

  • Vous avez spécifié dans votre définition d’environnement des attributs Docker qui sont désormais dépréciés
  • Les attributs suivants sont dépréciés :
    • enabled
    • arguments
    • shared_volumes
    • gpu_support
      • Désormais, Azure Machine Learning détecte et utilise automatiquement l’extension Docker NVIDIA quand elle est disponible
    • smh_size

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Au lieu de spécifier ces attributs dans la DockerSection de la définition de votre environnement, utilisez DockerConfiguration

Ressources

Longueur du fichier Dockerfile excessive

Causes potentielles :

  • Le Dockerfile que vous avez spécifié dépassait la taille maximale de 100 Ko

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Raccourcissez votre Dockerfile pour le faire passer sous cette limite

Ressources

Problèmes de contexte de build Docker

Emplacement de contexte de build Docker manquant

Causes potentielles :

  • Vous n’avez pas fourni le chemin de votre répertoire de contexte de build dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Incluez un chemin dans le build_context de votre DockerSection

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Veillez à inclure un chemin pour votre contexte de build

Ressources

Chemin d’accès dockerfile manquant

Ce problème peut se produire quand Azure Machine Learning ne trouve pas votre fichier Dockerfile. Par défaut, Azure Machine Learning recherche un fichier Dockerfile nommé « Dockerfile » à la racine de votre répertoire de contexte de génération, sauf si un chemin est spécifié pour le Dockerfile.

Causes potentielles :

  • Votre fichier Dockerfile n’est pas à la racine de votre répertoire de contexte de build et/ou est nommé différemment de « Dockerfile », et vous n’avez pas fourni son chemin

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Dans le build_context de votre DockerSection, incluez un dockerfile_path

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Spécifiez un chemin pour le Dockerfile

Ressources

Non autorisé à spécifier un attribut avec le contexte de build Docker

Ce problème peut se produire quand vous avez spécifié des propriétés dans votre définition d’environnement qui ne peuvent pas être incluses dans un contexte de build Docker.

Causes potentielles :

  • Vous avez spécifié un contexte de génération Docker ainsi qu’au moins une des propriétés suivantes dans votre définition d’environnement :
    • Variables d'environnement
    • Dépendances Conda.
    • R
    • Spark

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Si une des propriétés listées ci-dessus est spécifiée dans votre définition d’environnement, supprimez-la

  • Si vous utilisez un contexte de build Docker et que vous voulez spécifier des dépendances conda, votre spécification conda doit se trouver dans votre répertoire de contexte de build.

Ressources

Type d’emplacement non pris en charge/Type d’emplacement inconnu

Causes potentielles :

  • Vous avez spécifié un type d’emplacement pour votre contexte de build Docker qui n’est pas pris en charge ou qui est inconnu

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Voici les types d’emplacement acceptés :

Ressources

Emplacement non valide

Causes potentielles :

  • L’emplacement spécifié de votre contexte de build Docker n’est pas valide

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Pour les scénarios où vous stockez votre contexte de build Docker dans un compte de stockage

  • Vous devez spécifier le chemin d’accès du contexte de génération comme

    https://<storage-account>.blob.core.windows.net/<container>/<path>

  • Vérifiez que l’emplacement que vous avez fourni est une URL valide

  • Vérifiez que vous avez spécifié un conteneur et un chemin

Ressources

Problèmes liés à l’image de base

L’image de base est déconseillée

Causes potentielles :

  • Vous avez utilisé une image de base dépréciée
    • Azure Machine Learning ne peut pas fournir de prise en charge de la résolution des problèmes pour les builds ayant échoué avec des images dépréciées
    • Azure Machine Learning ne met pas à jour ou ne gère pas ces images, donc elles risquent d’être vulnérables

Les images de base suivantes sont déconseillées :

  • azureml/base
  • azureml/base-gpu
  • azureml/base-lite
  • azureml/intelmpi2018.3-cuda10.0-cudnn7-ubuntu16.04
  • azureml/intelmpi2018.3-cuda9.0-cudnn7-ubuntu16.04
  • azureml/intelmpi2018.3-ubuntu16.04
  • azureml/o16n-base/python-slim
  • azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu16.04
  • azureml/openmpi3.1.2-ubuntu16.04
  • azureml/openmpi3.1.2-cuda10.0-cudnn7-ubuntu18.04
  • azureml/openmpi3.1.2-cuda10.1-cudnn7-ubuntu18.04
  • azureml/openmpi3.1.2-cuda10.2-cudnn7-ubuntu18.04
  • azureml/openmpi3.1.2-cuda10.2-cudnn8-ubuntu18.04
  • azureml/openmpi3.1.2-ubuntu18.04
  • azureml/openmpi4.1.0-cuda11.0.3-cudnn8-ubuntu18.04
  • azureml/openmpi4.1.0-cuda11.1-cudnn8-ubuntu18.04

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Mettez à niveau votre image de base vers la dernière version des images prises en charge

Aucune balise ou synthèse

Causes potentielles :

  • Vous n’avez pas inclus une étiquette de version ou une synthèse sur votre image de base spécifiée
  • Sans un de ces spécificateurs, l’environnement n’est pas reproductible

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Incluez au moins un des spécificateurs suivants sur votre image de base

Problèmes liés aux variables d’environnement

Variables d’exécution mal placées

Causes potentielles :

  • Vous avez spécifié des variables d’exécution dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Utiliser l’attribut environment_variables sur l’objet RunConfiguration à la place

Problèmes liés à Python

Section Python manquante

Causes potentielles :

  • Votre définition d’environnement n’a pas de section Python

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Renseignez la section Python de votre définition d’environnement

Version Python manquante

Causes potentielles :

  • Vous n’avez pas spécifié une version de Python dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Ajoutez Python en tant que package conda et spécifiez la version

from azureml.core.environment import CondaDependencies

myenv = Environment(name="myenv")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

Si vous utilisez un fichier YAML pour votre spécification conda, incluez Python en tant que dépendance

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - azureml-defaults
channels:
  - anaconda

Plusieurs versions de Python

Causes potentielles :

  • Vous avez spécifié plusieurs versions de Python dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Choisissez la version de Python que vous voulez utiliser et supprimez toutes les autres versions

myenv.python.conda_dependencies.remove_conda_package("python=3.8")

Si vous utilisez un fichier YAML pour votre spécification conda, incluez une seule version de Python comme dépendance

Version Python non prise en charge

Causes potentielles :

  • Vous avez spécifié une version de Python qui est en fin de vie ou proche de celle-ci, et qui n’est plus prise en charge

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Spécifier une version de Python qui n’a pas atteint ou qui n’est pas proche de sa fin de vie

Causes potentielles :

  • Vous avez spécifié une version de Python qui est en fin de vie ou qui est proche de celle-ci

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Spécifier une version de Python qui n’a pas atteint ou qui n’est pas proche de sa fin de vie

Échec de validation de la version de Python

Causes potentielles :

  • Vous avez spécifié une version de Python avec une syntaxe incorrecte ou une mise en forme incorrecte

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Utilisez la syntaxe correcte pour spécifier une version de Python en utilisant le SDK

myenv.python.conda_dependencies.add_conda_package("python=3.8")

Utilisez la syntaxe correcte pour spécifier une version de Python dans un fichier YAML conda

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - azureml-defaults
channels:
  - anaconda

Ressources

Problèmes Conda

Dépendances conda manquantes

Causes potentielles :

  • Vous n’avez pas fourni de spécification conda dans votre définition d’environnement et user_managed_dependencies est défini sur False (la valeur par défaut)

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Si vous ne voulez pas qu’Azure Machine Learning crée un environnement Python pour vous en fonction de conda_dependencies,, définissez user_managed_dependencies sur True

env.python.user_managed_dependencies = True
  • Vous devez vérifier que tous les packages nécessaires sont disponibles dans l’environnement Python où vous choisissez d’exécuter le script

Si vous voulez qu’Azure Machine Learning crée un environnement Python pour vous en fonction d’une spécification Conda, vous devez renseigner conda_dependencies dans votre définition d’environnement

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Vous devez spécifier une image Docker de base pour l’environnement et Azure Machine Learning va créer l’environnement Conda sur cette image

Ressources

Dépendances conda non valides

Causes potentielles :

  • Vous n’avez pas mis en forme correctement les dépendances Conda spécifiées dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Vérifiez que conda_dependencies est une version adaptée à JSON de la structure YAML des dépendances conda

"condaDependencies": {
    "channels": [
    "anaconda",
        "conda-forge"
    ],
    "dependencies": [
        "python=3.8",
        {
            "pip": [
                "azureml-defaults"
            ]
        }
    ],
    "name": "project_environment"
}

Vous pouvez également spécifier des dépendances Conda à l’aide de la méthode add_conda_package

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Vous devez spécifier une image Docker de base pour l’environnement et Azure Machine Learning va créer l’environnement Conda sur cette image

Canaux conda manquants

Causes potentielles :

  • Vous n’avez pas spécifié de canaux conda dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Pour la reproductibilité de votre environnement, spécifiez des canaux à partir desquels extraire des dépendances. Si vous ne spécifiez pas de canaux Conda, Conda utilise des valeurs par défaut qui peuvent changer.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Ajoutez un canal conda en utilisant le SDK Python

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
conda_dep = CondaDependencies()
conda_dep.add_channel("conda-forge")
env.python.conda_dependencies = conda_dep

Si vous utilisez un fichier YAML pour votre spécification conda, incluez le ou les canaux conda que vous souhaitez utiliser

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - azureml-defaults
channels:
  - anaconda
  - conda-forge

Ressources

Causes potentielles :

  • Vous avez spécifié un environnement conda de base dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Les mises à jour partielles de l’environnement peuvent entraîner des conflits de dépendances et/ou des erreurs d’exécution inattendues : l’utilisation d’environnements conda de base n’est donc pas recommandée.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Supprimez votre environnement conda de base et spécifiez tous les packages nécessaires pour votre environnement dans la section conda_dependencies de votre définition d’environnement

from azureml.core.environment import CondaDependencies

env = Environment(name="env")
env.python.base_conda_environment = None
conda_dep = CondaDependencies()
conda_dep.add_conda_package("python==3.8")
env.python.conda_dependencies = conda_dep

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

S’APPLIQUE À : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

Définissez un environnement en utilisant un fichier de configuration YAML conda standard

Ressources

Dépendances non épinglées

Causes potentielles :

  • Vous n’avez pas spécifié de versions pour certains packages dans votre spécification conda

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Si vous ne spécifiez aucune version de dépendance, le programme de résolution de package Conda peut choisir une autre version du package sur les builds suivantes du même environnement. Ceci annule la reproductibilité de l’environnement et peut entraîner des erreurs inattendues.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Incluez des numéros de version lors de l’ajout de packages à votre spécification conda

from azureml.core.environment import CondaDependencies

conda_dep = CondaDependencies()
conda_dep.add_conda_package("numpy==1.24.1")

Si vous utilisez un fichier YAML pour votre spécification conda, spécifiez des versions pour vos dépendances

name: project_environment
dependencies:
  - python=3.8
  - pip:
      - numpy=1.24.1
channels:
  - anaconda
  - conda-forge

Ressources

Problèmes pip

Pip non spécifié

Causes potentielles :

  • Vous n’avez pas spécifié pip comme dépendance dans votre spécification conda

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Pour la reproductibilité, vous devez spécifier et épingler pip comme dépendance dans votre spécification Conda.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Spécifiez pip comme dépendance ainsi que sa version

env.python.conda_dependencies.add_conda_package("pip==22.3.1")

Si vous utilisez un fichier YAML pour votre spécification conda, spécifiez pip comme dépendance

name: project_environment
dependencies:
  - python=3.8
  - pip=22.3.1
  - pip:
      - numpy=1.24.1
channels:
  - anaconda
  - conda-forge

Ressources

Pip non épinglé

Causes potentielles :

  • Vous n’avez pas spécifié de version pour pip dans votre spécification conda

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Si aucune version de pip n’est spécifiée, une version différente peut être utilisée sur les builds suivantes du même environnement. Ceci peut entraîner des problèmes de reproductibilité et d’autres erreurs inattendues si différentes versions de pip résolvent vos packages différemment.

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Spécifiez une version de pip dans vos dépendances conda

env.python.conda_dependencies.add_conda_package("pip==22.3.1")

Si vous utilisez un fichier YAML pour votre spécification conda, spécifiez une version pour pip

name: project_environment
dependencies:
  - python=3.8
  - pip=22.3.1
  - pip:
      - numpy=1.24.1
channels:
  - anaconda
  - conda-forge

Ressources

Problèmes divers liés à l’environnement

La section R est déconseillée

Causes potentielles :

  • Vous avez spécifié une section R dans votre définition d’environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Le SDK Azure Machine Learning pour R a été déprécié fin 2021 pour céder la place à une expérience R d’entraînement et de déploiement améliorée en utilisant Azure CLI v2

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

Supprimez la section R de votre définition d’environnement

env.r = None

Consultez le dépôt d’exemples pour commencer à entraîner des modèles R en utilisant Azure CLI v2

Aucune définition n’existe pour l’environnement

Causes potentielles :

  • Vous avez spécifié un environnement qui n’existe pas ou qui n’a pas été inscrit
  • Une faute d’orthographe ou une erreur syntaxique s’est produite dans la façon dont vous avez spécifié le nom de votre environnement ou la version de votre environnement

Zones affectées (symptômes) :

  • Échec de l’inscription de votre environnement

Étapes de dépannage

Vérifiez que vous spécifiez correctement le nom de votre environnement ainsi que la version correcte

  • path-to-resource:version-number

Vous devez spécifier la « dernière » version de votre environnement d’une autre manière

  • path-to-resource@latest

Problèmes de génération d’images

Problèmes liés à ACR

ACR inaccessible

Ce problème peut se produire en cas d’échec d’accès à la ressource Azure Container Registry (ACR) associée à un espace de travail.

Causes potentielles :

  • L’ACR de votre espace de travail se trouve derrière un réseau virtuel (VNet) (point de terminaison privé ou point de terminaison de service), et vous n’utilisez aucun cluster de calcul pour générer des images.
  • L’ACR de votre espace de travail se trouve derrière un réseau virtuel (point de terminaison privé ou point de terminaison de service), et le cluster de calcul utilisé pour la génération d’images n’a pas accès à l’ACR de l’espace de travail.

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.
  • Échecs de travaux du pipeline.
  • Échecs de déploiement du modèle.

Étapes de dépannage

  • Vérifiez que le commutateur virtuel du cluster de calcul dispose d’un accès à l’ACR de l’espace de travail.
  • Vérifiez que le cluster de calcul est basé sur le processeur.

Remarque

  • Seuls les clusters de calcul Azure Machine Learning sont pris en charge. Le calcul, Azure Kubernetes Service (AKS) ou les autres types d’instance ne sont pas pris en charge pour le calcul de génération d’image.

Ressources

Format Dockerfile inattendu

Ce problème peut se produire lorsque votre fichier Dockerfile est mis en forme incorrectement.

Causes potentielles :

  • Votre fichier Dockerfile contient une syntaxe non valide
  • Votre fichier Docker contient des caractères qui ne sont pas compatibles avec UTF-8

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car l’environnement est généré implicitement à la première étape.

Étapes de dépannage

  • Vérifiez que Dockerfile est correctement mis en forme et qu’il est encodé en UTF-8

Ressources

Problèmes d’extraction Docker

Échec de l’extraction de l’image Docker

Ce problème peut se produire lorsqu’une extraction d’image Docker échoue pendant une build d’image.

Causes potentielles :

  • Le nom du chemin d’accès au registre de conteneurs est incorrect
  • Un registre de conteneurs derrière un réseau virtuel utilise un point de terminaison privé dans une région non prise en charge
  • L’image que vous essayez de référence n’existe pas dans le registre de conteneurs que vous avez spécifié
  • Vous n’avez pas fourni les informations d’identification d’un registre privé à partir duquel vous essayez d’extraire l’image, ou les informations d’identification fournies sont incorrectes

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Vérifiez que le nom du chemin d’accès à votre registre de conteneurs est correct

Si votre registre de conteneurs est derrière un réseau virtuel ou utilise un point de terminaison privé dans une région non prise en charge

  • Configurez le registre des conteneurs en utilisant le point de terminaison du service (accès public) à partir du portail et réessayez
  • Une fois que vous avez placé le registre de conteneurs derrière un réseau virtuel, exécutez le modèle Azure Resource Manager pour que l’espace de travail puisse communiquer avec l’instance de registre de conteneurs

Si l’image que vous essayez de référence n’existe pas dans le registre de conteneurs que vous avez spécifié

  • Vérifiez que vous avez utilisé la balise correcte et que vous avez défini user_managed_dependencies sur True. Définir user_managed_dependencies sur True désactive conda et utilise les packages installés de l’utilisateur

Si vous n’avez pas fourni les informations d’identification d’un registre privé à partir duquel vous essayez d’extraire, ou les informations d’identification fournies sont incorrectes

Ressources

Erreur d’E-S

Ce problème peut se produire quand le tirage d’une image Docker échoue en raison d’un problème réseau.

Causes potentielles :

  • Problème de connexion réseau, qui peut être temporaire
  • Un pare-feu bloque la connexion
  • ACR est inaccessible et il existe un isolement réseau. Pour plus d’informations, consultez ACR inaccessible.

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Ajouter l’hôte aux règles de pare-feu

Évaluez la configuration de votre espace de travail. Utilisez-vous un réseau virtuel, ou des ressources auxquelles vous essayez d’accéder lors de la génération de votre image se trouvent-elles derrière un réseau virtuel ?

  • Vérifier que vous avez suivi les étapes décrites dans cet article sur la sécurisation d’un espace de travail avec des réseaux virtuels
  • Azure Machine Learning nécessite un accès entrant et sortant à l’Internet public. En cas de problème avec la configuration de votre réseau virtuel, il peut y avoir un problème d’accès à certains dépôts nécessaires lors de la génération de votre image

Si vous n’utilisez pas de réseau virtuel ou si vous l’avez correctement configuré

  • Essayez de regénérer votre image. Si l’expiration du délai d’attente était dû à un problème réseau, le problème peut être temporaire et une regénération peut résoudre le problème

Problèmes conda lors de la génération

Mauvaise spécification

Ce problème peut se produire lorsqu’un package répertorié dans votre spécification Conda n’est pas valide ou lorsque vous avez exécuté une commande Conda de manière incorrecte.

Causes potentielles :

  • La syntaxe que vous avez utilisée dans votre spécification conda est incorrecte
  • Vous exécutez une commande conda incorrectement

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Des erreurs de spécification Conda peuvent se produire si vous utilisez la commande create conda de manière incorrecte

  • Lisez la documentation et vérifiez que vous utilisez des options et une syntaxe valides
  • Il existe une confusion connue concernant et conda env createconda create. Vous pouvez en savoir plus sur la réponse de conda et les solutions connues d’autres utilisateurs ici

Pour garantir la réussite de la génération, vérifiez que vous utilisez la syntaxe appropriée et la spécification de package valide dans votre yaml conda

Erreur de communication

Ce problème peut se produire en cas d’échec de la communication avec l’entité à partir de laquelle vous souhaitez télécharger les packages répertoriés dans votre spécification conda.

Causes potentielles :

  • Échec de communication avec un canal conda ou un référentiel de package
  • Ces échecs peuvent être dus à des défaillances réseau temporaires

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Vérifiez que les canaux/dépôts conda que vous utilisez dans votre spécification conda sont corrects

  • Vérifiez qu’ils existent et que vous les avez orthographiés correctement

Si les canaux/référentiels conda sont corrects

  • Essayez de reconstruire l’image: il est possible que l’échec soit temporaire, et une reconstruction peut résoudre le problème
  • Vérifiez que les packages répertoriés dans votre spécification conda existent dans les canaux/dépôts que vous avez spécifiés

Erreur de compilation

Ce problème peut se produire en cas d’échec de génération d’un package nécessaire pour l’environnement conda en raison d’une erreur du compilateur.

Causes potentielles :

  • Vous avez orthographié un package incorrectement et il n’a donc pas été reconnu
  • Il y a un problème avec le compilateur

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Si vous utilisez un compilateur

  • Vérifiez que le compilateur que vous utilisez est reconnu
  • Si nécessaire, ajoutez une étape d’installation à votre fichier Dockerfile
  • Vérifiez la version de votre compilateur, et vérifiez que toutes les commandes ou options que vous utilisez sont compatibles avec la version du compilateur
  • Si nécessaire, mettez à niveau la version de votre compilateur

Vérifiez que vous avez orthographié correctement tous les packages répertoriés et que vous avez épinglé correctement les versions

Ressources

Commande manquante

Ce problème peut se produire lorsqu’une commande n’est pas reconnue lors de la génération d’image ou dans l’exigence de package Python spécifiée.

Causes potentielles :

  • Vous n’avez pas orthographié la commande correctement
  • Impossible d’exécuter la commande, car un package nécessaire n’est pas installé

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

  • Vérifiez que vous avez orthographié la commande correctement
  • Vérifiez que les packages nécessaires à l’exécution de la commande que vous essayez de réaliser sont installés
  • Si nécessaire, ajoutez une étape d’installation à votre fichier Dockerfile

Ressources

Délai d’expiration conda

Ce problème peut se produire lorsque la résolution du package Conda prend trop de temps.

Causes potentielles :

  • Il existe un grand nombre de packages répertoriés dans votre spécification conda et les packages inutiles sont inclus
  • Vous n’avez pas épinglé vos dépendances (vous avez inclus tensorflow au lieu de tensorflow=2.8)
  • Vous avez répertorié les packages pour lesquels il n’existe aucune solution (vous avez inclus le package X=1.3 et Y=2.8, mais la version de X est incompatible avec la version de Y)

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Mémoire insuffisante

Ce problème peut se produire lorsque la résolution du package Conda échoue en raison de l’épuisement de la mémoire disponible.

Causes potentielles :

  • Il existe un grand nombre de packages répertoriés dans votre spécification conda et les packages inutiles sont inclus
  • Vous n’avez pas épinglé vos dépendances (vous avez inclus tensorflow au lieu de tensorflow=2.8)
  • Vous avez répertorié les packages pour lesquels il n’existe aucune solution (vous avez inclus le package X=1.3 et Y=2.8, mais la version de X est incompatible avec la version de Y)

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Package introuvable

Ce problème peut se produire lorsqu’un ou plusieurs packages conda répertoriés dans votre spécification sont introuvables dans un canal/référentiel.

Causes potentielles :

  • Vous avez listé le nom ou la version du package de manière incorrecte dans votre spécification Conda
  • Le package existe dans un canal conda que vous n’avez pas listé dans votre spécification conda

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

  • Vérifiez que vous avez orthographié le package correctement et que la version spécifiée existe
  • Vérifiez que le package existe sur le canal que vous ciblez
  • Vérifiez que vous avez répertorié le canal/référentiel dans votre spécification Conda afin que le package puisse être correctement extrait pendant la résolution du package

Spécifiez les canaux dans votre spécification conda :

channels:
  - conda-forge
  - anaconda
dependencies:
  - python=3.8
  - tensorflow=2.8
Name: my_environment

Ressources

Module Python manquant

Ce problème peut se produire lorsqu’un module Python répertorié dans votre spécification conda n’existe pas ou n’est pas valide.

Causes potentielles :

  • Vous avez orthographié le module de manière incorrecte
  • Le module n’est pas reconnu

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

  • Vérifiez que vous avez orthographié correctement le module et qu’il existe
  • Vérifiez que le module est compatible avec la version de Python que vous avez spécifiée dans votre spécification conda
  • Si vous n’avez pas répertorié une version spécifique de Python dans votre spécification conda, veillez à répertorier une version spécifique compatible avec votre module. Sinon, une version par défaut qui n’est pas compatible peut être utilisée

Épinglez une version de Python compatible avec le module pip que vous utilisez :

channels:
  - conda-forge
  - anaconda
dependencies:
  - python=3.8
  - pip:
    - dataclasses
Name: my_environment

Aucune distribution correspondante

Ce problème peut se produire quand aucun package ne correspond à la version que vous avez spécifiée.

Causes potentielles :

  • Vous avez orthographié le nom du package de manière incorrecte
  • Le package et la version sont introuvables sur les canaux ou flux que vous avez spécifiés
  • La version que vous avez spécifiée n’existe pas

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

  • Vérifiez que vous avez orthographié correctement le package et qu’il existe
  • Vérifiez que la version que vous avez spécifiée pour le package existe
  • Vérifiez que vous avez spécifié le canal à partir duquel installer le package. Si vous ne spécifiez pas de canal, les valeurs par défaut sont utilisées, et peuvent ou non avoir le package que vous recherchez

Comment lister des canaux dans une spécification conda yaml :

channels:
  - conda-forge
  - anaconda
dependencies:
  - python = 3.8
  - tensorflow = 2.8
Name: my_environment

Ressources

Impossible de générer mpi4py

Ce problème peut se produire en cas d’échec de la génération de roues pour mpi4py.

Causes potentielles :

  • Les exigences pour que l’installation de mpi4py réussisse ne sont pas remplies
  • Il y a un problème avec la méthode que vous avez choisie pour installer mpi4py

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Vérifiez que vous avez une installation MPI opérationnelle (de préférence avec prise en charge de MPI-3 et génération de MPI avec des bibliothèques partagées/dynamiques)

Vérifiez que vous utilisez une version Python compatible

  • Python 3.8+ est recommandé, car les versions antérieures arrivent en fin de vie.
  • Consultez Installation de mpi4py

Ressources

L’authentification interactive a été tentée

Ce problème peut se produire quand pip tente une authentification interactive durant l’installation du package.

Causes potentielles :

  • Vous avez indiqué un package qui nécessite une authentification, mais vous n’avez pas fourni d’informations d’identification
  • Pendant la génération de l’image, pip a essayé de vous inviter à vous authentifier. Ceci a fait échouer la génération, car vous ne pouvez pas fournir d’authentification interactive pendant une génération

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Fournissez l’authentification via des connexions d’espace de travail

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

from azureml.core import Workspace
ws = Workspace.from_config()
ws.set_connection("connection1", "PythonFeed", "<URL>", "Basic", "{'Username': '<username>', 'Password': '<password>'}")

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

Créez une connexion d’espace de travail à partir d’un fichier de spécification YAML

az ml connection create --file connection.yml --resource-group my-resource-group --workspace-name my-workspace

Ressources

Objet blob interdit

Ce problème peut se produire en cas de rejet d’une tentative d’accès à un objet blob dans un compte de stockage.

Causes potentielles :

  • La méthode d’autorisation que vous utilisez pour accéder au compte de stockage n’est pas valide
  • Vous tentez d’autoriser l’accès avec une signature d’accès partagé (SAS), mais le jeton SAS a expiré ou n’est pas valide

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Lisez ce qui suit pour comprendre comment autoriser l’accès aux données d’objets blob dans le portail Azure

Lisez ce qui suit pour comprendre comment autoriser l’accès aux données dans le stockage Azure

Lisez ce qui suit si vous souhaitez utiliser SAS pour accéder aux ressources de stockage Azure

Build Horovod

Ce problème peut se produire quand l’environnement conda ne peut être créé ou mis à jour en raison de l’échec de la génération de Horovod.

Causes potentielles :

  • L’installation de Horovod nécessite d’autres modules que vous n’avez pas installés
  • L’installation de Horovod nécessite certaines bibliothèques que vous n’avez pas incluses

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

De nombreux problèmes peuvent entraîner l’échec de Horovod. Une liste complète de ces problèmes est disponible dans la documentation Horovod.

  • Consultez le guide de résolution des problèmes Horovod
  • Passez en revue votre journal de génération pour voir si un message d’erreur y a été ajouté au moment de l’échec de la génération de Horovod
  • Il est possible que le problème que vous rencontrez soit détaillé dans le guide de résolution des problèmes Horovod et qu’une solution y soit proposée

Ressources

Commande Conda introuvable

Ce problème peut se produire lorsque la commande conda n’est pas reconnue lors de la création ou de la mise à jour de l’environnement conda.

Causes potentielles :

  • Vous n’avez pas installé Conda dans l’image de base que vous utilisez
  • Vous n’avez pas installé Conda par le biais de votre fichier Dockerfile avant d’essayer d’exécuter la commande Conda
  • Vous n’avez pas inclus Conda dans votre chemin, ou vous ne l’avez pas ajouté à votre chemin

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Vérifiez que figure une étape d’installation conda dans votre fichier Dockerfile avant d’essayer d’exécuter des commandes conda.

Si vous avez essayé d’installer conda et que vous rencontrez ce problème, vérifiez que vous avez ajouté conda à votre chemin.

Ressources

Version python incompatible

Ce problème peut se produire quand un package spécifié dans votre environnement conda n’est pas compatible avec votre version de Python spécifiée.

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Utilisez une autre version du package compatible avec votre version de Python spécifiée.

Vous pouvez également utiliser une autre version de Python compatible avec le package que vous avez spécifié.

  • Si vous modifiez votre version de Python, utilisez une version prise en charge dont la fin de vie n’est pas pour bientôt.
  • Consultez les dates de fin de vie de Python.

Ressources

Redirection nue Conda

Ce problème peut se produire quand vous avez spécifié un package sur la ligne de commande en utilisant «<» ou «>» sans utiliser de guillemets. Cette syntaxe peut entraîner l’échec de la création ou de la mise à jour de l’environnement Conda.

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Ajouter des guillemets autour de la spécification du package

  • Par exemple, remplacez conda install -y pip<=20.1.1 par conda install -y "pip<=20.1.1"

Erreur de décodage UTF-8

Ce problème peut se produire en cas d’échec du décodage d’un caractère dans votre spécification conda. 

Causes potentielles :

  • Votre fichier YAML conda contient des caractères qui ne sont pas compatibles avec UTF-8.

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Problèmes pip lors de la génération

Échec de l’installation des packages

Ce problème peut se produire quand la génération de votre image échoue pendant l’installation du package Python.

Causes potentielles :

  • De nombreux problèmes peuvent être à l’origine de cette erreur.
  • Ce message est générique et apparaît lorsque l’analyse Azure Machine Learning ne couvre pas encore l’erreur que vous rencontrez

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Consultez votre journal de build pour plus d’informations sur l’échec de la génération de votre image.

Laissez des commentaires à l’équipe Azure Machine Learning pour analyser l’erreur que vous rencontrez

Impossible de désinstaller le package

Ce problème peut se produire quand pip ne parvient pas à désinstaller un package Python qui a été installé par le biais du gestionnaire de package du système d’exploitation.

Causes potentielles :

  • Un problème pip existant ou une version pip problématique
  • Un problème lié à la non-utilisation d’un environnement isolé

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Lisez les informations suivantes pour déterminer si votre échec est dû à un problème pip existant

Essayez ceci :

pip install --ignore-installed [package]

Essayez de créer un environnement séparé en utilisant conda.

Opérateur non valide

Ce problème peut se produire lorsque pip ne parvient pas à installer un package Python en raison d’un opérateur non valide trouvé dans l’exigence.

Causes potentielles :

  • Un opérateur non valide est trouvé dans l’exigence du package Python

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

  • Vérifiez que vous avez orthographié le package correctement et que la version spécifiée existe
  • Vérifiez que votre spécificateur de version de package est mis en forme correctement et que vous utilisez des opérateurs de comparaison valides. Consultez Spécificateurs de version
  • Remplacez l’opérateur non valide par l’opérateur recommandé dans le message d’erreur

Aucune distribution correspondante

Ce problème peut se produire quand aucun package ne correspond à la version que vous avez spécifiée.

Causes potentielles :

  • Vous avez orthographié le nom du package de manière incorrecte
  • Le package et la version sont introuvables sur les canaux ou flux que vous avez spécifiés
  • La version que vous avez spécifiée n’existe pas

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

  • Vérifiez que vous avez orthographié correctement le package et qu’il existe
  • Vérifiez que la version que vous avez spécifiée pour le package existe
  • Exécutez pip install --upgrade pip, puis exécutez de nouveau la commande d’origine
  • Vérifiez que le pip que vous utilisez peut installer des packages pour la version de Python souhaitée. Consultez Dois-je utiliser pip ou pip3 ?

Ressources

Nom de fichier wheel non valide

Ce problème peut se produire lorsque vous avez spécifié un fichier wheel de manière incorrecte.

Causes potentielles :

  • Vous avez orthographié le nom du fichier wheel incorrectement ou utilisé une mise en forme incorrecte
  • Le fichier wheel que vous avez spécifié est introuvable

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Créer des problèmes

Aucune cible spécifiée et aucun makefile trouvé

Ce problème peut se produire lorsque vous n’avez spécifié aucune cible et qu’aucun makefile n’est trouvé lors de l’exécution de make.

Causes potentielles :

  • Makefile n’existe pas dans le répertoire actif
  • Aucune cible n’est spécifiée

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

  • Vérifiez que vous avez orthographié le makefile correctement
  • Vérifier que le makefile existe dans le répertoire actif
  • Si vous avez un makefile personnalisé, spécifiez-le à l’aide de make -f custommakefile
  • Spécifiez des cibles dans le makefile ou dans la ligne de commande
  • Configurez votre build et générer un makefile
  • Vérifiez que vous avez correctement mis en forme votre makefile et que vous avez utilisé des onglets pour la mise en retrait

Ressources

Problèmes de copie

Fichier introuvable

Ce problème peut se produire lorsque Docker ne parvient pas à trouver et copier un fichier.

Causes potentielles :

  • Fichier source introuvable dans le contexte de build Docker
  • Fichier source exclu par .dockerignore

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car l’environnement est généré implicitement à la première étape.

Étapes de dépannage

  • Vérifiez que le fichier source existe dans le contexte de build Docker
  • Vérifier que les chemins d’accès source et de destination existent et sont correctement orthographiés
  • Vérifiez que le fichier source n’est pas répertorié dans les .dockerignore répertoires actuels et parents
  • Supprimer les commentaires de fin de la même ligne que la COPY commande

Ressources

Problèmes Apt-Get

Échec de l’exécution de la commande apt-get

Ce problème peut se produire lorsque apt-get ne parvient pas à s’exécuter.

Causes potentielles :

  • Problème de connexion réseau, qui peut être temporaire
  • Dépendances rompues liées au package sur lequel vous exécutez apt-get
  • Vous ne disposez pas des autorisations appropriées pour utiliser la commande apt-get

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car l’environnement est généré implicitement à la première étape.

Étapes de dépannage

  • Vérifiez votre connexion réseau et vos paramètres DNS
  • Exécuter apt-get check pour vérifier les dépendances rompues
  • Exécutez apt-get update, puis exécutez de nouveau votre commande d’origine
  • Exécutez la commande avec l’indicateur -f, qui essaiera de résoudre le problème provenant des dépendances rompues
  • Exécutez la commande avec des autorisations sudo, telles que sudo apt-get install <package-name>

Ressources

Problèmes liés à l’envoi (push) de Docker

Échec du stockage de l’image Docker

Ce problème peut se produire en cas d’échec de l’envoi d’une image Docker à un registre de conteneurs.

Causes potentielles :

  • Un problème temporaire s’est produit avec l’ACR associé à l’espace de travail
  • Un registre de conteneurs derrière un réseau virtuel utilise un point de terminaison privé dans une région non prise en charge

Zones affectées (symptômes) :

  • Échec lors de la build d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Réessayez la build de l’environnement si vous pensez qu’il s’agit d’un problème temporaire avec le registre Azure Container Registry (ACR) de l’espace de travail

Si votre registre de conteneurs est derrière un réseau virtuel ou utilise un point de terminaison privé dans une région non prise en charge

  • Configurez le registre des conteneurs en utilisant le point de terminaison du service (accès public) à partir du portail et réessayez
  • Une fois que vous avez placé le registre de conteneurs derrière un réseau virtuel, exécutez le modèle Azure Resource Manager pour que l’espace de travail puisse communiquer avec l’instance de registre de conteneurs

Si vous n’utilisez pas de réseau virtuel ou si vous l’avez correctement configuré, vérifiez que vos informations d’identification sont correctes pour votre registre ACR en essayant d’effectuer une build locale simple

Commande Docker inconnue

Instruction Docker inconnue

Ce problème peut se produire lorsque Docker ne reconnaît pas une instruction dans le fichier Dockerfile.

Causes potentielles :

  • Instruction Docker inconnue utilisée dans Dockerfile
  • Votre fichier Dockerfile contient une syntaxe non valide

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car l’environnement est généré implicitement à la première étape.

Étapes de dépannage

  • Vérifiez que la commande Docker est valide et ne comporte pas d’erreurs
  • Vérifiez qu’il existe un espace entre la commande Docker et les arguments
  • Vérifiez qu’il n’y a pas d’espace blanc inutile dans le fichier Dockerfile
  • Vérifiez que Dockerfile est correctement mis en forme et qu’il est encodé en UTF-8

Ressources

Commande introuvable

Commande non reconnue

Ce problème peut se produire lorsque la commande en cours d’exécution n’est pas reconnue.

Causes potentielles :

  • Vous n’avez pas installé la commande par le biais de votre fichier Dockerfile avant d’essayer d’exécuter la commande
  • Vous n’avez pas inclus la commande dans votre chemin, ou vous ne l’avez pas ajoutée à votre chemin

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car l’environnement est généré implicitement à la première étape.

Étapes de résolution des problèmes Assurez-vous que vous disposez d’une étape d’installation pour la commande dans votre fichier Dockerfile avant d’essayer d’exécuter la commande

Si vous avez essayé d’installer la commande et que vous rencontrez ce problème, vérifiez que vous l’avez ajoutée à votre chemin

Problèmes de build divers

Journal de génération indisponible

Causes potentielles :

  • Azure Machine Learning n’est pas autorisé à stocker vos journaux de build dans votre compte de stockage
  • Une erreur temporaire s’est produite lors de l’enregistrement de vos journaux de build
  • Une erreur système s’est produite avant le déclenchement de la build de l’image

Zones affectées (symptômes) :

  • Une build réussie, mais aucun journal disponible.
  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car Azure Machine Learning génère implicitement l’environnement à la première étape.

Étapes de dépannage

Une nouvelle build peut résoudre le problème s’il est temporaire

Image introuvable

Ce problème peut survenir lorsque l’image de base spécifiée est introuvable.

Causes potentielles :

  • Vous avez incorrectement spécifié l’image
  • L’image indiquée n’existe pas dans le registre de conteneurs que vous avez spécifié

Zones affectées (symptômes) :

  • Échec dans la génération d’environnements à partir de l’interface utilisateur, du SDK et de l’interface CLI.
  • Échec dans les travaux en cours d’exécution, car l’environnement est généré implicitement à la première étape.

Étapes de dépannage

  • Vérifiez l’orthographe et la mise en forme adéquate de l’image de base
  • Assurez-vous de l’existence de l’image de base que vous utilisez dans le registre spécifié

Ressources