Présentation de la cible de calcul Kubernetes dans Azure Machine Learning
S’APPLIQUE À :Extension Azure CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)
L’interface CLI Azure Machine Learning et le SDK Python v2 prennent en charge les cibles de calcul Kubernetes. Vous pouvez activer un cluster Azure Kubernetes Service (AKS) existant ou un cluster Kubernetes avec Azure Arc (Arc Kubernetes) comme cible de calcul Kubernetes. Utilisez la capacité de calcul dans Machine Learning pour entraîner ou déployer des modèles.
Cet article explique comment utiliser la cible de calcul Kubernetes dans Machine Learning, notamment des scénarios d’utilisation, les bonnes pratiques recommandées et une comparaison des cibles KubernetesCompute
et AksCompute
héritée.
Fonctionnement de la cible de calcul Kubernetes
Le calcul Kubernetes Azure Machine Learning prend en charge deux types de cluster Kubernetes.
Compute | Emplacement | Description |
---|---|---|
Cluster AKS | Dans Azure | Avec votre cluster AKS autogéré dans Azure, vous pouvez renforcer la sécurité et les contrôles pour répondre aux exigences de conformité, et gérer de manière flexible la charge de travail Machine Learning de l’équipe. |
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 ou multicloud, 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 Machine Learning pour exécuter une charge de travail d’entraînement ou d’inférence. Vous pouvez facilement activer et utiliser un cluster Kubernetes existant pour une charge de travail Machine Learning avec le processus suivant :
Étape 1 : Préparer un cluster Azure Kubernetes Service ou un cluster Arc Kubernetes.
Étape 2 : Déployer l’extension de cluster Azure Machine Learning.
Étape 3 : Attacher le cluster Kubernetes à votre espace de travail Azure Machine Learning.
Étape 4 : Utiliser la cible de calcul Kubernetes à partir de l’interface CLI v2, du SDK v2 ou de l’interface utilisateur Azure Machine Learning Studio.
Voici les principales responsabilités de ce processus :
L'équipe des opérations informatiques est responsable des étapes 1, 2 et 3. Cette équipe prépare un cluster AKS ou Arc Kubernetes, déploie l’extension de cluster Machine Learning et attache le cluster Kubernetes à l’espace de travail Machine Learning. En plus de ces étapes essentielles de configuration du calcul, l’équipe 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 :
Configurez les options de réseau et de sécurité, comme la connexion de serveur proxy sortante ou le pare-feu Azure, la configuration du routeur d’inférence (azureml-fe), la terminaison 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 Machine Learning et bénéficiez d’une utilisation efficace des ressources de calcul.
Résolvez les problèmes de charge de travail liés au cluster Kubernetes.
L’équipe de science des données commence ses tâches une fois que l’équipe des opérations informatiques a terminé la configuration du calcul et la création des cibles de calcul. Cette équipe découvre une liste de cibles de calcul et de types d’instance disponibles dans l’espace de travail 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 en utilisant les outils ou API qu’elle préfère. Elle peut utiliser l’interface CLI Azure Machine Learning v2, le SDK Python v2 ou l’interface utilisateur Machine Learning Studio.
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 multicloud en utilisant Kubernetes. Cette stratégie offre de nouveaux modèles d’utilisation qui n’étaient pas possibles auparavant dans un environnement cloud. Le tableau suivant récapitule les nouveaux modèles d’utilisation offerts par le calcul Kubernetes Azure Machine Learning :
Modèle d’utilisation | Emplacement des données | Objectifs et exigences | Configuration des scénarios |
---|---|---|---|
Entraîner un modèle dans le cloud, déployer un modèle localement | Cloud | Utilisez le calcul cloud pour prendre en charge les besoins de calcul élastique ou un matériel spécial comme un GPU. Le déploiement de modèle doit être local en raison des exigences de sécurité, de conformité ou de latence. |
- Calcul géré par Azure dans le cloud - Kubernetes géré par le client localement - Opérations de Machine Learning entièrement automatisées en mode hybride, notamment les étapes d’entraînement et de déploiement de modèle effectuées sans interruption entre le cloud et l’environnement local - Reproductible, toutes les ressources correctement suivies, modèle réentraîné en fonction des besoins, déploiement 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 | Combinez les investissements locaux et la scalabilité du cloud. Gérez le calcul dans le cloud et localement à partir de la même console. Accédez à une source unique de vérité pour les données dans le cloud et répliquez localement (en différé pendant l’utilisation ou de manière proactive). Activez l’utilisation principale du calcul cloud quand les ressources locales ne sont pas disponibles (en cours d’utilisation ou de maintenance) ou ne respectent pas les exigences matérielles spécifiques (GPU). |
- Calcul géré par Azure dans le cloud. Kubernetes géré par le client localement - Opérations de Machine Learning entièrement automatisées en mode hybride, notamment les étapes d’entraînement et de déploiement de modèle effectuées sans interruption entre le cloud et l’environnement local - Reproductible, toutes les ressources correctement suivies, modèle réentraîné en fonction des besoins, déploiement mis à jour automatiquement après le réentraînement |
Entraîner un modèle localement, déployer un modèle dans le cloud | Sur site | Stockez les données localement pour répondre aux 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. |
- Calcul géré par Azure dans le cloud - Kubernetes géré par le client localement - Opérations de Machine Learning entièrement automatisées en mode hybride, notamment les étapes d’entraînement et de déploiement de modèle effectuées sans interruption entre le cloud et l’environnement local - Reproductible, toutes les ressources correctement suivies, modèle réentraîné en fonction des besoins, déploiement mis à jour automatiquement après le réentraînement |
Apporter votre propre AKS dans Azure | Cloud | Renforcez la sécurité et les contrôles. Établissez un Machine Learning avec des IP entièrement privées pour empêcher l’exfiltration de données. |
- Cluster AKS derrière un réseau virtuel Azure - Points de terminaison privés dans le même réseau virtuel pour l’espace de travail Azure Machine Learning et les ressources associées Opérations de Machine Learning entièrement automatisées |
Cycle de vie du Machine Learning entièrement local | Sur site | Sécurisez les données sensibles ou l’IP propriétaire, comme les modèles, le code et les scripts Machine Learning. | - Connexion de serveur proxy sortante locale - Liaison privée Azure ExpressRoute et Azure Arc aux ressources Azure - Kubernetes géré par le client localement - Opérations de Machine Learning entièrement automatisées |
Limitations de la cible de calcul Kubernetes
Une cible KubernetesCompute
dans les charges de travail Azure Machine Learning (entraînement et inférence de modèle) a les limitations suivantes :
- La disponibilité des fonctionnalités d’évaluation dans Azure Machine Learning n’est pas garantie.
- 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.
- Le processus de création d’un déploiement d’inférence de modèle à l’intérieur du cluster a une limite de délai d’expiration de 20 minutes. Cela comprend le téléchargement de l'image, le téléchargement du modèle et l'initialisation des scripts utilisateur.
Meilleures pratiques recommandées
Cette section récapitule les bonnes pratiques recommandées pour l’utilisation d’un calcul Kubernetes.
Séparation des responsabilités entre l’équipe des opérations informatiques et l’équipe de science des données. Comme mentionné précédemment, la gestion de votre capacité de calcul et de votre infrastructure pour la charge de travail Machine Learning est une tâche complexe. La meilleure approche est de laisser l’équipe des opérations informatiques gérer la tâche, afin que l’équipe de science des données puisse se concentrer sur les modèles Machine Learning pour une efficacité organisationnelle.
Créez et gérez des types d’instance pour différents scénarios de charge de travail Machine Learning. Chaque charge de travail Machine Learning utilise différentes quantités de ressources de calcul de type processeur/GPU et mémoire. Azure Machine Learning implémente la définition de ressource personnalisée (CRD) Kubernetes comme type d’instance, avec les propriétés nodeSelector
et resource request/limit
. À partir d’une liste soigneusement organisée des types d’instance, l’équipe des opérations informatiques peut cibler la charge de travail Machine Learning 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 un cluster Kubernetes plusieurs fois au même espace de travail Machine Learning ou à différents espaces de travail. Ce processus crée plusieurs cibles de calcul dans un seul ou plusieurs espaces de travail. Comme de nombreux clients organisent des projets de science des données autour de l’espace de travail Machine Learning, plusieurs projets de science des données peuvent désormais partager le même cluster Kubernetes. Cette approche réduit considérablement les surcharges de gestion de l’infrastructure Machine Learning et améliore 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 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é.
Comparaison des cibles KubernetesCompute et AksCompute héritée
Avec l’interface CLI Azure Machine Learning/le SDK Python v1, vous pouvez déployer des modèles sur AKS en utilisant la cible AksCompute
héritée. Les cibles KubernetesCompute
et AksCompute
prennent en charge l’intégration AKS, mais l’approche de prise en charge est différente. Le tableau suivant résume les principales différences :
Fonctionnalité | AksCompute (héritée) | KubernetesCompute |
---|---|---|
Utiliser l’interface CLI/le SDK v1 | Oui | Non |
Utiliser l’interface CLI/le SDK v2 | Non | Oui |
Configurer l’entraînement | Non | Oui |
Appliquer une inférence en temps réel | Oui | Oui |
Appliquer une inférence par lots | Non | Oui |
Accéder aux nouvelles fonctionnalités d’inférence en temps réel | Aucun développement de nouvelles fonctionnalités | Feuille de route active disponible |
Compte tenu de ces différences et de l’évolution générale du Machine Learning concernant l’utilisation de l’interface CLI/du SDK v2, l’approche recommandée est d’utiliser la cible de calcul Kubernetes (KubernetesCompute
) pour le déploiement de modèle AKS.
Pour plus d’informations, explorez les articles suivants :
- Consulter les version et régions Kubernetes prises en charge
- Connecter des travaux Machine Learning à un stockage de données personnalisé
Exemples de machine learning
Des exemples de Machine Learning sont disponibles dans le dépôt Azure Machine Learning (azureml-examples) sur GitHub. Dans tous les exemples, remplacez le nom de la cible de calcul par votre cible de calcul Kubernetes, puis exécutez l’exemple.
Voici plusieurs options :
- Exemples de travaux d’entraînement avec l’interface CLI v2
- Exemples de travaux d’entraînement avec le SDK v2
- Exemples de déploiement de modèle avec des points de terminaison en ligne et l’interface CLI v2
- Exemples de déploiement de modèle avec des points de terminaison en ligne et le SDK v2
- Exemples de points de terminaison par lots avec l’interface CLI v2