Schéma YAML de déploiement en ligne Kubernetes activé avec l’interface CLI (v2) Azure Arc

S’APPLIQUE À :Extension Azure CLI ml v2 (actuel)

Le schéma JSON source se trouve à l’adresse https://azuremlschemas.azureedge.net/latest/kubernetesOnlineDeployment.schema.json.

Notes

La syntaxe YAML détaillée dans ce document est basée sur le schéma JSON pour la dernière version de l’extension ML CLI v2. Le fonctionnement de cette syntaxe est garanti uniquement avec la dernière version de l’extension ML CLI v2. Vous trouverez les schémas des versions d’extension plus anciennes sur https://azuremlschemasprod.azureedge.net/.

Syntaxe YAML

Clé Type Description Valeurs autorisées Valeur par défaut
$schema string Schéma YAML. Si vous utilisez l’extension VS Code d’Azure Machine Learning pour créer le fichier YAML, en incluant $schema en haut de votre fichier, vous pouvez appeler des complétions de schémas et de ressources.
name string Obligatoire. Nom du déploiement.

Les règles de nommage sont définies ici.
description string Description du déploiement.
tags object Dictionnaire d’étiquettes pour le déploiement.
endpoint_name string Obligatoire. Nom du point de terminaison sous lequel créer le déploiement.
model chaîne ou objet Modèle à utiliser pour le déploiement. Cette valeur peut être une référence à un modèle versionné existant dans l’espace de travail ou une spécification de modèle inline.

Pour référencer un modèle existant, utilisez la syntaxe azureml:<model-name>:<model-version>.

Pour définir un modèle inline, suivez le schéma du modèle.

En guise de bonne pratique pour les scénarios de production, vous devez créer le modèle séparément et le référencer ici.

Ce champ est facultatif pour les scénarios de déploiement de conteneurs personnalisés.
model_mount_path string Chemin pour monter le modèle dans un conteneur personnalisé. S’applique uniquement aux scénarios de déploiement de conteneurs personnalisés. Si le champ model est spécifié, il est monté sur ce chemin dans le conteneur.
code_configuration object Configuration de la logique du code de scoring.

Ce champ est facultatif pour les scénarios de déploiement de conteneurs personnalisés.
code_configuration.code string Chemin local au répertoire de code source pour le scoring du modèle.
code_configuration.scoring_script string Chemin relatif au fichier de scoring dans le répertoire de code source.
environment_variables object Dictionnaire de paires clé-valeur de variable d’environnement à définir dans le conteneur de déploiement. Vous pouvez accéder à ces variables d’environnement à partir de vos scripts de scoring.
environment chaîne ou objet Obligatoire. Environnement à utiliser pour le déploiement. Cette valeur peut être une référence à un environnement versionné existant dans l’espace de travail ou une spécification d’environnement inline.

Pour référencer un environnement existant, utilisez la syntaxe azureml:<environment-name>:<environment-version>.

Pour définir un environnement inline, suivez le schéma de l’environnement.

En guise de bonne pratique pour les scénarios de production, vous devez créer l’environnement séparément et le référencer ici.
instance_type string Type d’instance utilisé pour placer la charge de travail d’inférence. S’il est omis, la charge de travail d’inférence sera placée sur le type d’instance par défaut du cluster Kubernetes spécifié dans le champ compute du point de terminaison. S’il est spécifié, la charge de travail d’inférence sera placée sur le type d’instance sélectionné.

L’ensemble des types d’instances pour un cluster Kubernetes est configuré par le biais de la définition de ressource personnalisée de cluster (CRD) Kubernetes. Ils ne font pas partie du schéma YAML Azure Machine Learning pour l’attachement de calcul Kubernetes. Pour plus d’informations, consultez Créer et sélectionner des types d’instances Kubernetes.
instance_count entier Nombre d’instances à utiliser pour le déploiement. Spécifiez la valeur en fonction de la charge de travail que vous attendez. Ce champ est obligatoire uniquement si vous utilisez le type de mise à l’échelle default (scale_settings.type: default).

Vous pouvez mettre à jour instance_count après la création du déploiement en utilisant la commande az ml online-deployment update.
app_insights_enabled boolean Indique s’il faut activer l’intégration à l’instance Azure Application Insights associée à votre espace de travail. false
scale_settings object Paramètres de mise à l’échelle pour le déploiement. Les deux types de paramètres de mise à l’échelle pris en charge sont le type de mise à l'échelle default et le type de mise à l'échelle target_utilization.

Avec le type de mise à l’échelle default (scale_settings.type: default), vous pouvez augmenter et diminuer manuellement le nombre d’instances après la création du déploiement en mettant à jour la propriété instance_count.

