Schéma YAML de déploiement en ligne Kubernetes activé avec l’interface CLI (v2) Azure Arc
S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)
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.