Présentation de la cible de calcul Kubernetes dans Azure Machine Learning

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Avec Azure Machine Learning CLI/SDK Python v2, Azure Machine Learning a introduit une nouvelle cible de calcul : la cible de calcul Kubernetes. Vous pouvez facilement activer un cluster Azure Kubernetes Service (AKS) existant ou un cluster Kubernetes avec Azure Arc (Arc Kubernetes) pour en faire une cible de calcul Kubernetes dans Azure Machine Learning et l’utiliser pour entraîner ou déployer des modèles.

Diagramme illustrant la manière dont Azure Machine Learning se connecte à Kubernetes.

Cet article porte sur les points suivants :

  • Fonctionnement
  • Scénarios d’usage
  • Meilleures pratiques recommandées
  • KubernetesCompute et AksCompute hérité

Fonctionnement

Le calcul Azure Machine Learning Kubernetes prend en charge deux types de cluster Kubernetes :

  • Cluster AKS dans Azure. Avec votre cluster AKS autogéré dans Azure, vous pouvez gagner en sécurité et en contrôles pour répondre aux exigences de conformité, et obtenir la flexibilité nécessaire pour gérer la charge de travail ML des équipes.
  • Cluster Arc Kubernetes en dehors d’Azure. Avec le cluster Arc Kubernetes, vous pouvez entraîner ou déployer des modèles dans n’importe quelle infrastructure locale, sur plusieurs clouds ou à la périphérie.

Avec un déploiement d’extension de cluster simple sur un cluster AKS ou Arc Kubernetes, le cluster Kubernetes est pris en charge sans interruption dans Azure Machine Learning pour exécuter une charge de travail d’entraînement ou d’inférence. Il est facile d’activer et d’utiliser un cluster Kubernetes existant pour une charge de travail Azure Machine Learning en effectuant les simples étapes suivantes :

  1. Préparez un cluster Azure Kubernetes Service ou un cluster Arc Kubernetes.
  2. Déploiement de l’extension Azure Machine Learning.
  3. Attachez un cluster Kubernetes existant à votre espace de travail Azure Machine Learning.
  4. Utilisez la cible de calcul Kubernetes à partir de l’interface de ligne de commande v2, du SDK v2 et de l’interface utilisateur de Studio.

Équipe des opérations informatiques. L’équipe des opérations informatiques est responsable des trois premières étapes : préparer un cluster AKS ou Arc Kubernetes, déployer l’extension de cluster Azure Machine Learning et attacher le cluster Kubernetes à l’espace de travail Azure Machine Learning. En plus de ces étapes de configuration de calcul essentielles, l’équipe chargée des opérations informatiques utilise aussi des outils familiers comme Azure CLI ou kubectl pour effectuer les tâches suivantes pour l’équipe de science des données :

  • Configurations réseau et de sécurité, comme la connexion de serveur proxy sortant ou la configuration du pare-feu Azure, la configuration du routeur d’inférence (azureml-fe), l’arrêt SSL/TLS et la configuration du réseau virtuel.
  • Créez et gérez des types d’instance pour différents scénarios de charge de travail ML et bénéficiez d’une utilisation efficace des ressources de calcul.
  • Résolution des problèmes de charge de travail liés au cluster Kubernetes.

Équipe de science des données. Une fois que l’équipe des opérations informatiques a terminé la configuration du calcul et la création des cibles de calcul, l’équipe de science des données peut découvrir la liste de cibles de calcul et des types d’instances disponibles dans l’espace de travail Azure Machine Learning. Ces ressources de calcul peuvent être utilisées pour la charge de travail d’entraînement ou d’inférence. L’équipe de science des données spécifie le nom de la cible de calcul et le nom du type d’instance à l’aide de ses outils ou API préférés. Voici quelques exemples de noms : Azure Machine Learning CLI v2, Python SDK v2 et Studio UI.

Scénarios d’utilisation de Kubernetes

Avec un cluster Arc Kubernetes, vous pouvez créer, entraîner et déployer des modèles dans n’importe quelle infrastructure locale et sur plusieurs clouds à l’aide de Kubernetes. Cette possibilité ouvre de nouveaux modèles d’utilisation auparavant impossibles dans une environnement cloud. Le tableau suivant résume les nouveaux modèles d’utilisation activés par le calcul Azure Machine Learning Kubernetes :

Modèle d’utilisation Emplacement des données Motivation Configuration de l’infrastructure et implémentation d’Azure Machine Learning
Entraîner un modèle dans le cloud, déployer un modèle localement Cloud Utilisez le calcul cloud. Soit en raison de besoins de calcul élastiques, soit d’un matériel spécial comme un GPU.
Le modèle doit être déployé localement en raison d’exigences de sécurité, de conformité ou de latence
1. Calcul managé Azure dans le cloud.
2. Clusters Kubernetes managés localement par les clients.
3. MlOps entièrement automatisé en mode hybride, comprenant des étapes d’entraînement et de déploiement de modèle passant sans interruption du cloud à l’environnement local et vice versa.
4. Répétabilité, avec toutes les ressources suivies correctement. Modèle réentraîné si nécessaire et déploiement de modèle mis à jour automatiquement après le réentraînement.
Effectuer l’apprentissage du modèle en local et dans le cloud, déployer sur le cloud et en local Cloud Les organisations qui souhaitent combiner des investissements locaux avec la scalabilité du cloud. Placez le calcul cloud et local sous un seul volet de verre. Une seule source de vérité pour les données se trouve dans le cloud et peut être répliquée localement (c’est-à-dire en différé lors de l’utilisation ou de manière proactive). La capacité de calcul du cloud est principalement utilisée lorsque les ressources locales ne sont pas disponibles (en cours d’utilisation ou de maintenance) ou n’ont pas d’exigence matérielle spécifique (GPU). 1. Calcul managé Azure dans le cloud.
2. Clusters Kubernetes managés localement par les clients.
3. MlOps entièrement automatisé en mode hybride, comprenant des étapes d’entraînement et de déploiement de modèle passant sans interruption du cloud à l’environnement local et vice versa.
4. Répétabilité, avec toutes les ressources suivies correctement. Modèle réentraîné si nécessaire et déploiement de modèle mis à jour automatiquement après le réentraînement.
Entraîner un modèle localement, déployer un modèle dans le cloud Local Les données doivent rester locales en raison d’exigences de résidence des données.
Déployez un modèle dans le cloud pour un accès au service global ou pour une élasticité du calcul à des fins de mise à l’échelle et de débit.
1. Calcul managé Azure dans le cloud.
2. Clusters Kubernetes managés localement par les clients.
3. MlOps entièrement automatisé en mode hybride, comprenant des étapes d’entraînement et de déploiement de modèle passant sans interruption du cloud à l’environnement local et vice versa.
4. Répétabilité, avec toutes les ressources suivies correctement. Modèle réentraîné si nécessaire et déploiement de modèle mis à jour automatiquement après le réentraînement.
Apporter votre propre AKS dans Azure Cloud Sécurité et contrôles renforcés.
Tout Machine Learning IP privé pour empêcher l’exfiltration de données.
1. Cluster AKS derrière un réseau virtuel Azure.
2. Créez des points de terminaison privés dans le même réseau virtuel pour l’espace de travail Azure Machine Learning et ses ressources associées.
3. MLOps entièrement automatisé.
Cycle de vie ML complet en local Local Sécurisez les données sensibles ou les adresses IP propriétaires, comme les modèles et les codes/scripts ML. 1. Connexion sortante de serveur proxy locale.
2. Liaison privée Azure ExpressRoute et Azure Arc aux ressources Azure.
3. Clusters Kubernetes managés localement par les clients.
4. MLOps entièrement automatisé.

