Prochain webinaire : La sécurité d'entreprise pour Claude Code | 21 avril · 11 h PST. Inscrivez-vous ici →

Apprentissage automatique sur Kubernetes #2 : architecture Kubernetes pour MLOps

Par TrueFoundry

Mis à jour : March 27, 2023

Résumez avec

Les opérations d'apprentissage automatique (MLOps) constituent un élément essentiel des flux de travail modernes de science des données. Le MLOps implique le développement, le déploiement et la gestion de modèles d'apprentissage automatique et de l'infrastructure associée. L'un des principaux défis des MLOps est la nécessité d'une infrastructure évolutive et flexible capable de répondre aux exigences uniques des charges de travail de machine learning. Kubernetes est une plateforme puissante capable de fournir l'infrastructure nécessaire pour prendre en charge les MLOP à grande échelle. Cependant, la conception d'une architecture Kubernetes pour les MLOps nécessite une prise en compte attentive de facteurs tels que la sécurité, la gestion des ressources et les dépendances entre les applications. Dans ce blog, nous allons explorer quelques bonnes pratiques pour concevoir une architecture Kubernetes pour les MLOps.

Principales considérations relatives à la conception de l'architecture MLOps à l'aide de Kubernetes

Conception de l'espace de noms

Les espaces de noms Kubernetes permettent de partitionner les ressources au sein d'un cluster. Dans une architecture MLOps, il est courant d'utiliser des espaces de noms pour séparer différents environnements tels que le développement, les tests et la production. Cela permet de garantir que les applications et les services sont isolés les uns des autres et de réduire le risque de conflits entre ressources et applications. Une conception efficace des espaces de noms peut également améliorer les performances globales du cluster et l'utilisation des ressources.

