Model Classe
Représente le résultat de la formation Machine Learning.
Un modèle est le résultat d’une formation Azure Machine Learning Run ou d’un autre processus de formation de modèle en dehors d’Azure. Quelle que soit la façon dont le modèle est produit, il peut être inscrit dans un espace de travail, où il est représenté par un nom et une version. Avec la classe Model, vous pouvez empaqueter des modèles à utiliser avec Docker et les déployer en tant que point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence.
Pour savoir comment les modèles sont créés, managés et consommés, consultez le tutoriel complet Entraîner un modèle de classification d’images avec des données MNIST et scikit-learn via Azure Machine Learning.
Constructeur de modèle.
Le constructeur Model est utilisé pour récupérer une représentation cloud d’un objet Model associé à l’espace de travail fourni. Doit fournir le nom ou l’ID.
- Héritage
-
builtins.objectModel
Constructeur
Model(workspace, name=None, id=None, tags=None, properties=None, version=None, run_id=None, model_framework=None, expand=True, **kwargs)
Paramètres
- name
- str
Nom du modèle à récupérer. Le modèle le plus récent correspondant au nom spécifié est retourné, s’il existe.
- id
- str
ID du modèle à récupérer. Le modèle correspondant à l’ID spécifié est retourné, s’il existe.
- tags
- list
Liste facultative des étiquettes utilisées pour filtrer les résultats retournés. Les résultats sont filtrés en fonction de la liste fournie, en effectuant une recherche par « clé » ou « [clé, valeur] ». Ex. ['key', ['key2', 'key2 value']]
- properties
- list
Liste facultative des propriétés utilisées pour filtrer les résultats retournés. Les résultats sont filtrés en fonction de la liste fournie, en effectuant une recherche par « clé » ou « [clé, valeur] ». Ex. ['key', ['key2', 'key2 value']]
- version
- int
Version du modèle à retourner. Quand elle est fournie avec le paramètre name
, la version spécifique du modèle nommé spécifié est retournée, le cas échéant. Si version
est omis, la dernière version du modèle est retournée.
- model_framework
- str
Nom d’infrastructure facultatif utilisé pour filtrer les résultats retournés. S’il est spécifié, les résultats sont retournés pour les modèles correspondant à l’infrastructure spécifiée. Consultez Framework pour connaître les valeurs autorisées.
- name
- str
Nom du modèle à récupérer. Le modèle le plus récent correspondant au nom spécifié est retourné, s’il existe.
- id
- str
ID du modèle à récupérer. Le modèle correspondant à l’ID spécifié est retourné, s’il existe.
- tags
- list
Liste facultative des étiquettes utilisées pour filtrer les résultats retournés. Les résultats sont filtrés en fonction de la liste fournie, en effectuant une recherche par « clé » ou « [clé, valeur] ». Ex. ['key', ['key2', 'key2 value']]
- properties
- list
Liste facultative des propriétés utilisées pour filtrer les résultats retournés. Les résultats sont filtrés en fonction de la liste fournie, en effectuant une recherche par « clé » ou « [clé, valeur] ». Ex. ['key', ['key2', 'key2 value']]
- version
- int
Version du modèle à retourner. Quand elle est fournie avec le paramètre name
, la version spécifique du modèle nommé spécifié est retournée, le cas échéant. Si version
est omis, la dernière version du modèle est retournée.
- model_framework
- str
Nom d’infrastructure facultatif utilisé pour filtrer les résultats retournés. S’il est spécifié, les résultats sont retournés pour les modèles correspondant à l’infrastructure spécifiée. Consultez Framework pour connaître les valeurs autorisées.
- expand
- bool
Si la valeur est True, retourne des modèles avec toutes les sous-propriétés renseignées, par exemple, l’exécution, le jeu de données et l’expérience.
Remarques
Le constructeur Model permet de récupérer une représentation cloud d’un objet Model associé à l’espace de travail spécifié. Au moins le nom ou l’ID doit être fourni pour récupérer les modèles, mais il existe également d’autres options de filtrage, notamment par balises, propriétés, version, ID d’exécution et infrastructure.
from azureml.core.model import Model
model = Model(ws, 'my_model_name')
L’exemple suivant montre comment extraire une version spécifique d’un modèle.
from azureml.core.model import Model
model = Model(ws, 'my_model_name', version=1)
L’inscription d’un modèle crée un conteneur logique pour un ou plusieurs fichiers qui composent votre modèle. Outre le contenu du fichier de modèle lui-même, un modèle inscrit stocke également les métadonnées du modèle, notamment la description du modèle, les étiquettes et les informations d’infrastructure, qui sont utiles au moment de gérer et déployer le modèle dans votre espace de travail. Les étiquettes, par exemple, vous permettent de catégoriser vos modèles et d’appliquer des filtres lorsque vous listez les modèles dans votre espace de travail. Après l’inscription, vous pouvez télécharger ou déployer le modèle inscrit et recevoir tous les fichiers et les métadonnées qui ont été inscrits.
L’exemple suivant montre comment inscrire un modèle spécifiant des balises et une description.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
L’exemple suivant montre comment inscrire un modèle spécifiant une infrastructure, des jeux de données d’entrée et de sortie et la configuration des ressources.
import sklearn
from azureml.core import Model
from azureml.core.resource_configuration import ResourceConfiguration
model = Model.register(workspace=ws,
model_name='my-sklearn-model', # Name of the registered model in your workspace.
model_path='./sklearn_regression_model.pkl', # Local file to upload and register as a model.
model_framework=Model.Framework.SCIKITLEARN, # Framework used to create the model.
model_framework_version=sklearn.__version__, # Version of scikit-learn used to create the model.
sample_input_dataset=input_dataset,
sample_output_dataset=output_dataset,
resource_configuration=ResourceConfiguration(cpu=1, memory_in_gb=0.5),
description='Ridge regression model to predict diabetes progression.',
tags={'area': 'diabetes', 'type': 'regression'})
print('Name:', model.name)
print('Version:', model.version)
La section Variables liste les attributs d’une représentation locale de l’objet Model cloud. Ces variables doivent être considérées comme étant en lecture seule. La modification de leurs valeurs ne sera pas répercutée dans l’objet cloud correspondant.
Variables
- created_by
- dict
Utilisateur qui a créé le modèle.
- created_time
- datetime
À quel moment le modèle a été créé.
- azureml.core.Model.description
Description de l’objet Model.
- azureml.core.Model.id
ID du modèle. Il se présente sous la forme <nom du modèle>:<version du modèle>.
- mime_type
- str
Type MIME du modèle.
- azureml.core.Model.name
Nom du modèle.
- model_framework
- str
Infrastructure du modèle.
- model_framework_version
- str
Version de l’infrastructure du modèle.
- azureml.core.Model.tags
Dictionnaire d’étiquettes de l’objet Model.
- azureml.core.Model.properties
Dictionnaire des propriétés clé-valeur du modèle. Ces propriétés ne peuvent pas être modifiées après la création. De nouvelles paires clé/valeur peuvent cependant être ajoutées.
- unpack
- bool
Indique si le modèle doit être décompressé lorsqu’il est extrait vers un contexte local.
- url
- str
Emplacement URL du modèle.
- azureml.core.Model.version
Version du modèle.
- azureml.core.Model.workspace
Espace de travail contenant le modèle.
- azureml.core.Model.experiment_name
Nom de l’expérience qui a créé le modèle.
- azureml.core.Model.run_id
ID de l’exécution qui a créé le modèle.
- parent_id
- str
ID du modèle parent du modèle.
- resource_configuration
- ResourceConfiguration
ResourceConfiguration de ce modèle. Utilisé pour le profilage.
Méthodes
add_dataset_references |
Associe les jeux de données fournis à ce modèle. |
add_properties |
Ajoute des paires clé-valeur au dictionnaire de propriétés de ce modèle. |
add_tags |
Ajoute des paires clé-valeur au dictionnaire d’étiquettes de ce modèle. |
delete |
Supprime ce modèle de l’espace de travail qui lui est associé. |
deploy |
Déploie un service web à partir de zéro ou plusieurs objets Model. Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. La fonction |
deserialize |
Convertit un objet JSON en objet de modèle. La conversion échoue si l’espace de travail spécifié n’est pas l’espace de travail auprès duquel le modèle est inscrit. |
download |
Télécharge le modèle dans le répertoire cible du système de fichiers local. |
get_model_path |
Retourne le chemin du modèle. La fonction recherche le modèle aux emplacements suivants. Si
Si
|
get_sas_urls |
Retourne un dictionnaire de paires clé-valeur contenant des noms de fichiers et les URL SAS correspondantes. |
list |
Récupère la liste de tous les modèles associés à l’espace de travail fourni, avec des filtres facultatifs. |
package |
Créez un package de modèle sous la forme d’une image Docker ou d’un contexte de génération de fichier Dockerfile. |
print_configuration |
Imprimez la configuration utilisateur. |
profile |
Profile le modèle pour obtenir des recommandations en matière de besoins en ressources. Il s’agit d’une opération longue qui peut prendre jusqu’à 25 minutes en fonction de la taille du jeu de données. |
register |
Inscrit un modèle auprès de l’espace de travail fourni. |
remove_tags |
Supprime les clés spécifiées du dictionnaire d’étiquettes de ce modèle. |
serialize |
Convertit ce modèle en dictionnaire JSON sérialisé. |
update |
Effectue une mise à jour sur place du modèle. Les valeurs existantes des paramètres spécifiés sont remplacées. |
update_tags_properties |
Effectue une mise à jour des étiquettes et des propriétés du modèle. |
add_dataset_references
Associe les jeux de données fournis à ce modèle.
add_dataset_references(datasets)
Paramètres
- datasets
- list[tuple(<xref:str :> (Dataset ou DatasetSnapshot))]
Liste de tuples représentant l’appariement entre l’objectif d’un jeu de données et un objet Dataset.
Exceptions
add_properties
Ajoute des paires clé-valeur au dictionnaire de propriétés de ce modèle.
add_properties(properties)
Paramètres
Exceptions
add_tags
Ajoute des paires clé-valeur au dictionnaire d’étiquettes de ce modèle.
add_tags(tags)
Paramètres
Exceptions
delete
Supprime ce modèle de l’espace de travail qui lui est associé.
delete()
Exceptions
deploy
Déploie un service web à partir de zéro ou plusieurs objets Model.
Le service web obtenu est un point de terminaison en temps réel qui peut être utilisé pour les demandes d’inférence. La fonction deploy
de modèle est similaire à la fonction deploy
de la classe Webservice, mais n’inscrit pas les modèles. Utilisez la fonction deploy
de modèle si vous avez des objets de modèle déjà inscrits.
static deploy(workspace, name, models, inference_config=None, deployment_config=None, deployment_target=None, overwrite=False, show_output=False)
Paramètres
- name
- str
Nom à donner au service déployé. Doit être unique à l’espace de travail, ne comporter que des lettres minuscules, des chiffres ou des tirets, commencer par une lettre et comporter entre 3 et 32 caractères.
- inference_config
- InferenceConfig
Objet InferenceConfig utilisé pour déterminer les propriétés de modèle nécessaires.
- deployment_config
- WebserviceDeploymentConfiguration
WebserviceDeploymentConfiguration utilisée pour configurer le service web. En l’absence d’indication, un objet de configuration vide est utilisé en fonction de la cible souhaitée.
- deployment_target
- ComputeTarget
ComputeTarget sur lequel déployer le service web. Comme Azure Container Instances n’est associé à aucun ComputeTarget, laissez ce paramètre défini sur None pour effectuer un déploiement sur Azure Container Instances.
- overwrite
- bool
Indique s’il faut remplacer le service existant s’il existe déjà un service portant le nom spécifié.
- show_output
- bool
Indique s’il faut afficher la progression du déploiement du service.
Retours
Objet Webservice correspondant au service web déployé.
Type de retour
Exceptions
deserialize
Convertit un objet JSON en objet de modèle.
La conversion échoue si l’espace de travail spécifié n’est pas l’espace de travail auprès duquel le modèle est inscrit.
static deserialize(workspace, model_payload)
Paramètres
Retours
Représentation sous forme de modèle de l’objet JSON fourni.
Type de retour
Exceptions
download
Télécharge le modèle dans le répertoire cible du système de fichiers local.
download(target_dir='.', exist_ok=False, exists_ok=None)
Paramètres
- target_dir
- str
Chemin du répertoire dans lequel télécharger le modèle. La valeur par défaut est « . »
- exist_ok
- bool
Indique s’il faut remplacer les fichiers téléchargés dans le répertoire s’ils existent. Valeur par défaut False.
Retours
Chemin du fichier ou du dossier du modèle.
Type de retour
Exceptions
get_model_path
Retourne le chemin du modèle.
La fonction recherche le modèle aux emplacements suivants.
Si version
a la valeur None :
- Télécharger à partir de l’emplacement à distance vers le cache (si l’espace de travail est fourni)
- Charger à partir du cache azureml-models/$MODEL_NAME/$LATEST_VERSION/
- ./$MODEL_NAME
Si version
n’a pas la valeur None :
- Charger à partir du cache azureml-models/$MODEL_NAME/$SPECIFIED_VERSION/
- Télécharger à partir de l’emplacement à distance vers le cache (si l’espace de travail est fourni)
static get_model_path(model_name, version=None, _workspace=None)
Paramètres
- version
- int
Version du modèle à récupérer. La valeur par défaut est la version la plus récente.
- _workspace
- Workspace
Espace de travail à partir duquel récupérer un modèle. Utilisation à distance impossible. S’il n’est pas spécifié, la recherche porte uniquement sur le cache local.
Retours
Chemin du modèle sur le disque.
Type de retour
Exceptions
get_sas_urls
Retourne un dictionnaire de paires clé-valeur contenant des noms de fichiers et les URL SAS correspondantes.
get_sas_urls()
Retours
Dictionnaire de paires clé-valeur contenant des noms de fichiers et des URL SAS correspondantes
Type de retour
Exceptions
list
Récupère la liste de tous les modèles associés à l’espace de travail fourni, avec des filtres facultatifs.
static list(workspace, name=None, tags=None, properties=None, run_id=None, latest=False, dataset_id=None, expand=True, page_count=255, model_framework=None)
Paramètres
- name
- str
S’il est fourni, retourne uniquement les modèles correspondant au nom spécifié, le cas échéant.
- tags
- list
Applique un filtre en fonction de la liste fournie, selon les paramètres « key » ou « [key, value] ». Ex. ['key', ['key2', 'key2 value']]
- properties
- list
Applique un filtre en fonction de la liste fournie, selon les paramètres « key » ou « [key, value] ». Ex. ['key', ['key2', 'key2 value']]
- latest
- bool
Si la valeur est True, retourne uniquement les modèles avec la version la plus récente.
- dataset_id
- str
Applique un filtre en fonction de l’ID du jeu de données fourni.
- expand
- bool
Si la valeur est True, retourne des modèles avec toutes les sous-propriétés renseignées, par exemple, l’exécution, le jeu de données et l’expérience. La définition de cette valeur sur False doit accélérer l’achèvement de la méthode list() s’il y a de nombreux modèles.
- page_count
- int
Nombre d’éléments à récupérer dans une page. Actuellement, prend en charge des valeurs allant jusqu’à 255. La valeur par défaut est 255.
- model_framework
- str
S’il est fourni, retourne uniquement les modèles avec l’infrastructure spécifiée, le cas échéant.
Retours
Liste de modèles, éventuellement filtrée.
Type de retour
Exceptions
package
Créez un package de modèle sous la forme d’une image Docker ou d’un contexte de génération de fichier Dockerfile.
static package(workspace, models, inference_config=None, generate_dockerfile=False, image_name=None, image_label=None)
Paramètres
Liste d’objets Model à inclure dans le package. Peut être une liste vide.
- inference_config
- InferenceConfig
Objet InferenceConfig pour configurer le fonctionnement des modèles. Un objet Environment doit être inclus.
- generate_dockerfile
- bool
Indique s’il faut créer un fichier Dockerfile qui peut être exécuté localement au lieu de générer une image.
Retours
Objet ModelPackage.
Type de retour
Exceptions
print_configuration
Imprimez la configuration utilisateur.
static print_configuration(models, inference_config, deployment_config, deployment_target)
Paramètres
- inference_config
- InferenceConfig
Objet InferenceConfig utilisé pour déterminer les propriétés de modèle nécessaires.
- deployment_config
- WebserviceDeploymentConfiguration
WebserviceDeploymentConfiguration utilisée pour configurer le service web.
Exceptions
profile
Profile le modèle pour obtenir des recommandations en matière de besoins en ressources.
Il s’agit d’une opération longue qui peut prendre jusqu’à 25 minutes en fonction de la taille du jeu de données.
static profile(workspace, profile_name, models, inference_config, input_dataset, cpu=None, memory_in_gb=None, description=None)
Paramètres
- inference_config
- InferenceConfig
Objet InferenceConfig utilisé pour déterminer les propriétés de modèle nécessaires.
- input_dataset
- Dataset
Jeu de données d’entrée pour le profilage. Le jeu de données d’entrée doit avoir une seule colonne et les exemples d’entrées doivent être au format chaîne.
- cpu
- float
Nombre de cœurs de processeur à utiliser sur la plus grande instance de test. Actuellement, prend en charge des valeurs allant jusqu’à 3,5.
- memory_in_gb
- float
Quantité de mémoire (en Go) à utiliser sur la plus grande instance de test. Peut être un nombre décimal. Actuellement, prend en charge des valeurs allant jusqu’à 15,0.
Type de retour
Exceptions
register
Inscrit un modèle auprès de l’espace de travail fourni.
static register(workspace, model_path, model_name, tags=None, properties=None, description=None, datasets=None, model_framework=None, model_framework_version=None, child_paths=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Paramètres
- model_path
- str
Chemin sur le système de fichiers local où se trouvent les ressources du modèle. Il peut s’agir d’un pointeur direct vers un fichier ou dossier unique. S’il pointe vers un dossier, le paramètre child_paths
peut être utilisé pour spécifier des fichiers individuels à regrouper en tant qu’objet Model, au lieu d’utiliser tout le contenu du dossier.
- tags
- dict(<xref:{str : str}>)
Dictionnaire facultatif des étiquettes clé-valeur à affecter au modèle.
- properties
- dict(<xref:{str : str}>)
Dictionnaire facultatif des propriétés clé-valeur à affecter au modèle. Ces propriétés ne peuvent pas être modifiées après la création du modèle. De nouvelles paires clé-valeur peuvent cependant être ajoutées.
- datasets
- list[(str, AbstractDataset)]
Liste des tuples où le premier élément décrit la relation jeu de données-modèle et le deuxième correspond au jeu de données.
- model_framework
- str
Infrastructure du modèle inscrit. L’utilisation des constantes prises en charge par le système de la classe Framework permet un déploiement simplifié pour certaines infrastructures populaires.
S’il est fourni avec un model_path
menant à un dossier, seuls les fichiers spécifiés sont regroupés dans l’objet Model.
- sample_input_dataset
- AbstractDataset
Exemple de jeu de données d’entrée pour le modèle inscrit.
- sample_output_dataset
- AbstractDataset
Exemple de jeu de données de sortie pour le modèle inscrit.
- resource_configuration
- ResourceConfiguration
Configuration de ressource pour exécuter le modèle inscrit.
Retours
Objet de modèle inscrit.
Type de retour
Exceptions
Remarques
Outre le contenu du fichier de modèle lui-même, un modèle inscrit stocke également les métadonnées du modèle, notamment la description du modèle, les étiquettes et les informations d’infrastructure, qui sont utiles au moment de gérer et déployer le modèle dans votre espace de travail. Les étiquettes, par exemple, vous permettent de catégoriser vos modèles et d’appliquer des filtres lorsque vous listez les modèles dans votre espace de travail.
L’exemple suivant montre comment inscrire un modèle spécifiant des balises et une description.
from azureml.core.model import Model
model = Model.register(model_path="sklearn_regression_model.pkl",
model_name="sklearn_regression_model",
tags={'area': "diabetes", 'type': "regression"},
description="Ridge regression model to predict diabetes",
workspace=ws)
Un exemple complet est disponible sur https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/deployment/deploy-to-local/register-model-deploy-local-advanced.ipynb
Si vous avez un modèle qui a été généré à la suite de l’exécution d’une expérience, vous pouvez l’inscrire directement à partir d’un objet d’exécution sans le télécharger d’abord dans un fichier local. Pour ce faire, utilisez la méthode register_model comme indiqué dans la classe Run.
remove_tags
Supprime les clés spécifiées du dictionnaire d’étiquettes de ce modèle.
remove_tags(tags)
Paramètres
Exceptions
serialize
Convertit ce modèle en dictionnaire JSON sérialisé.
serialize()
Retours
Représentation JSON de ce modèle.
Type de retour
Exceptions
update
Effectue une mise à jour sur place du modèle.
Les valeurs existantes des paramètres spécifiés sont remplacées.
update(tags=None, description=None, sample_input_dataset=None, sample_output_dataset=None, resource_configuration=None)
Paramètres
- tags
- dict(<xref:{str : str}>)
Dictionnaire d’étiquettes avec lequel mettre à jour le modèle. Ces étiquettes remplacent les étiquettes existantes pour le modèle.
- description
- str
Nouvelle description à utiliser pour le modèle. Ce nom remplace le nom existant.
- sample_input_dataset
- AbstractDataset
Exemple de jeu de données d’entrée à utiliser pour le modèle inscrit. Cet exemple de jeu de données d’entrée remplace le jeu de données existant.
- sample_output_dataset
- AbstractDataset
Exemple de jeu de données de sortie à utiliser pour le modèle inscrit. Cet exemple de jeu de données de sortie remplace le jeu de données existant.
- resource_configuration
- ResourceConfiguration
Configuration de ressource à utiliser pour exécuter le modèle inscrit.
Exceptions
update_tags_properties
Effectue une mise à jour des étiquettes et des propriétés du modèle.
update_tags_properties(add_tags=None, remove_tags=None, add_properties=None)
Paramètres
- add_properties
- dict(<xref:{str : str}>)
Dictionnaire de propriétés à ajouter.
Exceptions
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour