Fonctionnement d’Azure Machine Learning : ressources et éléments

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Cet article s’applique à la deuxième version de l’interface CLI et du SDK Python Azure Machine Learning (v2). Pour la version 1 (v1), consultez Fonctionnement d’Azure Machine Learning : architecture et concepts (v1)

Azure Machine Learning comprend plusieurs ressources et éléments qui vous permettent d’effectuer vos tâches Machine Learning. Ces ressources et éléments sont nécessaires pour exécuter un travail.

  • Ressources : ressources de configuration ou d’infrastructure nécessaires pour exécuter un workflow Lachine Learning. :
  • Éléments : créés en utilisant des commandes Azure Machine Learning ou dans le cadre d’une exécution d’entraînement/de scoring. Des versions des éléments sont créées et ceux-ci peuvent être inscrits dans l'espace de travail Azure Machine Learning. Ils comprennent :

Ce document fournit une vue d’ensemble rapide de ces ressources et éléments.

Prérequis

Pour utiliser les exemples de code du SDK Python dans cet article :

  1. Installer le kit de développement logiciel (SDK) SDK Python v2

  2. Créez une connexion à votre abonnement Azure Machine Learning. Les exemples s’appuient tous sur ml_client. Pour créer un espace de travail, la connexion n'a pas besoin d'un nom d'espace de travail, car vous n'en avez peut-être pas encore. Tous les autres exemples de cet article nécessitent que le nom de l’espace de travail soit inclus dans la connexion.

    # import required libraries
    from azure.ai.ml import MLClient
    from azure.ai.ml.entities import Workspace
    from azure.identity import DefaultAzureCredential
    
    # Enter details of your subscription
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    
    # get a handle to the subscription (use this if you haven't created a workspace yet)
    ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)
    
    # all other examples in this article require the connection to include workspace name
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Espace de travail

L’espace de travail est la ressource de niveau supérieur pour Azure Machine Learning. Il fournit un emplacement centralisé dans lequel exploiter tous les artefacts que vous créez lorsque vous utilisez Azure Machine Learning. L’espace de travail conserve un historique de toutes les travaux, y compris les journaux, les métriques, la sortie et un instantané de vos scripts. L’espace de travail stocke les références à des ressources comme les magasins de données et le calcul. Il contient également tous les actifs tels que les modèles, les environnements, les composants et les données.

Créer un espace de travail

Pour créer un espace de travail avec le SDK Python v2, vous pouvez utiliser le code suivant :

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

# specify the workspace details
ws = Workspace(
    name="my_workspace",
    location="eastus",
    display_name="My workspace",
    description="This example shows how to create a workspace",
    tags=dict(purpose="demo"),
)

ml_client.workspaces.begin_create(ws) # use MLClient to connect to the subscription and resource group and create workspace

Ce notebook Jupyter montre d’autres façons de créer un espace de travail Azure Machine Learning avec le SDK v2.

Pour plus d’informations sur la création d’un espace de travail, consultez Gérer les espaces de travail Azure Machine Learning dans le portail ou avec le kit de développement logiciel (SDK) Python (v2).

Compute

Un calcul est une ressource de calcul désignée où vous exécutez votre travail ou hébergez votre point de terminaison. Azure Machine Learning prend en charge les types de calcul suivants :

  • Instance de calcul : environnement de développement complètement configuré et managé dans le cloud. Vous pouvez utiliser l’instance comme un calcul d’entraînement ou d’inférence pour le développement et le test. Elle est similaire à une machine virtuelle sur le cloud.
  • Cluster de calcul : infrastructure de calcul managé qui vous permet de créer facilement un cluster de nœuds de calcul de processeur ou de processeur graphique dans le cloud.
  • Calcul serverless – un cluster de calcul auquel vous accédez à la volée. Lorsque vous utilisez le calcul serverless, vous n'avez pas besoin de créer votre propre cluster. Toute la gestion du cycle de vie du calcul est déchargée dans Azure Machine Learning.
  • Cluster d’inférence : utilisé pour déployer des modèles Machine Learning entraînés sur Azure Kubernetes Service. Vous pouvez créer un cluster Azure Kubernetes Service (AKS) à partir de votre espace de travail Azure Machine Learning ou en attacher un existant.
  • Calcul attaché : vous pouvez attacher vos propres ressources de calcul à votre espace de travail et les utiliser pour l’entraînement et l’inférence.

Créer un calcul

Pour créer un cluster de calcul à l’aide du Kit de développement logiciel (SDK) Python v2, vous pouvez utiliser le code suivant :

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

cluster_basic = AmlCompute(
    name="basic-example",
    type="amlcompute",
    size="STANDARD_DS3_v2",
    location="westus",
    min_instances=0,
    max_instances=2,
    idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)

Ce notebook Jupyter montre d’autres façons de créer un calcul avec le SDK v2.

Pour plus d’informations sur la création d’un calcul, consultez :

Magasin de données

