Gérer les espaces de travail Azure Machine Learning avec le Kit de développement logiciel (SDK) Python (v1)

S’APPLIQUE À :SDK Python azureml v1

Cet article explique comment créer, afficher et supprimer des espaces de travail Azure Machine Learning pour le service Azure Machine Learning à l’aide du Kit de développement logiciel (SDK) pour Python.

À mesure que vos besoins évoluent ou que les exigences en matière d’automatisation augmentent, vous pouvez également gérer des espaces de travail à l’aide de l’interface CLI ou via l’extension VS Code.

Prérequis

Limites

  • Lors de la création d’un espace de travail, vous pouvez soit créer automatiquement les services nécessaires à l’espace de travail, soit utiliser des services existants. Si vous voulez utiliser des services existants d’un autre abonnement Azure que l’espace de travail, vous devez inscrire l’espace de noms Azure Machine Learning dans l’abonnement qui contient ces services. Par exemple, la création d’un espace de travail dans l’abonnement A qui utilise un compte de stockage de l’abonnement B, l’espace de noms Azure Machine Learning doit être inscrit dans l’abonnement B pour que vous puissiez utiliser le compte de stockage avec l’espace de travail.

    Le fournisseur de ressources pour Azure Machine Learning est Microsoft.MachineLearningServices. Pour plus d’informations sur la façon de déterminer s’il est inscrit et de l’inscrire, consultez l’article Fournisseurs et types de ressources Azure.

    Important

    Cela s’applique uniquement aux ressources fournies lors de la création de l’espace de travail : comptes de stockage Azure, registre de conteneurs Azure, Azure Key Vault et Application Insights.

  • Par défaut, la création d’un espace de travail crée également une instance ACR (Azure Container Registry). Étant donné qu’ACR ne prend actuellement pas en charge les caractères Unicode dans le nom des groupes de ressources, utilisez un groupe de ressources qui n’en contient pas.

  • Azure Machine Learning ne prend pas en charge l’espace de noms hiérarchique (fonctionnalité d’Azure Data Lake Storage Gen2) pour le compte de stockage par défaut de l’espace de travail.

Conseil

Une instance Azure Application Insights est créée lorsque vous créez l’espace de travail. Si vous le souhaitez, vous pouvez supprimer l’instance Application Insights après la création du cluster. Sa suppression limite les informations collectées à partir de l’espace de travail, et peut compliquer la résolution des problèmes. Si vous supprimez l’instance Application Insights créée par l’espace de travail, vous ne pouvez pas la recréer sans supprimer et recréer l’espace de travail.

Pour plus d’informations sur l’utilisation de cette instance Application Insights, consultez Superviser et collecter des données à partir des points de terminaison de service web Machine Learning.

Créer un espace de travail

Vous pouvez créer un espace de travail directement dans Azure Machine Learning studio, avec des options limitées disponibles. Vous pouvez également utiliser l’une des méthodes ci-dessous pour un meilleur contrôle des options.

  • Spécification par défaut. Par défaut, les ressources dépendantes et le groupe de ressources sont créés automatiquement. Ce code crée un espace de travail nommé myworkspace et un groupe de ressources nommé myresourcegroup dans eastus2.

    S’APPLIQUE À :SDK Python azureml v1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='eastus2'
                   )
    

    Si vous disposez déjà d’un groupe de ressources Azure que vous souhaitez utiliser comme espace de travail, définissez create_resource_group sur False.

  • Locataires multiples. Si vous avez plusieurs comptes, ajoutez l’ID de locataire du service Azure Active Directory que vous souhaitez utiliser. Recherchez votre ID de locataire dans le portail Azure sous Azure Active Directory, Identités externes.

    S’APPLIQUE À :SDK Python azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Cloud souverain . Si vous travaillez dans un cloud souverain, vous aurez besoin de code supplémentaire pour vous authentifier auprès d’Azure.

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

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Utiliser des ressources Azure existantes. Vous pouvez également créer un espace de travail utilisant des ressources Azure existantes avec le format d’ID de ressource Azure. Recherchez les ID de ressource Azure spécifiques dans le portail Azure ou à l’aide du Kit de développement logiciel (SDK). Cet exemple suppose que le groupe de ressources, le compte de stockage, le coffre de clés, la fonctionnalité Application Insights et le registre de conteneurs existent déjà.

    S’APPLIQUE À :SDK Python azureml v1

    import os
    from azureml.core import Workspace
    from azureml.core.authentication import ServicePrincipalAuthentication
    
    service_principal_password = os.environ.get("AZUREML_PASSWORD")
    
    service_principal_auth = ServicePrincipalAuthentication(
        tenant_id="<tenant-id>",
        username="<application-id>",
        password=service_principal_password)
    
                          auth=service_principal_auth,
                               subscription_id='<azure-subscription-id>',
                               resource_group='myresourcegroup',
                               create_resource_group=False,
                               location='eastus2',
                               friendly_name='My workspace',
                               storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
                               key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
                               app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
                               container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
                               exist_ok=False)
    