Limites

La cible KubernetesCompute dans les charges de travail Azure Machine Learning (apprentissage et inférence de modèle) présente les limitations suivantes :

  • La disponibilité des fonctionnalités d’évaluation dans Azure Machine Learning n’est pas garantie.
    • Limitation identifiée : les modèles (y compris le modèle de base) du catalogue de modèles et du registre ne sont pas pris en charge sur les points de terminaison en ligne Kubernetes.

Séparation des responsabilités entre l’équipe des opérations informatiques et l’équipe de science des données. Comme nous l’avons mentionné dans la section précédente, la gestion de votre capacité de calcul et de votre infrastructure pour la charge de travail ML est une tâche complexe. Il est préférable de confier cette tâche à l’équipe des opérations informatiques afin que l’équipe de science des données puisse se concentrer sur les modèles ML pour améliorer l’efficacité organisationnelle.

Créez et gérez des types d’instances pour différents scénarios de charge de travail ML. Chaque charge de travail ML utilise différentes quantités de ressources de calcul comme le processeur/GPU et la mémoire. Azure Machine Learning implémente le type d’instance en tant que définition de ressource personnalisée Kubernetes (CRD) avec les propriétés de nodeSelector et de requête/limite de ressources. Avec une liste soigneusement organisée de types d’instances, les opérations informatiques peuvent cibler la charge de travail ML sur des nœuds spécifiques et gérer efficacement l’utilisation des ressources de calcul.

Plusieurs espaces de travail Azure Machine Learning partagent le même cluster Kubernetes. Vous pouvez attacher plusieurs fois le cluster Kubernetes au même espace de travail Azure Machine Learning ou à différents espaces de travail Azure Machine Learning, créant plusieurs cibles de calcul dans un espace de travail ou plusieurs espaces de travail. Comme de nombreux clients organisent des projets de science des données autour de l’espace de travail Azure Machine Learning, plusieurs projets de science des données peuvent désormais partager le même cluster Kubernetes. Cela réduit considérablement les surcharges de gestion de l’infrastructure ML et les coûts informatiques.

Isolation de la charge de travail d’équipe/du projet à l’aide de l’espace de noms Kubernetes. Quand vous attachez un cluster Kubernetes à un espace de travail Azure Machine Learning, vous pouvez spécifier un espace de noms Kubernetes pour la cible de calcul. Toutes les charges de travail exécutées par la cible de calcul sont placées sous l’espace de noms spécifié.

KubernetesCompute et AksCompute hérité

Avec l’interface CLI Azure Machine Learning/le SDK Python v1, vous pouvez déployer des modèles sur AKS à l’aide de la cible AksCompute. La cible KubernetesCompute et la cible AksCompute prennent en charge l’intégration AKS, mais elles le font différemment. Le tableau suivant répertorie les différences clés :

Fonctions Intégration d’AKS à AksCompute (hérité) Intégration d’AKS à KubernetesCompute
Interface CLI/SDK v1 Oui Non
Interface CLI/SDK v2 Non Oui
Formation Non Oui
Inférence en temps réel Oui Oui
Inférence par lots Non Oui
Nouvelles fonctionnalités d’inférence en temps réel Aucun développement de nouvelles fonctionnalités Feuille de route active

Avec ces principales différences et l’évolution globale d’Azure Machine Learning vers l’utilisation du SDK/de l’interface CLI v2, Azure Machine Learning vous recommande d’utiliser la cible de calcul Kubernetes pour déployer des modèles si vous décidez d’utiliser AKS pour le déploiement de modèles.

Autres ressources

Exemples

Vous trouverez tous les exemples Azure Machine Learning dans https://github.com/Azure/azureml-examples.git.

Pour n’importe quel exemple Azure Machine Learning, vous devez uniquement mettre à jour le nom de la cible de calcul avec votre cible de calcul Kubernetes, et c’est tout.

Étapes suivantes