Les magasins de données Azure Machine Learning conservent de manière sécurisée les informations de connexion à votre stockage de données sur Azure. Vous n’avez donc pas à les coder dans vos scripts. Vous pouvez inscrire et créer un magasin de données pour vous connecter facilement à votre compte de stockage, et accéder aux données de votre service de stockage sous-jacent. L’interface CLI v2 et le SDK v2 prennent en charge les types de services de stockage cloud suivants :

  • Conteneur d’objets blob Azure
  • Partage de fichiers Azure
  • Azure Data Lake
  • Azure Data Lake Gen2

Créer une banque de données

Pour créer un magasin de données avec le SDK Python v2, vous pouvez utiliser le code suivant :

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

import AzureBlobDatastore

blob_datastore1 = AzureBlobDatastore(
    name="blob_example",
    description="Datastore pointing to a blob container.",
    account_name="mytestblobstore",
    container_name="data-container",
    credentials={
        "account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
    },
)
ml_client.create_or_update(blob_datastore1)

Ce notebook Jupyter montre d’autres façons de créer un magasin de données avec le SDK v2.

Pour en savoir plus sur l’utilisation d’un magasin de données, consultez Créer et gérer des ressources de données.

Modèle

Les modèles Azure Machine Learning se composent d’un ou de plusieurs fichiers binaires qui représentent un modèle de machine learning et toutes les métadonnées correspondantes. Les modèles peuvent être créés à partir d’un fichier ou répertoire local ou distant. Pour les emplacements distants, https, wasbs et azureml sont pris en charge. Le modèle créé est suivi dans l’espace de travail sous le nom et la version spécifiés. Azure Machine Learning prend en charge trois types de format de stockage pour les modèles :

  • custom_model
  • mlflow_model
  • triton_model

Créer un modèle dans le registre de modèles

L’inscription de modèle vous permet de stocker vos modèles dans le cloud Azure, au sein de votre espace de travail, et d’en gérer les versions. Le registre de modèles vous permet d’organiser et de suivre vos modèles entraînés.

Pour plus d’informations sur la création de modèles dans le Registre, consultez Utiliser des modèles dans Azure Machine Learning.

Environnement

Les environnements Azure Machine Learning sont une encapsulation de l’environnement où se produit votre tâche Machine Learning. Ils spécifient les packages logiciels, variables d’environnement et paramètres logiciels pour vos scripts d’entraînement et de scoring. Les environnements sont des entités managées et versionées au sein de votre espace de travail Machine Learning. Les environnements permettent d’avoir des flux de travail d’apprentissage automatique reproductibles, auditables et portables dans divers calculs.

Types d’environnement

Azure Machine Learning prend en charge deux types d’environnements : organisés et personnalisés.

Les environnements organisés sont fournis par Azure Machine Learning et sont disponibles dans votre espace de travail par défaut. Prévus pour être utilisés tels quels, ils contiennent des collections de packages et paramètres Python destinés à vous aider à prendre en main diverses infrastructures de Machine Learning. Ces environnements précréés permettent également d’accélérer le déploiement. Pour obtenir une liste complète, consultez l’article sur les environnements organisés.

Dans les environnements personnalisés, vous êtes responsable de la configuration de votre environnement, et de l’installation de packages ou d’autres dépendances dont votre script d’entraînement ou de scoring a besoin sur le calcul. Azure Machine Learning vous permet de créer votre propre environnement en utilisant

  • Une image Docker
  • Une image Docker de base avec un YAML conda pour la personnalisation
  • Un contexte de build Docker

Créer un environnement personnalisé Azure Machine Learning

Pour créer un environnement à l’aide du Kit de développement logiciel (SDK) Python v2, consultez Créer un environnement.

Ce notebook Jupyter montre d’autres façons de créer des environnements personnalisés en utilisant le SDK v2.

Pour plus d’informations sur les environnements, consultez Créer et gérer des environnements dans Azure Machine Learning.

Données

Azure Machine Learning vous permet d’utiliser différents types de données :

  • Des URI (emplacement dans le stockage local/cloud)
    • uri_folder
    • uri_file
  • Des tables (abstraction de données tabulaires)
    • mltable
  • Primitives
    • string
    • boolean
    • number

Pour la plupart des scénarios, vous utilisez des URI (uri_folder et uri_file) - un emplacement dans le stockage qui peut être facilement mappé au système de fichiers d'un nœud de calcul dans une tâche en montant ou en téléchargeant le stockage sur le nœud.

mltable est une abstraction des données tabulaires à utiliser pour les travaux AutoML, les travaux parallèles et certains scénarios avancés. Si vous commencez tout juste à utiliser Azure Machine Learning et que vous n’utilisez pas AutoML, nous vous encourageons vivement à commencer avec des URI.

Composant

Un composant Azure Machine Learning est un élément de code autonome qui effectue une étape dans un pipeline Machine Learning. Les composants sont la base des pipelines Machine Learning avancés. Les composants peuvent effectuer des tâches comme le traitement des données, l’apprentissage du modèle, le scoring du modèle, etc. Un composant est analogue à une fonction : il dispose d’un nom et de paramètres, il attend une entrée et retourne une sortie.