Pour plus d’informations, consultez la Référence du Kit de développement logiciel (SDK) d’espace de travail.

Si vous rencontrez des problèmes pour accéder à votre abonnement, consultez Configurer l’authentification pour des ressources et workflows Azure Machine Learning, ainsi que le bloc-notes Authentification dans Azure Machine Learning.

Mise en réseau

Important

Pour plus d’informations sur l’utilisation d’un point de terminaison privé et d’un réseau virtuel avec votre espace de travail, consultez Isolement réseau et confidentialité.

Fournie par le SDK Python Azure Machine Learning, la classe PrivateEndpointConfig peut être utilisée avec Workspace.create() pour créer un espace de travail avec un point de terminaison privé. Cette classe nécessite un réseau virtuel existant.

Avancé

Par défaut, les métadonnées de l’espace de travail sont stockées dans une instance d’Azure Cosmos DB gérée par Microsoft. Les données sont chiffrées avec des clés managées par Microsoft.

Pour limiter les données que Microsoft collecte sur votre espace de travail, sélectionnez l’espace de travail HBI (High Business Impact) dans le portail, ou définissez dans Python. Pour plus d’informations sur ce paramètre, consultez Chiffrement au repos.

Important

Sélectionner High Business Impact ne peut être effectué que lors de la création d’un espace de travail. Vous ne pouvez pas modifier ce paramètre une fois l’espace de travail créé.

Utiliser votre propre clé de chiffrement de données

Vous pouvez fournir votre propre clé pour le chiffrement des données. Cela crée l’instance d’Azure Cosmos DB qui stocke les métadonnées dans votre abonnement Azure. Pour plus d’informations, consultez Clés gérées par le client pour Azure Machine Learning.

Pour fournir votre propre clé, procédez comme suit :

Important

Avant de commencer, vous devez effectuer les actions suivantes :

Suivez les étapes décrites dans Configurer les clés gérées par le client pour :

  • Inscrire le fournisseur Azure Cosmos DB
  • Créer et configurer un coffre Azure Key Vault
  • Générer une clé

Utilisez les valeurs cmk_keyvault et resource_cmk_uri pour spécifier la clé gérée par le client.

from azureml.core import Workspace
   ws = Workspace.create(name='myworkspace',
               subscription_id='<azure-subscription-id>',
               resource_group='myresourcegroup',
               create_resource_group=True,
               location='eastus2'
               cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>', 
               resource_cmk_uri='<key-identifier>'
               )

Télécharger un fichier de configuration

Si vous utiliserez une instance de calcul dans votre espace de travail pour exécuter votre code, ignorez cette étape. L’instance de calcul crée et stocke une copie de ce fichier pour vous.

Si vous envisagez d’utiliser sur votre environnement local du code faisant référence à cet espace de travail (ws), écrivez le fichier de configuration :

S’APPLIQUE À :SDK Python azureml v1

ws.write_config()

Placez le fichier dans la structure de répertoires avec vos scripts Python ou vos Jupyter Notebooks. Il peut se trouver dans le même répertoire, dans un sous-répertoire nommé .azureml ou dans un répertoire parent. Quand vous créez une instance de calcul, ce fichier est automatiquement ajouté dans le répertoire approprié sur la machine virtuelle.