Pour configurer le type de mise à l'échelle target_utilization (scale_settings.type: target_utilization), consultez TargetUtilizationScaleSettings pour obtenir l’ensemble des propriétés configurables.
scale_settings.type string Type de mise à l’échelle. default, target_utilization target_utilization
data_collector object Paramètres de collecte de données pour le déploiement. Consultez DataCollector pour connaître l’ensemble de propriétés configurables.
request_settings object Paramètres de la demande de scoring pour le déploiement. Consultez RequestSettings pour obtenir l’ensemble des propriétés configurables.
liveness_probe object Paramètres de probe liveness utilisée pour monitorer régulièrement l’intégrité du conteneur. Consultez ProbeSettings pour obtenir l’ensemble des propriétés configurables.
readiness_probe object Paramètres de la probe readiness utilisée pour valider si le conteneur est prêt à traiter le trafic. Consultez ProbeSettings pour obtenir l’ensemble des propriétés configurables.
resources object Besoins en ressources de conteneur.
resources.requests object Requêtes de ressources pour le conteneur. Consultez ContainerResourceRequests pour obtenir l’ensemble des propriétés configurables.
resources.limits object Limites de ressources pour le conteneur. Consultez ContainerResourceLimits pour obtenir l’ensemble des propriétés configurables.

RequestSettings

Clé Type Description Valeur par défaut
request_timeout_ms entier Délai d’expiration de scoring en millisecondes. 5000
max_concurrent_requests_per_instance entier Nombre maximal de demandes simultanées par instance autorisées pour le déploiement.

Ne modifiez pas la valeur par défaut de ce paramètre, sauf indication contraire du support technique Microsoft ou d’un membre de l’équipe Azure Machine Learning.
1
max_queue_wait_ms entier Durée maximale en millisecondes pendant laquelle une requête reste dans la file d’attente. 500

ProbeSettings

Clé Type Description Valeur par défaut
period entier Fréquence (en secondes) d’exécution de la probe. 10
initial_delay entier Nombre de secondes après le démarrage du conteneur avant le lancement de la probe. La valeur minimale est 1. 10
timeout entier Délai d’expiration de la probe en secondes. La valeur minimale est 1. 2
success_threshold entier Nombre minimal de réussites consécutives pour que la probe soit considérée comme réussie après avoir échoué. La valeur minimale est 1. 1
failure_threshold entier En cas d’échec d’une probe, le réessaie failure_threshold fois avant d’abandonner. Dans le cas d’une probe liveness, un abandon signifie que le conteneur est redémarré. Dans le cas d’une probe readiness, le conteneur est marqué comme non prêt. La valeur minimale est 1. 30

TargetUtilizationScaleSettings

Clé Type Description Valeur par défaut
type const Type de mise à l’échelle target_utilization
min_instances entier Nombre minimal d’instances à utiliser. 1
max_instances entier Nombre maximal d’instances auquel mettre à l'échelle. 1
target_utilization_percentage entier Utilisation de l’UC cible pour la mise à l’échelle automatique. 70
polling_interval entier Fréquence à laquelle l’autoscaler doit tenter de mettre à l’échelle le déploiement, en secondes. 1

ContainerResourceRequests

Clé Type Description
cpu string Nombre de cœurs de processeur demandés pour le conteneur.
memory string Taille de la mémoire demandée pour le conteneur
nvidia.com/gpu string Nombre de cartes GPU NVIDIA demandées pour le conteneur

ContainerResourceLimits

Clé Type Description
cpu string Limite du nombre de cœurs de processeur pour le conteneur.
memory string Limite de la taille de la mémoire pour le conteneur.
nvidia.com/gpu string Limite du nombre de cartes GPU NVIDIA pour le conteneur

DataCollector

Clé Type Description Valeur par défaut
sampling_rate float Pourcentage des données à collecter, représenté sous forme de taux décimal. Par exemple, la valeur 1,0 représente la collecte de 100 % des données. 1.0
rolling_rate string Fréquence de partitionnement des données dans le stockage. La valeur peut être : Minute, Heure, Jour, Mois, Année. Hour
collections object Ensemble de collection_name individuels et leurs paramètres respectifs pour ce déploiement.
collections.<collection_name> object Regroupement logique des données d’inférence de production à collecter (exemple : model_inputs). Il existe deux noms réservés : request et response, qui correspondent à la collecte de données de charge utile de requête et de réponse HTTP respectivement. Tous les autres noms sont arbitraires et peuvent être définis par l’utilisateur.

Remarque : Chaque collection_name doit correspondre au nom de l’objet Collector utilisé dans le déploiement score.py pour collecter les données d’inférence de production. Pour plus d’informations sur la collecte de données de charge utile et la collecte de données avec le SDK Python fourni, consultez Collecter des données à partir de modèles en production.
collections.<collection_name>.enabled boolean Indique si la collecte de données doit être activée pour le collection_name spécifié. 'False''
collections.<collection_name>.data.name string Nom de la ressource de données à inscrire avec les données collectées. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path string Chemin complet du magasin de données Azure Machine Learning dans lequel les données collectées doivent être inscrites comme ressource de données. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version entier Version de la ressource de données à inscrire avec les données collectées dans le stockage Blob. 1

Remarques

Les commandes az ml online-deployment peuvent être utilisées pour gérer les déploiements en ligne Kubernetes d’Azure Machine Learning.

Exemples

Des exemples sont disponibles dans le référentiel d’exemples GitHub.

Étapes suivantes