Choisir une stratégie d'équilibrage de charge pour l'inférence de modèles d'IA/de ML sur GKE


Cette page vous aide à choisir la stratégie d'équilibrage de charge appropriée pour les charges de travail d'inférence de modèles d'IA/ML sur Google Kubernetes Engine (GKE).

Cette page s'adresse aux personas suivants :

  • Ingénieurs en machine learning (ML), administrateurs et opérateurs de plate-forme, et spécialistes des données et de l'IA qui souhaitent utiliser les fonctionnalités d'orchestration de conteneurs Kubernetes pour diffuser des charges de travail d'IA/de ML.
  • Architectes cloud et spécialistes de la mise en réseau qui interagissent avec la mise en réseau Kubernetes.

Pour en savoir plus sur les rôles courants et les exemples de tâches que nous citons dans le contenu Google Cloud , consultez Rôles utilisateur et tâches courantes de GKE.

Avant de lire cette page, assurez-vous de connaître les éléments suivants :

Lorsque vous déployez des charges de travail d'inférence de modèles d'IA/ML sur Google Kubernetes Engine (GKE), choisissez la stratégie d'équilibrage de charge appropriée pour optimiser les performances, l'évolutivité et la rentabilité. Google Cloud propose les solutions distinctes suivantes :

  • Passerelle d'inférence GKE : solution conçue pour le routage avancé de l'IA/du ML. Pour en savoir plus, consultez la documentation sur GKE Inference Gateway.
  • GKE Gateway avec métriques personnalisées : solution qui utilise des équilibreurs de charge d'application, offrant un contrôle à usage général, qui peut être combiné à un équilibreur de charge d'application.

Combiner des solutions d'équilibrage de charge

Dans certaines architectures, vous pouvez utiliser à la fois la passerelle d'inférence GKE et la passerelle GKE avec des métriques personnalisées. Dans ces architectures, l'équilibreur de charge d'application est utilisé avec GKE Gateway et des métriques personnalisées. Par exemple, un équilibreur de charge d'application externe global redirige le trafic vers la région appropriée en fonction de facteurs tels que la géographie et les vérifications d'état. Pour en savoir plus, consultez Équilibreurs de charge d'application. Une fois le trafic arrivé dans une région spécifique, la passerelle d'inférence GKE effectue un équilibrage de charge précis basé sur l'IA pour acheminer les requêtes vers le serveur de modèle optimal. Pour en savoir plus, consultez la documentation sur GKE Inference Gateway.

Pour choisir la solution d'équilibrage de charge Google Cloud qui convient le mieux à vos applications d'inférence sur GKE, tenez compte des caractéristiques de votre charge de travail, de vos exigences en termes de performances et de votre modèle opérationnel.

Pour diriger le trafic vers la réplique de serveur de modèle la plus appropriée et la moins chargée, l'extension Endpoint Picker de la passerelle GKE Inference surveille les métriques critiques spécifiques à l'IA. Ces métriques incluent l'utilisation du cache KV du serveur de modèle, la longueur de la file d'attente des requêtes en attente, la charge globale du GPU ou de la TPU, la disponibilité des adaptateurs LoRA et le coût de calcul des requêtes individuelles. En plus d'un routage sophistiqué, la passerelle d'inférence GKE permet de hiérarchiser les requêtes et d'optimiser l'autoscaling pour les serveurs de modèles.

Présentation de GKE Gateway avec des métriques personnalisées

Les équilibreurs de charge d'application, tels que l'équilibreur de charge d'application externe global et l'équilibreur de charge d'application externe régional, sont des équilibreurs de charge à usage général qui distribuent le trafic en fonction des métriques personnalisées que vos services de backend signalent. Cette fonctionnalité permet de contrôler précisément la répartition de la charge en fonction d'indicateurs de performances spécifiques aux applications.