Se connecter à un espace de travail

Dans votre code Python, vous créez un objet espace de travail à connecter à votre espace de travail. Ce code lira le contenu du fichier de configuration pour trouver votre espace de travail. Si vous n’êtes pas encore authentifié, vous recevez une invite pour vous connecter.

S’APPLIQUE À :SDK Python azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Locataires multiples. Si vous avez plusieurs comptes, ajoutez l’ID de locataire du service Azure Active Directory que vous souhaitez utiliser. Recherchez votre ID de locataire dans le portail Azure sous Azure Active Directory, Identités externes.

    S’APPLIQUE À :SDK Python azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • Cloud souverain . Si vous travaillez dans un cloud souverain, vous aurez besoin de code supplémentaire pour vous authentifier auprès d’Azure.

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

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.from_config(auth=interactive_auth)
    

Si vous rencontrez des problèmes pour accéder à votre abonnement, consultez Configurer l’authentification pour des ressources et workflows Azure Machine Learning, ainsi que le bloc-notes Authentification dans Azure Machine Learning.

Trouver un espace de travail

Consultez la liste de tous les espaces de travail que vous pouvez utiliser.

Recherchez vos abonnements dans la page Abonnements du portail Azure. Copiez l’ID et utilisez-le dans le code ci-dessous pour afficher tous les espaces de travail disponibles pour cet abonnement.

S’APPLIQUE À :SDK Python azureml v1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

La méthode Workspace.list (..) ne retourne pas l’objet espace de travail complet. Il comprend uniquement des informations de base sur les espaces de travail existants dans l’abonnement. Pour obtenir un objet complet pour un espace de travail spécifique, utilisez Workspace.get(..).

Supprimer un espace de travail

Lorsque vous n’avez plus besoin d’un espace de travail, supprimez-le.

Avertissement

Si la suppression réversible est activée pour l’espace de travail, celui-ci peut être récupéré après sa suppression. Si la suppression réversible n’est pas activée ou si vous sélectionnez l’option permettant de supprimer définitivement l’espace de travail, celui-ci ne peut plus être récupéré. Pour plus d'informations, consultez Récupérer un espace de travail supprimé.

Si vous avez supprimé accidentellement votre espace de travail, vous pouvez toujours récupérer vos blocs-notes. Pour plus de détails, voir Basculement de la continuité d’activité et reprise d’activité.

Supprimer l’espace de travail ws :

S’APPLIQUE À :SDK Python azureml v1

ws.delete(delete_dependent_resources=False, no_wait=False)

L’action par défaut ne consiste pas à supprimer les ressources associées à l’espace de travail, à savoir le registre de conteneurs, le compte de stockage, le coffre de clés et la fonctionnalité Application Insights. Définissez delete_dependent_resources sur True pour supprimer également ces ressources.

Nettoyer les ressources

Important

Les ressources que vous avez créées peuvent être utilisées comme prérequis pour d’autres tutoriels d’Azure Machine Learning et des articles de procédure.

Si vous n’avez pas l’intention d’utiliser les ressources que vous avez créées, supprimez-les pour éviter des frais :

  1. Dans le portail Azure, sélectionnez Groupes de ressources tout à gauche.

  2. Dans la liste, sélectionnez le groupe de ressources créé.

  3. Sélectionnez Supprimer le groupe de ressources.

    Capture d’écran des sélections permettant de supprimer un groupe de ressources dans le portail Azure.

  4. Entrez le nom du groupe de ressources. Puis sélectionnez Supprimer.

