Utiliser des modèles inscrits dans Azure Machine Learning
S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)
Dans cet article, vous allez apprendre à inscrire et à utiliser des modèles dans Azure Machine Learning à l’aide des éléments suivants :
- Interface utilisateur d’Azure Machine Learning studio.
- Interface CLI Azure Machine Learning V2.
- Kit SDK Python Azure Machine Learning V2.
Vous allez apprendre à effectuer les actions suivantes :
- Créer des modèles inscrits dans le registre de modèles à partir de fichiers locaux, de magasins de données ou de sorties de travaux.
- Utiliser différents types de modèles, notamment des modèles personnalisés, MLflow et Triton.
- Utiliser des modèles comme entrées ou sorties dans des travaux de formation.
- Gérer le cycle de vie des ressources de modèle.
Inscription de modèles
L’inscription de modèle vous permet de stocker et de versionner vos modèles dans votre espace de travail dans le cloud Azure. Le registre de modèles vous permet d’organiser et de suivre vos modèles entraînés. Vous pouvez inscrire des modèles en tant que ressources dans Azure Machine Learning à l’aide d’Azure CLI, du kit SDK Python ou de l’interface utilisateur de Machine Learning studio.
Chemins pris en charge
Pour inscrire un modèle, vous devez spécifier un chemin d’accès qui pointe vers les données ou l’emplacement du travail. Le tableau suivant présente les différents emplacements de données pris en charge par Azure Machine Learning et la syntaxe du paramètre path
:
Emplacement | Syntaxe |
---|---|
Ordinateur local | <model-folder>/<model-filename> |
Magasin de données Azure Machine Learning | azureml://datastores/<datastore-name>/paths/<path_on_datastore> |
Travail Azure Machine Learning | azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> |
Travail MLflow | runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> |
Ressource de modèle dans un espace de travail Machine Learning | azureml:<model-name>:<version> |
Ressource de modèle dans un registre Machine Learning | azureml://registries/<registry-name>/models/<model-name>/versions/<version> |
Modes pris en charge
Lorsque vous utilisez des modèles pour les entrées ou sorties, vous pouvez spécifier l’un des modes suivants. Par exemple, vous pouvez spécifier si le modèle doit être monté en lecture seule ou téléchargé sur la cible de calcul.
ro_mount
: monter les données sur la cible de calcul en lecture seule.rw_mount
: monter les données en lecture-écriture.download
: télécharger les données sur la cible de calcul.upload
: charger les données à partir de la cible de calcul.direct
: passer l’URI en tant que chaîne.
Le tableau suivant présente les options de mode disponibles pour différentes entrées et sorties de type de modèle.
Type | upload |
download |
ro_mount |
rw_mount |
direct |
---|---|---|---|---|---|
Entrée de fichier custom |
|||||
Entrée de dossier custom |
✓ | ✓ | ✓ | ||
Entrée mlflow |
✓ | ✓ | |||
Sortie de fichier custom |
✓ | ✓ | ✓ | ||
Sortie de dossier custom |
✓ | ✓ | ✓ | ||
Sortie mlflow |
✓ | ✓ | ✓ |
Prérequis
- Un abonnement Azure avec une version gratuite ou payante d’Azure Machine Learning. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Un espace de travail Azure Machine Learning.
Pour exécuter les exemples de code de cet article et utiliser l’interface CLI Azure Machine Learning V2 ou le kit SDK Python Azure Machine Learning V2, vous avez également besoin des éléments suivants :
Version 2.38.0 ou ultérieure d’Azure CLI installée.
Extension
ml
V2 installée en exécutant la commande suivante. Pour plus d’informations, consultez Installer, configurer et utiliser l’interface CLI (v2).az extension add -n ml
Remarque
La V2 fournit une compatibilité descendante complète. Vous pouvez toujours utiliser des ressources de modèle à partir du kit SDK ou de l’interface CLI v1. Tous les modèles inscrits avec l’interface CLI ou le kit SDK v1 se voient attribuer le type custom
.
Inscrire un modèle à l’aide de l’interface utilisateur de studio
Pour inscrire un modèle à l’aide de l’interface utilisateur d’Azure Machine Learning studio :
Dans votre espace de travail dans le studio, sélectionnez Modèles dans le volet de navigation gauche.
Dans la page Liste de modèles, sélectionnez Inscrire, puis sélectionnez l’un des emplacements suivants dans la liste déroulante :
- À partir des fichiers locaux
- À partir du résultat d’un travail
- À partir du magasin de données
- À partir de fichiers locaux (selon l’infrastructure)
Dans le premier écran Inscrire le modèle :
- Accédez au fichier local, au magasin de données ou à la sortie du travail pour votre modèle.
- Sélectionnez le type de modèle d’entrée : MLflow, Triton ou Type non spécifié.
Dans l’écran Paramètres du modèle, indiquez un nom et d’autres paramètres facultatifs pour votre modèle inscrit, puis sélectionnez Suivant.
Dans l’écran Vérifier, passez en revue la configuration, puis sélectionnez Inscrire.
Inscrire un modèle à l’aide d’Azure CLI ou du kit SDK Python
Les extraits de code suivants expliquent comment inscrire un modèle en tant que ressource dans Azure Machine Learning à l’aide d’Azure CLI ou du kit SDK Python. Ces extraits de code utilisent les types de modèles custom
et mlflow
.
- Le type
custom
fait référence à un fichier ou à un dossier modèle formé avec une norme personnalisée qu’Azure Machine Learning ne prend actuellement pas en charge. - Le type
mlflow
fait référence à un modèle entraîné avec MLflow. Les modèles entraînés MLflow se trouvent dans un dossier qui contient le fichier MLmodel, le fichier de modèle, le fichier de dépendances conda et le fichier requirements.txt.
Conseil
Vous pouvez suivre les versions Python des exemples suivants en exécutant le notebook model.ipynb dans le référentiel azureml-examples.
Se connecter à un 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. Dans cette section, vous vous connectez à votre espace de travail Azure Machine Learning pour créer le modèle inscrit.
Connectez-vous à Azure en exécutant
az login
et en suivant les invites.Dans les commandes suivantes, remplacez les espaces réservés
<subscription-id>
,<workspace-name>
,<resource-group>
et<location>
par les valeurs de votre environnement.az account set --subscription <subscription-id> az configure --defaults workspace=<workspace-name> group=<resource-group> location=<location>
Créer le modèle inscrit
Vous pouvez créer un modèle inscrit à partir d’un modèle qui est :
- Situé sur votre ordinateur local.
- Situé sur un magasin de données Azure Machine Learning.
- Généré à partir d’un travail Azure Machine Learning.
Fichier ou dossier local
Créez un fichier YAML <file-name>.yml. Dans le fichier, indiquez un nom pour votre modèle inscrit, un chemin d’accès au fichier de modèle local ainsi qu’une description. Par exemple :
$schema: https://azuremlschemas.azureedge.net/latest/model.schema.json name: local-file-example path: mlflow-model/model.pkl description: Model created from local file.
Exécutez la commande suivante en utilisant le nom de votre fichier YAML :
az ml model create -f <file-name>.yml
Pour obtenir un exemple complet, consultez le modèle YAML.
Magasins de données
Vous pouvez créer un modèle à partir d’un chemin d’accès dans le cloud en utilisant l’un des formats d’URI pris en charge.
L’exemple suivant utilise le schéma azureml
abrégé pour pointer vers un chemin d’accès sur le magasin de données en utilisant la syntaxe azureml://datastores/<datastore-name>/paths/<path_on_datastore>
.
az ml model create --name my-model --version 1 --path azureml://datastores/myblobstore/paths/models/cifar10/cifar.pt
Pour obtenir un exemple complet, consultez les informations de référence CLI.
Sortie de la tâche
Si vos données de modèle proviennent d’une sortie de travail, deux options s’offrent à vous pour spécifier le chemin d’accès du modèle. Vous pouvez utiliser le format d’URI runs:
MLflow ou le format d’URI azureml://jobs
.
Remarque
Le mot clé réservé artefacts représente la sortie de l’emplacement par défaut de l’artefact.
Format d’URI runs: MLflow
Cette option est optimisée pour les utilisateurs MLflow qui sont probablement déjà au fait du format d’URI
runs:
MLflow. Cette option crée un modèle à partir d’artefacts dans l’emplacement d’artefact par défaut où se trouvent tous les modèles et artefacts journalisés par MLflow. Cette option établit également une traçabilité entre un modèle inscrit et l’exécution dont le modèle provient.Format :
runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location>
Exemple :
az ml model create --name my-registered-model --version 1 --path runs:/my_run_0000000000/model/ --type mlflow_model
Format d’URI azureml://jobs
L’option URI de référence
azureml://jobs
vous permet d’inscrire un modèle à partir d’artefacts dans n’importe quel chemin de sortie du travail. Ce format est aligné sur le format d’URI de référenceazureml://datastores
et prend également en charge le référencement d’artefacts à partir de sorties nommées autres que l’emplacement d’artefact par défaut.Si vous n’avez pas directement inscrit votre modèle dans le script de formation à l’aide de MLflow, vous pouvez utiliser cette option pour établir une traçabilité entre un modèle inscrit et le travail à partir duquel il a été formé.
Format :
azureml://jobs/<run-id>/outputs/<output-name>/paths/<path-to-model>
- Emplacement d’artefact par défaut :
azureml://jobs/<run-id>/outputs/artifacts/paths/<path-to-model>/
. Cet emplacement équivaut à MLflowruns:/<run-id>/<model>
. - Dossier de sortie nommé :
azureml://jobs/<run-id>/outputs/<named-output-folder>
- Fichier spécifique dans le dossier de sortie nommé :
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-filename>
- Chemin d’accès à un dossier spécifique dans le dossier de sortie nommé :
azureml://jobs/<run-id>/outputs/<named-output-folder>/paths/<model-folder-name>
Exemple :
Enregistrer un modèle à partir d’un dossier de sortie nommé :
az ml model create --name run-model-example --version 1 --path azureml://jobs/my_run_0000000000/outputs/artifacts/paths/model/
Pour obtenir un exemple complet, consultez les informations de référence CLI.
- Emplacement d’artefact par défaut :
Utiliser des modèles pour la formation
L’interface Azure CLI et le kit SDK Python v2 vous permettent également d’utiliser des modèles en tant qu’entrées ou sorties dans des travaux de formation.
Utiliser un modèle en tant qu’entrée dans un travail de formation
Créez un fichier YAML de spécification de travail, <file-name>.yml. Dans la section
inputs
du travail, spécifiez :- Le
type
du modèle, qui peut êtremlflow_model
,custom_model
outriton_model
. - Le
path
où se trouve votre modèle, qui peut être l’un des chemins d’accès répertoriés dans le commentaire de l’exemple suivant.
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json # Possible Paths for models: # AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore> # MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> # Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> # Model Asset: azureml:<my_model>:<version> command: | ls ${{inputs.my_model}} inputs: my_model: type: mlflow_model # List of all model types here: https://zcusa.951200.xyz/azure/machine-learning/reference-yaml-model#yaml-syntax path: ../../assets/model/mlflow-model environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
- Le
Exécutez la commande suivante, en remplaçant le nom de fichier par votre nom de fichier YAML.
az ml job create -f <file-name>.yml
Pour obtenir un exemple complet, consultez le référentiel modèle GitHub.
Écrire un modèle en tant que sortie pour un travail
Votre travail peut écrire un modèle dans votre stockage basé sur le cloud en utilisant des sorties.
Créez un fichier YAML de spécification de travail intitulé <file-name>.yml. Remplissez la section
outputs
avec le type et le chemin d’accès du modèle de sortie.$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json # Possible Paths for Model: # Local path: mlflow-model/model.pkl # AzureML Datastore: azureml://datastores/<datastore-name>/paths/<path_on_datastore> # MLflow run: runs:/<run-id>/<path-to-model-relative-to-the-root-of-the-artifact-location> # Job: azureml://jobs/<job-name>/outputs/<output-name>/paths/<path-to-model-relative-to-the-named-output-location> # Model Asset: azureml:<my_model>:<version> code: src command: >- python hello-model-as-output.py --input_model ${{inputs.input_model}} --custom_model_output ${{outputs.output_folder}} inputs: input_model: type: mlflow_model # mlflow_model,custom_model, triton_model path: ../../assets/model/mlflow-model outputs: output_folder: type: custom_model # mlflow_model,custom_model, triton_model environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
Créez un travail à l’aide de l’interface CLI :
az ml job create --file <file-name>.yml
Pour obtenir un exemple complet, consultez le référentiel modèle GitHub.
Gérer les modèles
L’interface CLI et le kit SDK Python vous permettent également de gérer le cycle de vie de vos ressources du modèle Azure Machine Learning.
Liste
Répertoriez l’ensemble des modèles dans votre espace de travail :
az ml model list
Répertoriez l’ensemble des versions de le modèle sous un nom donné :
az ml model list --name run-model-example
Afficher
Obtenez les détails d’un modèle spécifique :
az ml model show --name run-model-example --version 1
Update
Mettez à jour les propriétés mutables d’un modèle spécifique :
Important
Pour les modèles, seules les propriétés description
et tags
peuvent être mises à jour. Toutes les autres propriétés sont immuables. Si vous avez besoin de les modifier, vous devez créer une nouvelle version du modèle.
az ml model update --name run-model-example --version 1 --set description="This is an updated description." --set tags.stage="Prod"
Archive
L’archivage d’un modèle a pour effet de masquer le modèle aux requêtes de liste comme az ml model list
par défaut. Vous pouvez continuer à référencer et à utiliser un modèle archivé dans vos flux de travail.
Vous pouvez archiver toutes les versions ou uniquement des versions spécifiques d’un modèle. Si vous ne spécifiez pas de version, toutes les versions du modèle sont archivées. Si vous créez une nouvelle version de modèle sous un conteneur de modèle archivé, la nouvelle version est aussi définie automatiquement comme archivée.
Archivez toutes les versions d’un modèle :
az ml model archive --name run-model-example
Archivez une version spécifique d’un modèle :
az ml model archive --name run-model-example --version 1
Contenu connexe
- Partager des modèles, des composants et des environnements entre les espaces de travail avec des registres
- Bibliothèque de client du package Azure Machine Learning pour Python – Version 1.16.1
- Extension Azure CLI ml
- MLflow et Azure Machine Learning
- Déployer des modèles MLflow sur des points de terminaison en ligne