Ce document est le premier d'une série destinée aux ingénieurs en machine learning (ML) qui débutent avec Google Kubernetes Engine (GKE) et souhaitent commencer à exécuter des charges de travail d'inférence sur GKE le plus rapidement possible.
Dans cette série, nous n'essaierons pas de vous présenter toutes les options GKE disponibles. Nous vous fournirons plutôt les informations de base dont vous avez besoin pour exécuter vos charges de travail sur GKE. Cette série comprend les documents suivants :
- Pourquoi utiliser GKE pour l'inférence IA/ML ? (ce document)
- À propos de l'inférence de modèles d'IA/de ML sur GKE
- Concepts d'autoscaling simplifiés pour les charges de travail d'IA/de ML dans GKE
En tant qu'ingénieur de plate-forme d'IA/de ML, vous pouvez utiliser GKE pour gérer vos déploiements de modèles. GKE est un service qui vous permet d'automatiser le déploiement, le scaling et la surveillance de vos charges de travail d'inférence basées sur Kubernetes et de l'infrastructure de calcul sur laquelle elles s'exécutent. Ce document présente certains des principaux avantages de l'utilisation de GKE pour l'inférence de modèles, y compris les suivants :
- Performances cohérentes des applications
- Accès simplifié au matériel d'inférence spécialisé
- Scaling automatique de vos charges de travail d'inférence
- Surveillance et journalisation automatisées des performances et de l'état des charges de travail
- Portabilité et flexibilité de l'utilisation de normes ouvertes et de technologies Open Source
Avant de commencer
Avant de lire ce document, vous devez connaître les points suivants :
- Concepts fondamentaux de Kubernetes: découvrez les conteneurs, les pods, les nœuds et les clusters, ainsi que leurs relations.
- Modes de fonctionnement de GKE: découvrez les clusters GKE Autopilot et Standard leurs utilisations et leurs différences.
Empaqueter vos modèles pour des performances cohérentes
L'inférence de modèles cohérente et fiable est essentielle pour votre application d'IA, et GKE peut réduire la complexité opérationnelle de la gestion de l'inférence à grande échelle. En empaquetant votre modèle entraîné, votre serveur d'inférence et toutes les dépendances dans un conteneur, vous créez un artefact standardisé et portable qui s'exécute sur GKE. La conteneurisation permet de réduire les erreurs causées par des dépendances incompatibles ou des environnements incohérents. GKE déploie et gère automatiquement ces conteneurs. Il gère des tâches telles que le redémarrage des charges de travail en cas de plantage ou le reprovisionnement des ressources pour stabiliser les performances de vos charges de travail d'IA/de ML.
Utiliser des GPU et des TPU pour réduire la latence de diffusion
La latence est un problème pour les charges de travail d'inférence, et certains modèles complexes s'appuient sur des accélérateurs matériels tels que les GPU et les TPU pour accélérer la diffusion de l'inférence. GKE simplifie le processus d'utilisation de GPU ou de TPU pour vos charges de travail d'inférence sensibles à la latence en simplifiant le provisionnement et la gestion du matériel. Vous choisissez les configurations matérielles spécifiques qui répondent le mieux à vos exigences en termes de performances et de coûts, et GKE provisionne automatiquement des nœuds avec le matériel sélectionné pour exécuter vos charges de travail. GKE automatise également les étapes de configuration qui nécessitent généralement une configuration manuelle dans Kubernetes, comme l'installation des pilotes NVIDIA. Pour un contrôle plus précis de la configuration des nœuds , vous pouvez utiliser des ComputeClasses personnalisées afin de créer des profils matériels spécifiques et réutilisables que GKE utilise lors du provisionnement des nœuds.
GKE offre également des fonctionnalités de gestion des ressources qui vous permettent d'utiliser plus efficacement les ressources TPU et GPU pour la diffusion de l'inférence. Par exemple, vous pouvez améliorer l'utilisation des GPU en hébergeant plusieurs modèles sur un seul serveur GPU à l'aide du partage de GPU, ou réduire les coûts des jobs d'inférence tolérants aux pannes en les exécutant sur des VM Spot avec des accélérateurs. Pour les charges de travail de petite à moyenne taille dont les exigences en termes de demande sont fluctuantes ou de courte durée, vous pouvez utiliser démarrage flexible, qui fournit une technique flexible et économique pour consommer des ressources de calcul spécialisées, telles que des GPU ou des TPU. Ces fonctionnalités vous aident à optimiser l'utilisation de vos ressources d'accélérateur tout en optimisant la latence de diffusion et les coûts.
Gérer automatiquement les fluctuations du trafic
Le trafic et la charge sur les charges de travail d'inférence en temps réel peuvent être imprévisibles et dynamiques. Un pic de demande peut entraîner une augmentation de la latence et une réduction des performances. GKE propose une approche d'autoscaling multicouche qui vous permet d'ajouter ou de supprimer automatiquement des ressources pour répondre à la demande d'inférence variable. Par exemple, vous pouvez utiliser l' autoscaler horizontal de pods (AHP) pour ajuster automatiquement le nombre de pods dans un déploiement, ou l' autoscaler de cluster pour ajuster automatiquement le nombre de nœuds dans un pool de nœuds existant. En utilisant les fonctionnalités d'autoscaling de GKE, vous pouvez faire correspondre efficacement la quantité de ressources dont votre charge de travail d'inférence a besoin à la demande de l'application.
Surveiller l'état et les performances de votre charge de travail d'inférence
GKE est intégré à la suite d'observabilité Cloud de Confiance by S3NS (Cloud Logging et Cloud Monitoring), et vous pouvez utiliser les fonctionnalités d'observabilité intégrées pour surveiller l'état et les performances de vos charges de travail d'inférence. Ces fonctionnalités d'observabilité vous donnent un aperçu des performances de votre charge de travail après son déploiement. Par exemple, vous pouvez vous demander si votre modèle fonctionne comme prévu ou si votre charge de travail répond à vos exigences en termes de latence et de précision.
GKE génère automatiquement des rapports sur les métriques d'infrastructure telles que l'utilisation du processeur, de la mémoire et des accélérateurs. Pour répondre à des questions sur les performances spécifiques à un modèle, vous pouvez utiliser Google Cloud Managed Service pour Prometheus ou envoyer des métriques personnalisées de votre application d'inférence à Cloud Monitoring. Par exemple, vous pouvez configurer la surveillance automatique des applications et surveiller les métriques d'inférence clés, telles que les requêtes par seconde (RPS) ; surveiller la dérive des concepts en analysant les métriques spécifiques au modèle, telles que la distribution des données d'entrée ; et déboguer les problèmes en effectuant une analyse historique des journaux.
Utiliser GKE pour la portabilité et la flexibilité
En utilisant des normes ouvertes telles que les conteneurs et des technologies Open Source telles que Kubernetes, GKE vous permet de déplacer vos charges de travail de diffusion d'inférence vers différents emplacements et d'utiliser différentes ressources et différents outils à mesure que vos exigences évoluent. Par exemple, vous pouvez développer et tester votre application d'inférence sur GKE, puis déployer cette même application conteneurisée dans votre environnement sur site pour la production.
En conclusion, vous pouvez utiliser GKE pour simplifier le processus de transfert de vos modèles d'IA/de ML du développement à la production. GKE gère de nombreuses complexités liées à la gestion de l'infrastructure, ce qui signifie que vous pouvez vous concentrer sur l'exécution de vos charges de travail d'inférence dans un environnement performant, évolutif et observable. Au cours de cette série, vous découvrirez comment utiliser GKE pour transformer vos modèles d'IA/de ML en applications puissantes et prêtes pour la production.
Étape suivante
- À propos de l'inférence de modèles d'IA/de ML sur GKE (le document suivant de cette série)
- Découvrez les bonnes pratiques pour exécuter des charges de travail d'inférence sur GKE.
- Découvrez comment diffuser un modèle avec un seul GPU dans GKE.
- Découvrez comment diffuser des LLM ouverts sur GKE avec une architecture préconfigurée.
- Découvrez comment diffuser des LLM ouverts sur GKE à l'aide de TPU avec une architecture préconfigurée.