Lorsque vous concevez des espaces de noms pour les MLOps, tenez compte des points suivants :

  1. Utilisez des noms descriptifs qui reflètent l'objectif de l'espace de noms (par exemple, « dev », « test », « prod »).
  2. Utilisez le RBAC (contrôle d'accès basé sur les rôles) pour restreindre l'accès aux espaces de noms en fonction des rôles des utilisateurs.
  3. Utilisez des quotas de ressources pour limiter la quantité de processeur et de mémoire pouvant être utilisée par les applications dans chaque espace de noms

Sélection du nœud

Kubernetes utilise un algorithme de planification pour déterminer les nœuds à utiliser pour déployer des applications. Une sélection correcte des nœuds peut garantir des performances optimales et réduire les risques de problèmes de performances et de latence du réseau.

Lors de la conception d'une architecture Kubernetes pour les MLOps, il est important de prendre en compte les facteurs suivants lors de la sélection des nœuds :

  1. Le type et la quantité de ressources requises par les applications (par exemple, CPU, mémoire, GPU).
  2. Latence du réseau entre les nœuds et l'emplacement de stockage des données.
  3. Emplacement de tout matériel spécialisé requis pour les charges de travail d'apprentissage automatique.

Pour optimiser la sélection des nœuds, vous pouvez utiliser des outils tels que les sélecteurs de nœuds, l'affinité des nœuds et les teintes et les tolérances. Par exemple, vous pouvez utiliser des sélecteurs de nœuds pour spécifier les nœuds adaptés aux charges de travail d'apprentissage automatique nécessitant des GPU.

Exemple d'illustration : supposons que vous disposiez d'un ensemble de données volumineux sur lequel vous devez entraîner un modèle d'apprentissage automatique et que vous souhaitiez utiliser une approche d'entraînement distribuée pour accélérer le processus. Vous décidez d'utiliser TensorFlow et d'exécuter la tâche de formation sur un cluster Kubernetes. Pour optimiser les performances de la tâche de formation, vous devez vous assurer que les nœuds que vous sélectionnez pour exécuter la tâche disposent de la bonne combinaison de ressources CPU, GPU, mémoire et stockage. Par exemple, vous souhaiterez peut-être sélectionner des nœuds dotés de GPU dotés d'une certaine quantité de mémoire ou des nœuds dotés d'un stockage SSD pour un accès plus rapide aux données.

Comment utiliser les sélecteurs de nœuds et l'affinité pour le scénario ci-dessus ?

Dans ce scénario, vous pouvez utiliser des étiquettes de nœuds et des sélecteurs de nœuds dans Kubernetes pour vous assurer que votre tâche de formation ML s'exécute sur des nœuds dotés de la bonne combinaison de ressources. Vous pouvez étiqueter les nœuds du cluster en fonction de leurs spécifications matérielles, telles que le type de processeur, le type de GPU, la taille de la mémoire et le type de stockage, puis utiliser des sélecteurs de nœuds dans les spécifications de votre tâche de formation pour spécifier les nœuds à utiliser.

Par exemple, vous pouvez définir un sélecteur de nœuds dans votre spécification de tâche TensorFlow qui sélectionne les nœuds avec une certaine combinaison d'étiquettes, telles que « CPU=Intel » et « GPU=NVIDIA » et « Memory>=32 Go ». Cela garantirait que votre tâche de formation s'exécute sur des nœuds dotés des spécifications matérielles appropriées, ce qui optimiserait les performances de la tâche et réduirait le temps nécessaire à la formation du modèle.

Vous pouvez également utiliser les règles d'affinité et d'anti-affinité des nœuds de Kubernetes pour spécifier des exigences de planification plus complexes, telles que la planification des pods uniquement sur les nœuds dotés d'un certain ensemble d'étiquettes ou la prévention de la planification des pods sur des nœuds dotés de certains labels. Cela permettrait de contrôler plus finement la planification de votre tâche de formation et pourrait contribuer à garantir qu'elle s'exécute sur les nœuds les mieux adaptés à la tâche.

Gestion des ressources

La gestion des ressources est essentielle pour garantir le bon fonctionnement et l'efficacité des applications et des services sur Kubernetes. Cela permet également de prévenir les problèmes de performances et de réduire les risques de défaillances.

Lorsque vous concevez une architecture Kubernetes pour les MLOps, tenez compte des meilleures pratiques suivantes en matière de gestion des ressources :

  1. Utilisez les demandes et les limites de ressources pour spécifier la quantité de processeur et de mémoire requise par les applications.
  2. Utilisez la mise à l'échelle automatique des pods horizontaux (HPA) pour redimensionner automatiquement le nombre de répliques en fonction de l'utilisation du processeur ou de la mémoire.
  3. Utilisez les outils natifs de Kubernetes tels que kube-top, kube-state-metrics et Prometheus pour surveiller l'utilisation des ressources.

Haute disponibilité

Dans une architecture MLOps, la haute disponibilité est essentielle pour garantir que les services sont toujours disponibles pour les utilisateurs, même en cas de panne, améliorant ainsi la fiabilité des charges de travail d'apprentissage automatique et réduisant les risques de pannes

Pour atteindre une haute disponibilité sur Kubernetes, prenez en compte les points suivants :

  1. Utilisez plusieurs répliques d'applications critiques pour vous assurer qu'elles peuvent survivre aux défaillances des nœuds.
  2. Utilisez un équilibreur de charge pour répartir le trafic entre plusieurs répliques.
  3. Utilisez les outils natifs de Kubernetes tels que les sondes de préparation et les sondes de vivacité pour détecter les défaillances des applications et y remédier.
Exemple d'illustration : supposons que vous êtes une entreprise SaaS qui fournit un moteur de recommandation basé sur le ML à ses clients. Votre moteur de recommandation utilise un modèle d'apprentissage profond qui nécessite une quantité importante de ressources informatiques pour s'entraîner et fonctionner. Vous devez vous assurer que votre charge de travail de machine learning est hautement disponible et que vous pouvez allouer les ressources de manière efficace pour gérer les fluctuations de la demande.

Gérer les ressources et garantir la haute disponibilité à l'aide des fonctionnalités internes de Kubernetes

Pour gérer efficacement vos ressources, vous pouvez utiliser les fonctionnalités de gestion des ressources intégrées de Kubernetes, telles que les demandes de ressources, les limites et les quotas. Vous pouvez définir des demandes de ressources et des limites pour chaque composant de votre moteur de recommandation, tel que le serveur Web, la base de données et le modèle d'apprentissage automatique. Cela permettrait de s'assurer que chaque composante dispose de la bonne quantité de ressources pour fonctionner efficacement et que les ressources ne sont pas gaspillées en cas de surapprovisionnement.

En outre, vous pouvez configurer un autoscaler à pods horizontaux (HPA) dans Kubernetes qui adapte automatiquement votre moteur de recommandation en fonction de la demande. Le HPA surveillerait l'utilisation des ressources de votre charge de travail et ajusterait le nombre de répliques de chaque composant en fonction de la demande. Cela vous permettra de disposer de la bonne quantité de ressources pour faire face aux fluctuations de la demande et de ne pas surapprovisionner ou de ne pas sous-approvisionner.

Pour garantir la haute disponibilité de votre charge de travail, vous pouvez déployer votre moteur de recommandation dans plusieurs zones de disponibilité (AZ) de l'infrastructure de votre fournisseur de cloud. Vous pouvez utiliser les règles d'affinité et d'anti-affinité des nœuds de Kubernetes pour vous assurer que chaque composant de votre charge de travail est réparti sur plusieurs zones de disponibilité. Ainsi, en cas de panne d'un AZ, votre charge de travail continuera de fonctionner, garantissant ainsi une haute disponibilité.

En outre, vous pouvez configurer un équilibreur de charge pour répartir le trafic entre les différentes répliques de votre composant de serveur Web, en veillant à ce que le trafic soit équilibré entre toutes les répliques disponibles. Cela éviterait la surcharge d'une seule réplique et garantirait que votre charge de travail peut gérer des niveaux de trafic élevés.

Sécurité

La sécurité est un facteur essentiel lors de la conception d'une architecture Kubernetes pour les MLOps et peut contribuer à garantir que les charges de travail d'apprentissage automatique et les données associées sont protégées contre les accès non autorisés et les violations de données.

« La sécurité n'est pas une question secondaire dans le domaine de l'apprentissage automatique, elle est au cœur du processus de développement. De la collecte des données au déploiement du modèle, chaque étape du pipeline de machine learning doit être prise en compte du point de vue de la sécurité. Cela est particulièrement vrai lorsqu'il s'agit de données sensibles ou lors du déploiement de modèles dans des environnements de production où ils sont exposés à des attaquants potentiels. En tant que praticiens du machine learning, nous devons être proactifs pour identifier et atténuer les risques de sécurité, et évaluer en permanence notre posture de sécurité à mesure que de nouvelles menaces apparaissent. »
-Dr. Tracy Hammond, professeur d'informatique et d'ingénierie à la Texas A&M University et directrice du Sketch Recognition Lab

Pour garantir la sécurité de votre infrastructure, prenez en compte les bonnes pratiques suivantes :

  1. Utilisez le RBAC pour restreindre l'accès aux ressources en fonction des rôles des utilisateurs.
  2. Utilisez des politiques réseau pour restreindre le trafic entre les espaces de noms et les pods.
  3. Utilisez des outils de gestion des secrets tels que Vault ou Kubernetes Secrets pour stocker des données sensibles telles que des clés d'API et des mots de passe.
  4. Utilisez des images de conteneurs provenant de sources fiables et analysez-les pour détecter les vulnérabilités à l'aide d'outils tels que Clair ou Trivy.

Conclusion

En conclusion, Kubernetes fournit une plate-forme puissante pour la mise en œuvre d'une infrastructure MLOps capable de répondre aux exigences uniques des charges de travail de machine learning. En étudiant attentivement la conception des espaces de noms, la sélection des nœuds et la gestion des ressources, les praticiens du ML peuvent s'assurer que leurs charges de travail de ML s'exécutent efficacement, en toute sécurité et avec une haute disponibilité. Face à la demande croissante d'infrastructures évolutives et flexibles pour les charges de travail de machine learning, Kubernetes est un outil précieux pour les professionnels du MLOps qui souhaitent garder une longueur d'avance. Nous espérons que ce blog vous a fourni une introduction utile à la mise en œuvre de l'infrastructure MLOps sur Kubernetes, et nous vous encourageons à explorer davantage cette puissante plateforme pour prendre en charge vos propres flux de travail de machine learning.

True Foundry est un PaaS de déploiement de machine learning sur Kubernetes destiné à accélérer les flux de travail des développeurs tout en leur offrant une flexibilité totale dans les tests et le déploiement de modèles, tout en garantissant une sécurité et un contrôle complets à l'équipe Infra. Grâce à notre plateforme, nous permettons aux équipes de machine learning de déployer et surveiller des modèles en 15 minutes avec une fiabilité à 100 %, une évolutivité et la possibilité de revenir en arrière en quelques secondes, ce qui leur permet de réduire les coûts et de mettre les modèles en production plus rapidement, ce qui permet de réaliser une véritable valeur commerciale.

Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA

INSCRIVEZ-VOUS
Table des matières

Gouvernez, déployez et suivez l'IA dans votre propre infrastructure

Réservez un séjour de 30 minutes avec notre Expert en IA

Réservez une démo

Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA

Démo du livre

Découvrez-en plus

October 5, 2023
|
5 min de lecture

<Webinar>Vitrine GenAI pour les entreprises

Best Fine Tuning Tools for Model Training
May 3, 2024
|
5 min de lecture

Les 6 meilleurs outils de réglage pour la formation des modèles en 2026

May 25, 2023
|
5 min de lecture

LLMs open source : Embrace or Perish

August 27, 2025
|
5 min de lecture

Cartographie du marché de l'IA sur site : des puces aux plans de contrôle

 Best AI Gateways in 2026
April 22, 2026
|
5 min de lecture

5 meilleures passerelles IA en 2026

comparaison
April 22, 2026
|
5 min de lecture

Intégration de Cline avec TrueFoundry AI Gateway

Outils LLM
Detailed Guide to What is an AI Gateway?
April 22, 2026
|
5 min de lecture

Qu'est-ce qu'AI Gateway ? Concepts de base et guide

Aucun article n'a été trouvé.
April 22, 2026
|
5 min de lecture

LLM Embeddings 101 : un guide complet 2024

Terminologie LLM
Aucun article n'a été trouvé.

Blogs récents

Faites un rapide tour d'horizon des produits
Commencer la visite guidée du produit
Visite guidée du produit