Guide rapide pour faire évoluer les charges de travail d’IA/ML sur Kubernetes

NGINX | 11 janvier 2024

Lors de l’entraînement et de l’inférence de modèles d’intelligence artificielle (IA) et de machine learning (ML) sur Kubernetes, la mise à l’échelle dynamique des ressources devient un élément essentiel. Outre des capacités de stockage et de réseau à haut débit pour l’ingestion des données, l’entraînement des modèles d’IA nécessite également une puissance de calcul considérable (et coûteuse), principalement fournie par des GPU ou d’autres processeurs spécialisés. Même avec des modèles préentraînés, des tâches telles que le déploiement de modèles pour l’inférence et leur ajustement fin en production restent plus gourmandes en ressources de calcul que la plupart des charges de travail d’entreprise.

Kubernetes cloud-native est conçu pour évoluer rapidement, à la hausse comme à la baisse. Il vise également à offrir davantage d’agilité et une utilisation rentable des ressources pour les charges de travail dynamiques dans les environnements hybrides et multicloud.

Dans cet article, nous présentons les trois méthodes les plus courantes pour faire évoluer les charges de travail d’IA/ML sur Kubernetes, afin d’optimiser les performances, de réduire les coûts et de bénéficier d’une mise à l’échelle dynamique adaptée à divers environnements.

Trois modes de mise à l’échelle des charges de travail d’IA/ML sur Kubernetes

Les trois méthodes couramment utilisées par Kubernetes pour mettre à l’échelle une charge de travail sont l’autoscaler horizontal de pods (HPA), l’autoscaler vertical de pods (VPA) et l’autoscaler de cluster.

Voici une présentation détaillée de ces trois méthodes :

  • HPA – L’équivalent de l’ajout d’instances ou de réplicas de pods à une application, afin d’augmenter son évolutivité, sa capacité et son débit.
  • VPA – L’équivalent du redimensionnement d’un pod afin de lui conférer une capacité supérieure, avec davantage de puissance de calcul et de mémoire.
  • Cluster Autoscaler – Augmente ou réduit automatiquement le nombre de nœuds d’un cluster Kubernetes en fonction des besoins actuels en ressources des pods.

Chaque modalité présente des avantages pour l’entraînement et l’inférence des modèles, que vous pouvez découvrir dans les cas d’usage ci-dessous.

Cas d’usage de HPA

Dans de nombreux cas, les charges de travail distribuées d’entraînement et d’inférence de modèles d’IA peuvent être mises à l’échelle horizontalement (c’est-à-dire en ajoutant des pods pour accélérer le processus d’entraînement ou le traitement des requêtes). Elles peuvent ainsi tirer parti de HPA, qui peut augmenter le nombre de pods en fonction de métriques telles que l’utilisation du processeur et de la mémoire, voire de métriques personnalisées et externes pertinentes pour la charge de travail. Lorsque la charge de travail varie au fil du temps, HPA peut ajuster dynamiquement le nombre de pods afin de garantir une utilisation optimale des ressources.

Un autre aspect de la mise à l’échelle horizontale des charges de travail d’IA dans Kubernetes est l’équilibrage de charge. Pour garantir des performances optimales et un traitement rapide des requêtes, les requêtes entrantes doivent être réparties entre plusieurs instances ou pods. C’est pourquoi l’un des outils idéaux à utiliser conjointement avec le HPA est un contrôleur Ingress.

Cas d’usage de la VPA

Les tâches d’entraînement des modèles d’IA sont souvent gourmandes en ressources et nécessitent d’importantes capacités de processeur, de processeur graphique et de mémoire. Le VPA peut ajuster dynamiquement l’allocation de ces ressources. Cela permet de garantir que chaque pod dispose de suffisamment de ressources pour gérer efficacement la charge de travail d’entraînement et que tous les pods affectés disposent d’une capacité de calcul suffisante pour effectuer les calculs. En outre, les besoins en mémoire peuvent varier considérablement lors de l’entraînement de grands modèles. Le VPA peut contribuer à éviter les erreurs de mémoire insuffisante en augmentant l’allocation de mémoire selon les besoins.

Bien qu’il soit techniquement possible d’utiliser conjointement le HPA et le VPA, cela nécessite une configuration minutieuse afin d’éviter les conflits, car ils pourraient tenter de mettre à l’échelle une même charge de travail de différentes manières (c’est-à-dire horizontalement ou verticalement). Il est essentiel de définir clairement le périmètre de chaque mécanisme d’autoscaling afin qu’ils se complètent plutôt qu’ils n’entrent en conflit. Une approche émergente consiste à utiliser les deux avec des périmètres distincts : par exemple, le HPA pour ajuster le nombre de pods en fonction de la charge de travail, et le VPA pour affiner l’allocation des ressources de chaque pod dans les limites définies par le HPA.

Cas d’usage de l’autoscaler de cluster

Cluster Autoscaler permet d’ajuster dynamiquement l’ensemble des ressources d’infrastructure de calcul, de stockage et de réseau disponibles à l’échelle du cluster afin de répondre aux besoins des charges de travail d’IA/ML. En adaptant le nombre de nœuds d’un cluster à la demande actuelle, une organisation peut équilibrer la charge à l’échelle globale. Cette approche est nécessaire pour garantir des performances optimales, car les charges de travail d’IA/ML peuvent nécessiter de manière imprévisible d’importantes ressources de calcul.

Le HPA, le VPA et l’autoscaler de cluster ont chacun un rôle à jouer

En résumé, voici les trois mécanismes d’autoscaling de Kubernetes et les avantages qu’ils apportent aux charges de travail d’IA :

  • Le HPA adapte la capacité des points de terminaison de déploiement de modèles d’IA qui doivent gérer des débits de requêtes variables.
  • VPA optimise l’allocation des ressources pour les charges de travail d’IA/ML et garantit que chaque pod dispose de suffisamment de ressources pour assurer un traitement efficace sans surprovisionnement.
  • Cluster Autoscaler ajoute des nœuds à un cluster afin de lui permettre de prendre en charge les tâches d’IA gourmandes en ressources, ou en supprime lorsque les besoins en calcul sont faibles.

HPA, VPA et Cluster Autoscaler se complètent dans la gestion des charges de travail d’IA/ML dans Kubernetes. Cluster Autoscaler veille à ce que le nombre de nœuds soit suffisant pour répondre aux besoins des charges de travail, HPA répartit efficacement les charges de travail entre plusieurs pods et VPA optimise l’allocation des ressources de ces pods. Ensemble, ils offrent une solution complète de mise à l’échelle et de gestion des ressources pour les applications d’IA/ML dans les environnements Kubernetes.

Consultez notre page « Optimisez et protégez votre parcours dans l’IA » pour découvrir comment F5 et NGINX peuvent vous aider à déployer, sécuriser et optimiser vos charges de travail d’IA/ML.


Partager

À propos de l’auteur

Ilya Krutov
Ilya KrutovResponsable senior du marketing produit | F5 NGINX

Autres articles de Ilya Krutov

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
NGINX | 13/10/2025

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA

Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.

Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
NGINX | 03/11/2023

Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?

Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.

Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
NGINX | 11/03/2020

Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX

Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
NGINX | 11/06/2019

Un testeur d’expressions régulières pour NGINX et NGINX Plus

Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.

Caches partagés avec les clusters de cache NGINX Plus, partie 1
NGINX | 24/01/2017

Caches partagés avec les clusters de cache NGINX Plus, partie 1

Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.

Introduction aux microservices
NGINX | 19/05/2015

Introduction aux microservices

Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.