GKE Gateway sert d'interface native Kubernetes pour provisionner et gérer les équilibreurs de charge d'application. En substance, lorsque vous définissez une ressource Gateway dans votre cluster GKE, le contrôleur GKE Gateway configure automatiquement l'équilibreur de charge d'application sous-jacent. Vous pouvez ainsi gérer plus facilement le trafic HTTP/HTTPS externe vers vos services GKE directement depuis Kubernetes, tout en utilisant l'infrastructure d'équilibrage de charge de Google Cloud.

Comparer les solutions d'équilibrage de charge

Le tableau suivant compare les fonctionnalités de GKE Inference Gateway et de GKE Gateway avec des métriques personnalisées.

Fonctionnalité Passerelle d'inférence GKE Gateway avec des métriques personnalisées (à l'aide d'équilibreurs de charge d'application)
Cas d'utilisation principal Optimise les charges de travail d'inférence d'IA/ML générative sur Kubernetes, comme la diffusion de grands modèles de langage (LLM). Fonctionne bien pour la diffusion de plusieurs cas d'utilisation sur un seul modèle, en assurant un accès équitable aux ressources du modèle et en optimisant les charges de travail LLM sensibles à la latence et basées sur GPU/TPU. Fournit un équilibrage de charge HTTP(S) à usage général pour les charges de travail qui nécessitent une distribution précise du trafic en fonction de métriques personnalisées signalées par l'application (signaux de charge). Convient aux services sensibles à la latence, tels que les serveurs de jeux en temps réel ou les plates-formes de trading à haute fréquence, qui signalent des données d'utilisation personnalisées.
Routage de base Compatible avec le routage HTTP(S) standard par hôte et chemin d'accès, étendant l'API GKE Gateway. Prend en charge le routage HTTP(S) standard par hôte et par chemin, configuré à l'aide des ressources standards de l'API GKE Gateway.
Logique de routage avancée Effectue un routage tenant compte du modèle (par exemple, le nom du modèle basé sur le corps), la répartition et la mise en miroir du trafic, et applique les niveaux de priorité et de criticité. Équilibre le trafic en fonction des métriques personnalisées signalées par l'application à l'aide de la norme ORCA (Open Request Cost Aggregation). Cela permet d'activer des règles telles que WEIGHTED_ROUND_ROBIN pour la pondération des points de terminaison dans une localité.
Métriques acceptées Utilise une suite de signaux intégrés spécifiques à l'IA, prêts à l'emploi, tels que l'utilisation du GPU/TPU, les "hits du cache KV" et la "longueur de la file d'attente des requêtes". Vous pouvez également le configurer pour qu'il utilise les métriques signalées par l'application et envoyées à l'aide d'un mécanisme d'en-tête HTTP standardisé. S'appuie sur les métriques signalées par l'application à l'aide d'un mécanisme d'en-tête HTTP standardisé (ce mécanisme est appelé "ORCA load reporting"). Ce format permet de générer des rapports sur les métriques standards, telles que le processeur et la mémoire, ou sur les métriques personnalisées pour les ressources limitées spécifiques à l'application.
Gestion des requêtes Réduit les coûts des requêtes non uniformes, qui sont courantes dans les LLM. Compatible avec les [niveaux de criticité des requêtes](/kubernetes-engine/docs/concepts/about-gke-inference-gateway#traffic-distribution). Optimisé pour les coûts de requête relativement uniformes. N'inclut pas la priorisation des requêtes intégrée.
Compatibilité avec les adaptateurs LoRA Fournit un routage natif basé sur l'affinité vers les backends équipés de LoRa appropriés. Ne fournit pas d'assistance native.
Intégration de l'autoscaling Optimise le scaling des serveurs de modèles en fonction de métriques spécifiques à l'IA, telles que "KV cache hits". L'autoscaler horizontal de pods (HPA) peut utiliser des métriques personnalisées, mais la configuration est générique et basée sur les métriques signalées pour l'équilibreur de charge d'application.
Installation et configuration Configurez-le avec l'API GKE Gateway. Étend l'API standard avec des définitions de ressources personnalisées (CRD) InferencePool et InferenceModel spécialisées pour activer ses fonctionnalités compatibles avec l'IA. Configurez-le avec les ressources standards de l'API GKE Gateway. L'application doit implémenter le mécanisme basé sur l'en-tête HTTP pour signaler les métriques personnalisées.
Sécurité Il fournit un filtrage du contenu d'IA avec Model Armor au niveau de la passerelle. Il s'appuie sur les fonctionnalités de sécurité de base de GKE, telles que TLS, IAM, le contrôle des accès basé sur les rôles (RBAC) et les espaces de noms. Utilise la pile de sécurité standard de l'équilibreur de charge d'application, y compris Model Armor, la terminaison TLS et IAM. Model Armor est également compatible avec l'intégration en tant qu'extension de service.
Observabilité Offre une observabilité intégrée des métriques spécifiques à l'IA, y compris l'utilisation du GPU ou du TPU, les "hits du cache KV", la "longueur de la file d'attente des requêtes" et la latence du modèle. L'observabilité repose sur toutes les métriques personnalisées que l'application est configurée pour signaler. Vous pouvez les consulter dans Cloud Monitoring. Il peut s'agir de métriques standards ou personnalisées.
Extensibilité Basé sur une base Open Source extensible qui prend en charge un algorithme de sélection de points de terminaison géré par l'utilisateur. Étend l'API GKE Gateway avec des définitions de ressources personnalisées (InferencePool, InferenceModel) spécialisées pour simplifier les cas d'utilisation courants de l'IA/du ML. Conçu pour la flexibilité, il permet d'étendre l'équilibrage de charge avec n'importe quelle métrique personnalisée (signal de charge) que l'application peut signaler à l'aide de la norme ORCA.
Étape de lancement Aperçu DG

Quand utiliser la passerelle d'inférence GKE ?

Utilisez la passerelle d'inférence GKE pour optimiser les charges de travail d'inférence d'IA/ML sophistiquées sur GKE, en particulier pour les LLM.

Choisissez GKE Inference Gateway lorsque vous devez effectuer les opérations suivantes :

  • Routage adapté au modèle : dirigez le trafic en fonction d'états spécifiques au LLM, tels que les accès au cache KV ou la longueur de la file d'attente des requêtes, ou vers des adaptateurs LoRA spécifiques.
  • Équilibrage de charge tenant compte des coûts : gérez efficacement les requêtes d'inférence avec des coûts de traitement variables et classez-les par niveau de criticité (critique, standard ou supprimable).
  • Autoscaling spécifique à l'IA : mettez à l'échelle de manière dynamique les serveurs de modèles en fonction des métriques d'IA pertinentes pour une utilisation optimale des ressources.
  • Sécurité et observabilité de l'IA intégrées : utilisez l'intégration native de Model Armor pour les vérifications de sécurité de l'IA et obtenez des insights prêts à l'emploi sur l'utilisation des GPU/TPU, les accès au cache KV et la longueur de la file d'attente des requêtes.
  • Déploiement simplifié de l'IA générative : profitez d'une solution extensible et spécialement conçue qui simplifie les modèles de déploiement courants de l'IA générative sur GKE, tout en offrant une personnalisation grâce à sa base d'API GKE Gateway.

Quand utiliser GKE Gateway avec des métriques personnalisées

Utilisez GKE Gateway avec des métriques personnalisées pour un équilibrage de charge flexible et à usage général qui s'adapte aux indicateurs de performances uniques de votre application, y compris pour certains scénarios d'inférence.

Choisissez la passerelle GKE avec des métriques personnalisées lorsque vous devez effectuer les opérations suivantes :

  • Gérez des volumes de trafic élevés avec des coûts de requête relativement uniformes.
  • Répartissez la charge en fonction des métriques personnalisées signalées par l'application à l'aide du reporting de charge ORCA.
  • Évitez l'intelligence de routage spécifique à l'IA/aux LLM proposée par la passerelle d'inférence GKE.
  • Privilégiez la cohérence avec les déploiements d'équilibreur de charge d'application existants qui répondent aux besoins de votre service d'inférence.

Étapes suivantes