Partager via


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

APPLIES TO :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 Azure Machine Learning et du Kit de développement logiciel (SDK) Python 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. :
  • Ressources : créées avec des commandes Azure Machine Learning ou dans le cadre d’une exécution d'entraînement/évaluation. 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. Installez le Kit de développement logiciel (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 un. 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
    from azure.ai.ml.entities import AmlCompute
    
    # 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 that the connection include a workspace name.
    workspace_name = "<WORKSPACE_NAME>"
    ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
    

Espace de travail

Un espace de travail est la ressource de niveau supérieur pour Azure Machine Learning, qui fournit un emplacement centralisé pour travailler avec 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 toutes les ressources, telles que les modèles, les environnements, les composants et les ressources de données.

Créer un espace de travail

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

APPLIES TO : 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"),
)
# Use MLClient to connect to the subscription and resource group and create the workspace.
ml_client.workspaces.begin_create(ws) 

Pour plus d’informations sur la création d’un espace de travail Azure Machine Learning à l’aide du Kit de développement logiciel (SDK) v2, consultez ce notebook Jupyter.

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).

Calcul

Une instance de calcul est une ressource de calcul désignée où vous exécutez vos tâches ou hébergez votre point de terminaison. Azure Machine Learning prend en charge les types de calcul suivants :

  • Instance de calcul. Un environnement de développement entièrement configuré et géré 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 dans le cloud.
  • Cluster de calcul. Infrastructure de calcul managée qui vous permet de créer facilement un cluster de nœuds de calcul PROCESSEUR ou GPU 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 (AKS). Vous pouvez créer un cluster Azure Kubernetes Service à partir de votre espace de travail Azure Machine Learning ou attacher un cluster AKS existant.
  • Calcul attaché. Vous pouvez attacher vos propres ressources de calcul à votre espace de travail et les utiliser pour l’apprentissage et l’inférence.

Créer une ressource de 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 :

APPLIES TO : Kit de développement logiciel (SDK) Python azure-ai-mlv2 (préversion)

from azure.ai.ml.entities import AmlCompute
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 en toute sécurité les informations de connexion de 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. CLI v2 et 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 Storage
  • Azure Data Lake Storage Gen2

Créer une banque de données

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

APPLIES TO : 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)

Pour plus d’informations sur la création de magasins de données à l’aide du Kit de développement logiciel (SDK) v2, consultez ce bloc-notes Jupyter.

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 formats 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

Un environnement Azure Machine Learning est une encapsulation de l’environnement dans lequel se produit votre tâche Machine Learning. Il spécifie les packages logiciels, les variables d’environnement et les paramètres logiciels pour vos scripts d’entraînement et de scoring. Les environnements sont des entités gérées et versionnées dans votre espace de travail de Machine Learning. Les environnements permettent d’avoir des flux de travail d’apprentissage automatique reproductibles, auditables et portables dans divers calculs.

Types d’environnements

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 un déploiement plus rapide. 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 à l’aide de :

  • Une image Docker.
  • Image Docker de base avec un fichier YAML Conda pour des personnalisations supplémentaires.
  • Contexte de construction Docker.

Créer un environnement personnalisé Azure Machine Learning

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

Pour plus d’informations sur la création d’environnements personnalisés à l’aide du Kit de développement logiciel (SDK) v2, consultez ce notebook Jupyter.

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 :

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

Pour la plupart des scénarios, vous utilisez des URI (uri_folder et uri_file) à un emplacement dans le stockage que vous pouvez facilement mapper au système de fichiers d’un nœud de calcul dans un travail en montant ou en téléchargeant le stockage sur le nœud.

mltable est une abstraction pour les données tabulaires utilisées pour les travaux AutoML, les travaux parallèles et certains scénarios avancés. Si vous commencez simplement à utiliser Azure Machine Learning et que vous n’utilisez pas AutoML, nous vous encourageons vivement à commencer par 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 telles que le traitement des données, l’entraînement du modèle et le scoring de modèle. Un composant est analogue à une fonction : il a un nom et des paramètres, attend une entrée et retourne une sortie.