Dépannage

  • Navigateurs pris en charge dans Azure Machine Learning studio : Nous vous recommandons d’utiliser le navigateur le plus récent compatible avec votre système d’exploitation. Les opérateurs suivants sont pris en charge :

    • Microsoft Edge (le nouveau Microsoft Edge, la version la plus récente. Pas Microsoft Edge hérité)
    • Safari (dernière version, Mac uniquement)
    • Chrome (version la plus récente)
    • Firefox (version la plus récente)
  • Portail Azure:

    • Si vous accédez directement à votre espace de travail à partir d’un lien de partage provenant du kit SDK ou du Portail Azure, vous ne pourrez pas afficher la page Vue d’ensemble standard comportant des informations sur l’abonnement dans l’extension. Dans ce scénario, vous ne pouvez pas non plus basculer vers un autre espace de travail. Pour afficher un autre espace de travail, accédez directement à Azure Machine Learning Studio, puis recherchez le nom de l’espace de travail.
    • Toutes les ressources (données, expériences, calculs, etc.) sont uniquement disponibles dans Azure Machine Learning Studio. Ils ne sont pas disponibles dans le portail Azure.
    • La tentative d’exportation d’un modèle pour un espace de travail à partir du portail Azure peut retourner une erreur semblable au texte suivant : Could not get resource of the type <type>. Resources of this type will not be exported. Comme solution de contournement, utilisez l’un des modèles fournis dans https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices comme base pour votre modèle.

Diagnostics de l’espace de travail

Vous pouvez exécuter des diagnostics sur votre espace de travail à partir d’Azure Machine Learning studio ou du kit de développement logiciel (SDK) Python. Une fois les diagnostics exécutés, une liste de tous les problèmes détectés est retournée. Cette liste contient des liens vers des solutions possibles. Pour plus d’informations, consultez Comment utiliser les diagnostics de l’espace de travail.

Erreurs du fournisseur de ressources

Lors de la création d’un espace de travail Azure Machine Learning ou d’une ressource utilisée par l’espace de travail, vous pouvez recevoir un message d’erreur semblable aux messages suivants :

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

Par défaut, la plupart des fournisseurs de ressources sont enregistrés automatiquement. Si vous recevez ce message, vous devez inscrire le fournisseur mentionné.

Le tableau suivant contient la liste des fournisseurs de ressources requis par Azure Machine Learning :

Fournisseur de ressources Pourquoi il est nécessaire
Microsoft.MachineLearningServices Création de l’espace de travail Azure Machine Learning.
Microsoft.Storage Un compte Stockage Azure est utilisé comme stockage par défaut pour l’espace de travail.
Microsoft.ContainerRegistry Azure Container Registry est utilisé par l’espace de travail pour créer des images Docker.
Microsoft.KeyVault Azure Key Vault est utilisé par l’espace de travail pour stocker les secrets.
Microsoft.Notebooks/NotebookProxies Notebooks intégrés sur l’instance de calcul Azure Machine Learning.
Microsoft.ContainerService Si vous envisagez de déployer des modèles entraînés sur Azure Kubernetes Service.

Si vous prévoyez d’utiliser une clé gérée par le client avec Azure Machine Learning, les fournisseurs de services suivants doivent être inscrits :

Fournisseur de ressources Pourquoi il est nécessaire
Microsoft.DocumentDB/databaseAccounts Instance Azure CosmosDB qui journalise les métadonnées de l’espace de travail.
Microsoft.Search/searchServices La Recherche Azure fournit des fonctionnalités d’indexation pour l’espace de travail.

Pour plus d’informations sur l’inscription d’un fournisseur de ressources, consultez Résoudre les erreurs d’inscription de fournisseurs de ressources.

Suppression d'Azure Container Registry

L'espace de travail Azure Machine Learning utilise Azure Container Registry (ACR) pour certaines opérations. Il crée automatiquement une instance ACR dès qu'il en a besoin.

Avertissement

Une fois qu’un Azure Container Registry a été créé pour un espace de travail, ne le supprimez pas. Cela entraînerait l’arrêt de votre espace de travail Azure Machine Learning.

Étapes suivantes

Une fois que vous disposez d’un espace de travail, découvrez comment effectuer l’apprentissage d’un modèle, puis déployer celui-ci.

Pour en savoir plus sur la planification d’un espace de travail pour les besoins de votre organisation, consultez Organiser et configurer Azure Machine Learning.

Pour plus d’informations sur la façon de maintenir votre Azure Machine Learning à jour avec les dernières mises à jour de sécurité, consultez Gestion des vulnérabilités.