Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À :
extension Azure CLI ml v1
Kit de développement logiciel (SDK) Python azureml v1
Important
Cet article fournit des informations sur l’utilisation du Kit de développement logiciel (SDK) Azure Machine Learning v1. Sdk v1 est déconseillé depuis le 31 mars 2025. La prise en charge prendra fin le 30 juin 2026. Vous pouvez installer et utiliser le Kit de développement logiciel (SDK) v1 jusqu’à cette date. Vos flux de travail existants utilisant le Kit de développement logiciel (SDK) v1 continueront à fonctionner après la date de fin de support. Toutefois, elles peuvent être exposées à des risques de sécurité ou à des modifications disruptives en cas de changements architecturaux du produit.
Nous vous recommandons de passer au SDK v2 avant le 30 juin 2026. Pour plus d’informations sur le SDK v2, consultez Qu’est-ce qu’Azure Machine Learning CLI et le SDK Python v2 ? et la référence du SDK v2.
Cet article explique comment profiler un Machine Learning sur un modèle pour déterminer la quantité d’UC et de mémoire que vous devez allouer pour le modèle lors du déploiement de celui-ci en tant que service web.
Important
Cet article s’applique à l’interface CLI v1 et au Kit de développement logiciel (SDK) v1. Cette technique de profilage n’est pas disponible pour v2 de l’interface CLI ou du SDK.
Important
Certaines des commandes Azure CLI de cet article utilisent l’extension azure-cli-ml, ou v1, pour Azure Machine Learning. La prise en charge de CLI v1 a pris fin le 30 septembre 2025. Microsoft ne fournira plus de support technique ni de mises à jour pour ce service. Vos flux de travail existants utilisant CLI v1 continueront à fonctionner après la date de fin du support. Toutefois, elles peuvent être exposées à des risques de sécurité ou à des modifications disruptives en cas de changements architecturaux du produit.
Nous vous recommandons de passer à l’extension ml, ou v2, dès que possible. Pour découvrir plus d’informations sur l’extension v2, consultez Extension CLI d’Azure Machine Learning et Kit de développement logiciel (SDK) Python v2.
Prérequis
Cet article suppose que vous entraînez et inscrivez un modèle auprès d’Azure Machine Learning. Consultez cet exemple de tutoriel pour obtenir un exemple d’apprentissage et d’inscription d’un modèle scikit-learn avec Azure Machine Learning.
Limites
- Le profilage ne fonctionne pas quand Azure Container Registry (ACR) pour votre espace de travail se trouve derrière un réseau virtuel.
Exécuter le profileur
Une fois que vous avez inscrit votre modèle et préparé les autres composants nécessaires pour son déploiement, vous pouvez déterminer l’UC et la mémoire dont le service déployé a besoin. Le profilage teste le service qui exécute votre modèle et retourne des informations telles que l’utilisation du processeur, l’utilisation de la mémoire et la latence de la réponse. Il fournit également une recommandation pour le processeur et la mémoire en fonction de l’utilisation des ressources.
Pour profiler votre modèle, vous avez besoin des éléments suivants :
- Un modèle inscrit.
- Une configuration d’inférence basée sur votre script d’entrée et la définition de l’environnement d’inférence.
- Un jeu de données tabulaires à une seule colonne, où chaque ligne contient une chaîne représentant des exemples de données de requête.
Important
Azure Machine Learning prend uniquement en charge le profilage des services qui s’attendent à ce que leurs données de requête soient une chaîne, par exemple : json sérialisé par chaîne, texte, image sérialisée par chaîne, etc. Le contenu de chaque ligne du jeu de données (chaîne) est placé dans le corps de la requête HTTP et envoyé au service encapsulant le modèle pour le scoring.
Important
Nous prenons uniquement en charge le profilage jusqu’à 2 processeurs dans les régions ChinaEast2 et USGovArizona.
Voici un exemple de la façon dont vous pouvez construire un jeu de données d’entrée pour profiler un service qui s’attend à ce que ses données de requête entrantes contiennent un json sérialisé. Dans ce cas, nous avons créé un jeu de données basé sur 100 instances du même contenu de données de requête. Dans les scénarios réels, nous vous suggérons d’utiliser des jeux de données plus volumineux contenant différentes entrées, en particulier si votre utilisation ou le comportement des ressources du modèle sont dépendants de l’entrée.
S’APPLIQUE À :
Kit de développement logiciel (SDK) Azure Machine Learning v1 pour Python
import json
from azureml.core import Datastore
from azureml.core.dataset import Dataset
from azureml.data import dataset_type_definitions
input_json = {'data': [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]}
# create a string that can be utf-8 encoded and
# put in the body of the request
serialized_input_json = json.dumps(input_json)
dataset_content = []
for i in range(100):
dataset_content.append(serialized_input_json)
dataset_content = '\n'.join(dataset_content)
file_name = 'sample_request_data.txt'
f = open(file_name, 'w')
f.write(dataset_content)
f.close()
# upload the txt file created above to the Datastore and create a dataset from it
data_store = Datastore.get_default(ws)
data_store.upload_files(['./' + file_name], target_path='sample_request_data')
datastore_path = [(data_store, 'sample_request_data' +'/' + file_name)]
sample_request_data = Dataset.Tabular.from_delimited_files(
datastore_path, separator='\n',
infer_column_types=True,
header=dataset_type_definitions.PromoteHeadersBehavior.NO_HEADERS)
sample_request_data = sample_request_data.register(workspace=ws,
name='sample_request_data',
create_new_version=True)
Une fois que le jeu de données contenant des exemples de données de requête est prêt, créez une configuration d’inférence. La configuration de l’inférence est basée sur le fichier score.py et la définition de l’environnement. L’exemple suivant montre comment créer une configuration d’inférence et exécuter le profilage :
from azureml.core.model import InferenceConfig, Model
from azureml.core.dataset import Dataset
model = Model(ws, id=model_id)
inference_config = InferenceConfig(entry_script='path-to-score.py',
environment=myenv)
input_dataset = Dataset.get_by_name(workspace=ws, name='sample_request_data')
profile = Model.profile(ws,
'unique_name',
[model],
inference_config,
input_dataset=input_dataset)
profile.wait_for_completion(True)
# see the result
details = profile.get_details()
S’APPLIQUE À :
extension Azure CLI ml v1
La commande suivante montre comment profiler un modèle en tirant parti de l’interface CLI :
az ml model profile -g <resource-group-name> -w <workspace-name> --inference-config-file <path-to-inf-config.json> -m <model-id> --idi <input-dataset-id> -n <unique-name>
Conseil
Pour conserver les informations retournées par le profilage, utilisez des balises ou des propriétés pour le modèle. L’utilisation de balises ou de propriétés stocke les données avec le modèle dans le registre du modèle. Les exemples suivants illustrent l’ajout d’une nouvelle balise contenant les informations requestedCpu et requestedMemoryInGb :
model.add_tags({'requestedCpu': details['requestedCpu'],
'requestedMemoryInGb': details['requestedMemoryInGb']})
az ml model profile -g <resource-group-name> -w <workspace-name> --i <model-id> --add-tag requestedCpu=1 --add-tag requestedMemoryInGb=0.5
Étapes suivantes
- Résoudre des problèmes d’échec de déploiement
- Déployer dans Azure Kubernetes Service
- Créer des applications clientes pour utiliser des services Web
- Mettre à jour un service Web
- Guide pratique pour déployer un modèle en utilisant une image Docker personnalisée
- Utiliser TLS pour sécuriser un service web via Azure Machine Learning
- Monitorer vos modèles Azure Machine Learning avec Application Insights
- Collecter des données pour des modèles en production
- Créer des alertes d’événement et des déclencheurs pour les déploiements de modèle