Lorsque vous exécutez la formation et l'inférence de modèles d’intelligence artificielle (IA) et d’apprentissage automatique (ML) sur Kubernetes, la mise à l’échelle dynamique devient un élément clé. Au-delà de la nécessité d’un stockage et d’un réseau à haute bande passante pour ingérer les données, la formation des modèles IA exige aussi beaucoup de puissance de calcul, souvent coûteuse, principalement avec des GPU ou d’autres processeurs spécialisés. Même en utilisant des modèles pré-entraînés, les tâches comme la mise en service et l’ajustement fin en production restent plus gourmandes en calcul que la plupart des charges de travail en entreprise.
Kubernetes cloud natif est conçu pour une montée et une descente en charge rapides. Il vise également à vous offrir plus d’agilité et une gestion optimisée des ressources pour les charges de travail dynamiques dans des environnements hybrides et multicloud.
Dans ce blog, nous abordons les trois méthodes les plus courantes pour faire évoluer les charges de travail d'IA/ML sur Kubernetes afin que vous puissiez obtenir des performances optimales, des économies de coûts et une adaptabilité pour une mise à l'échelle dynamique dans divers environnements.
Les trois méthodes courantes utilisées par Kubernetes pour faire évoluer une charge de travail sont l'Horizontal Pod Autoscaler (HPA), l'Horizontal Pod Autoscaler (VPA) et l'Horizontal Pod Autoscaler.
Voici une répartition de ces trois méthodes :
Chaque modalité présente ses avantages en matière de formation et d’inférence de modèles, que vous pouvez explorer dans les cas d’utilisation ci-dessous.
Dans de nombreux cas, vous pouvez faire évoluer horizontalement les charges d'entraînement et d'inférence de modèles d'IA distribués, c’est-à-dire en ajoutant des pods pour accélérer le processus d'entraînement ou le traitement des requêtes. Vous profitez alors de l’HPA, qui ajuste le nombre de pods selon des métriques comme l’utilisation du processeur et de la mémoire, ou même des indicateurs personnalisés et externes adaptés à votre charge de travail. Lorsque la charge évolue dans le temps, l’HPA adapte le nombre de pods en continu pour garantir une utilisation optimale des ressources.
Un autre aspect de la mise à l’échelle horizontale des charges de travail de l’IA dans Kubernetes est l’équilibrage de la charge. Pour garantir des performances optimales et un traitement rapide des demandes, les demandes entrantes doivent être réparties sur plusieurs instances ou pods. C’est pourquoi l’un des outils idéaux pouvant être utilisés en conjonction avec HPA est un contrôleur d’entrée .
Les tâches d’entraînement des modèles d’IA sollicitent souvent intensément les ressources CPU, GPU et mémoire. VPA ajuste ces allocations de ressources de façon dynamique. Vous garantissez ainsi que chaque pod dispose des ressources nécessaires pour gérer efficacement la charge d’entraînement et que tous les pods affectés possèdent une capacité de calcul suffisante pour exécuter les calculs. Par ailleurs, les besoins en mémoire peuvent varier fortement lors de l’entraînement de grands modèles. VPA aide à éviter les erreurs de mémoire insuffisante en augmentant l’allocation de mémoire selon les besoins.
Vous pouvez techniquement utiliser HPA et VPA ensemble, mais il faut configurer soigneusement pour éviter les conflits, car ils risquent de vouloir ajuster la même charge de travail de façons différentes (horizontalement versus verticalement). Vous devez impérativement définir clairement les rôles de chaque autoscaler pour qu'ils se complètent au lieu de se concurrencer. Une approche nouvelle consiste à appliquer chacun sur une portée différente : par exemple, HPA pilote la mise à l'échelle sur plusieurs pods selon la charge, tandis que VPA ajuste précisément l’allocation des ressources de chaque pod, dans les limites imposées par HPA.
Le Cluster Autoscaler vous aide à ajuster dynamiquement l’ensemble des ressources de calcul, de stockage et d'infrastructure réseau disponibles dans le cluster pour répondre aux besoins des charges de travail IA/ML. En modulant le nombre de nœuds selon la demande, vous pouvez optimiser l’équilibre de charge à grande échelle. Cela garantit des performances optimales, car les charges IA/ML exigent souvent des ressources de calcul importantes et imprévisibles.
En résumé, voici les trois façons dont la mise à l’échelle automatique de Kubernetes fonctionne et profite aux charges de travail de l’IA :
HPA, VPA et Cluster Autoscaler s’associent pour gérer efficacement les charges de travail IA/ML dans Kubernetes. Cluster Autoscaler garantit un nombre suffisant de nœuds pour répondre à la demande, HPA répartit les charges sur 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 IA/ML dans les environnements Kubernetes.
Visitez notre page Power and Protect Your AI Journey pour en savoir plus sur la manière dont F5 et NGINX peuvent vous aider à fournir, sécuriser et optimiser vos charges de travail IA/ML.
« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."