À propos de l'inférence de modèles d'IA/ML sur GKE

Cette page décrit les concepts clés, les avantages et les étapes à suivre pour exécuter des charges de travail d'inférence de modèles d'IA/de ML générative sur Google Kubernetes Engine (GKE) à l'aide des fonctionnalités d'IA générative de GKE.

La mise en service de l'inférence est essentielle pour déployer vos modèles d'IA générative dans des applications réelles. GKE fournit une plate-forme robuste et évolutive pour gérer vos charges de travail conteneurisées, ce qui en fait un choix intéressant pour mettre en service vos modèles en développement ou en production. Avec GKE, vous pouvez utiliser les fonctionnalités d'orchestration, de scaling et de haute disponibilité de Kubernetes pour déployer et gérer efficacement vos services d'inférence.

Conscient des exigences spécifiques de l'inférence d'IA/de ML, Google Cloud a introduit les fonctionnalités d'IA générative de GKE , une suite de fonctionnalités spécialement conçues pour améliorer et optimiser la mise en service de l'inférence sur GKE. Pour en savoir plus sur les fonctionnalités spécifiques, consultez la page Fonctionnalités d'IA générative de GKE.

Premiers pas avec l'inférence de modèles d'IA/de ML sur GKE

Vous pouvez commencer à explorer l'inférence de modèles d'IA/de ML sur GKE en quelques minutes. Vous pouvez utiliser la version sans frais de GKE, qui vous permet de commencer à utiliser Kubernetes sans encourir les frais de gestion des clusters.

  1. Accédez à la page IA/ML de GKE dans la Google Cloud console

  2. Suivez les étapes de la section Déployer des modèles pour déployer un modèle conteneurisé et un serveur de modèles.
  3. Consultez la page Présentation des bonnes pratiques d'inférence sur GKE, qui fournit des conseils et des ressources pour planifier et exécuter vos charges de travail d'inférence sur GKE.

Terminologie

Cette page utilise la terminologie suivante liée à l'inférence sur GKE :

  • Inférence : processus d'exécution d'un modèle d'IA générative, tel qu'un grand modèle de langage ou un modèle de diffusion, dans un cluster GKE pour générer du texte, des embeddings ou d'autres sorties à partir de données d'entrée. L'inférence de modèles sur GKE exploite des accélérateurs pour gérer efficacement des calculs complexes pour le traitement en temps réel ou par lot.
  • Modèle : modèle d'IA générative qui a appris des schémas à partir de données et qui est utilisé pour l'inférence. Les modèles varient en taille et en architecture, des modèles plus petits spécifiques à un domaine aux réseaux de neurones massifs de plusieurs milliards de paramètres optimisés pour diverses tâches de langage.
  • Serveur de modèles : service conteneurisé chargé de recevoir les requêtes d'inférence et de renvoyer les inférences. Ce service peut être une application Python ou une solution plus robuste comme vLLM, JetStream, TensorFlow Serving, ou Triton Inference Server. Le serveur de modèles gère le chargement des modèles en mémoire et exécute des calculs sur des accélérateurs pour renvoyer efficacement les inférences.
  • Accélérateur : matériel spécialisé, tel que les unités de traitement graphique (GPU) de NVIDIA et les unités de traitement de tenseurs (TPU) de Google, qui peuvent être associés à des nœuds GKE pour accélérer les calculs, en particulier pour les tâches d'entraînement et d'inférence.
  • Quantification : technique utilisée pour réduire la taille des modèles d'IA/de ML et améliorer la vitesse d'inférence en convertissant les pondérations et les activations des modèles de types de données de plus haute précision en types de données de plus faible précision.

Avantages de GKE pour l'inférence

La mise en service de l'inférence sur GKE présente plusieurs avantages :

  • Excellent rapport prix/performances : bénéficiez de valeur et de vitesse pour vos besoins de mise en service de l'inférence. GKE vous permet de choisir parmi une gamme d'accélérateurs puissants (GPU et TPU). Vous ne payez ainsi que les performances dont vous avez besoin.
  • Déploiement plus rapide : accélérez votre délai de mise sur le marché grâce aux bonnes pratiques, aux qualifications et aux bonnes pratiques fournies par les fonctionnalités d'IA générative de GKE.
  • Performances évolutives : effectuer un scaling horizontal les performances grâce à la surveillance prédéfinie à l'aide de GKE Inference Gateway, l'autoscaling horizontal des pods (AHP) et de métriques personnalisées. Vous pouvez exécuter une gamme de modèles pré-entraînés ou personnalisés, de 8 milliards à 671 milliards de paramètres.
  • Portabilité complète : bénéficiez d'une portabilité complète grâce à des normes ouvertes. Google contribue aux principales API Kubernetes, y compris Gateway et LeaderWorkerSet, et toutes les API sont portables avec les distributions Kubernetes.
  • Compatibilité avec l'écosystème : tirez parti de l'écosystème robuste de GKE, qui est compatible avec des outils tels que Kueue pour la mise en file d'attente et la gestion avancées des ressources, et Ray pour le calcul distribué, afin de faciliter l'entraînement et l'inférence de modèles évolutifs et efficaces.

Fonctionnement de l'inférence sur GKE

Cette section décrit, de manière générale, les étapes à suivre pour utiliser GKE pour la mise en service de l'inférence :

  1. Conteneurisez votre modèle : conteneuriser une application consiste à créer une image de conteneur, qui est un package exécutable incluant tout ce qui est nécessaire pour exécuter l'application : code, environnement d'exécution, outils système, bibliothèques système et paramètres. Une application simple peut être conteneurisée en tant qu'unité unique, tandis qu'une application plus complexe peut être divisée en plusieurs composants conteneurisés. Déployez un modèle en conteneurisant le serveur de modèles (tel que vLLM) et en chargeant les pondérations du modèle à partir de Cloud Storage ou d'un dépôt tel que Hugging Face. Lorsque vous utilisez GKE Inference Quickstart, l'image conteneurisée est automatiquement gérée dans le fichier manifeste.

  2. Créez un cluster GKE : créez un cluster GKE pour héberger votre déploiement. Choisissez Autopilot pour une expérience gérée ou Standard pour la personnalisation. Configurez la taille du cluster, les types de nœuds et les accélérateurs. Pour une configuration optimisée, utilisez Inference Quickstart.

  3. Déployez votre modèle en tant que déploiement Kubernetes : créez un déploiement Kubernetes pour gérer votre service d'inférence. Un déploiement est un objet d'API Kubernetes qui vous permet d'exécuter plusieurs instances dupliquées de pods répartis entre les nœuds d'un cluster. Spécifiez l'image Docker, les instances dupliquées et les paramètres. Kubernetes extrait l'image et exécute vos conteneurs sur les nœuds du cluster GKE. Configurez les pods avec votre serveur de modèles et votre modèle, y compris les LoRA si nécessaire.

  4. Exposez votre service d'inférence : rendez votre service d'inférence accessible en créant un service Kubernetes pour fournir un point de terminaison réseau à votre déploiement. Utilisez Inference Gateway pour un équilibrage de charge et un routage intelligents spécialement conçus pour les charges de travail d'inférence d'IA générative, ou consultez la comparaison des stratégies d'équilibrage de charge pour choisir la meilleure option pour vos besoins.

  5. Gérez les requêtes d'inférence : envoyez des données depuis les clients de votre application vers le point de terminaison de votre service, au format attendu (JSON, gRPC). Si vous utilisez un équilibreur de charge, il distribue les requêtes aux instances dupliquées du modèle. Le serveur de modèles traite la requête, exécute le modèle et renvoie l'inférence.

  6. Faites évoluer et surveillez votre déploiement d'inférence : faites évoluer l'inférence avec AHP pour ajuster automatiquement les instances dupliquées en fonction du processeur ou de la latence. L'autoscaler horizontal de pods (AHP) est un contrôleur Kubernetes qui augmente ou diminue automatiquement le nombre de pods dans une charge de travail (telle qu'un déploiement) en fonction des métriques observées, telles que l'utilisation du processeur ou des métriques personnalisées. Utilisez Inference Quickstart pour obtenir des recommandations de scaling générées automatiquement. Pour suivre les performances, utilisez Cloud Monitoring et Cloud Logging avec une observabilité prédéfinie, y compris des tableaux de bord pour les serveurs de modèles courants tels que vLLM.

Pour obtenir des exemples détaillés utilisant des modèles, des serveurs de modèles et des accélérateurs spécifiques, consultez la page Exemples d'inférence.

Fonctionnalités d'IA générative de GKE

Vous pouvez utiliser ces fonctionnalités ensemble ou individuellement pour résoudre les principaux défis liés à la mise en service de modèles d'IA générative et améliorer l'utilisation des ressources dans votre environnement GKE, sans frais supplémentaires.

Nom Description Avantages
Démarrage rapide de GKE Inference

Analysez les performances et la rentabilité de vos charges de travail d'inférence. Spécifiez vos besoins commerciaux et obtenez des bonnes pratiques personnalisées pour la combinaison d'accélérateurs, de configurations de scaling et de stockage, et de serveurs de modèles qui répondent le mieux à vos besoins. Vous pouvez accéder à ce service avec la gcloud CLI et la Google Cloud console.

Pour en savoir plus, consultez la page Analyser les performances et les coûts de la mise en service de modèles avec GKE Inference Quickstart.

  • Gagnez du temps en automatisant les étapes initiales de choix et de configuration de votre infrastructure.
  • Conservez un contrôle total sur votre configuration Kubernetes pour un réglage plus précis.
Passerelle d'inférence GKE

Bénéficiez d'un routage basé sur des métriques, telles que l'utilisation du cache KV, pour une meilleure latence.

Pour en savoir plus, consultez la page À propos de GKE Inference Gateway.

  • Partagez des modèles affinés qui utilisent des fichiers LoRA, avec une sélection de points de terminaison basée sur l'affinité pour une meilleure rentabilité.
  • Obtenez une haute disponibilité en accédant dynamiquement à la capacité des GPU et des TPU dans toutes les régions.
  • Améliorez la sécurité de vos modèles grâce aux règles du module complémentaire Model Armor.
Accélérateurs de chargement des pondérations de modèle

Accédez rapidement aux données dans Cloud Storage à l'aide de Cloud Storage FUSE avec mise en cache et téléchargements parallèles. Pour en savoir plus sur l'utilisation de Cloud Storage FUSE pour les charges de travail d'IA/de ML, consultez l'architecture de référence.

Google Cloud Managed Lustre est un système de fichiers parallèle hautes performances, entièrement géré et optimisé pour l'IA,qui peut être associé à 10 000 pods ou plus. Pour en savoir plus sur l'utilisation de Managed Lustre pour les charges de travail d'IA/de ML, consultez l'architecture de référence.

Google Cloud Hyperdisk ML est un disque en réseau qui peut être associé à un maximum de 2 500 pods.

  • Optimisez le temps de démarrage de l'inférence en minimisant la latence du modèle de chargement des pondérations sur GKE.
  • Pour les déploiements avec un scaling de nœuds limité, envisagez d'utiliser Cloud Storage FUSE pour installer les pondérations de modèle.
  • Pour les charges de travail d'inférence qui exigent des performances de effectuer un scaling horizontal cohérentes, Google Cloud Managed Lustre est compatible avec un accès aux fichiers à haut débit et à faible latence depuis plusieurs pods simultanément.
  • Pour les scénarios à grande échelle qui exigent un accès cohérent et à faible latence à des pondérations de modèle volumineuses, Google Cloud Hyperdisk ML offre une solution de stockage par blocs dédiée.

Métriques de performances d'inférence

Pour optimiser vos charges de travail d'inférence, il est important de comprendre comment mesurer leurs performances. Le tableau suivant décrit les métriques clés pour évaluer les performances d'inférence sur GKE.

Indicateurs de benchmark Métrique (unité) Description
Latence Délai d'émission du premier jeton (TTFT, en ms) Temps nécessaire pour générer le premier jeton d'une requête.
Délai normalisé par jeton de sortie (NTPOT, en ms) Latence de la requête normalisée par le nombre de jetons de sortie, mesurée comme suit : request_latency / total_output_tokens.
Délai par jeton de sortie (TPOT, en ms) Temps nécessaire pour générer un jeton de sortie, mesuré comme suit : (request_latency - time_to_first_token) / (total_output_tokens - 1).
Latence entre les jetons (ITL, en ms) Mesure la latence entre deux générations de jetons de sortie. Contrairement au TPOT, qui mesure la latence sur l'ensemble de la requête, l'ITL mesure le temps nécessaire pour générer chaque jeton de sortie individuel. Ces mesures individuelles sont ensuite agrégées pour produire des valeurs moyennes, médianes et centiles telles que p90.
Latence de la requête (ms) Temps de bout en bout pour exécuter une requête.
Débit Requêtes par seconde Nombre total de requêtes que vous traitez par seconde. Notez que cette métrique n'est peut-être pas un moyen fiable de mesurer le débit des LLM, car elle peut varier considérablement pour différentes longueurs de contexte.
Jetons de sortie par seconde Métrique courante mesurée comme suit : total_output_tokens_generated_by_server / elapsed_time_in_seconds.
Jetons d'entrée par seconde Mesuré comme suit : total_input_tokens_generated_by_server / elapsed_time_in_seconds.
Jetons par seconde Mesuré comme suit : total_tokens_generated_by_server / elapsed_time_in_seconds. Cette métrique comptabilise les jetons d'entrée et de sortie, ce qui vous permet de comparer les charges de travail avec des temps de préremplissage élevés par rapport à des temps de décodage élevés.

Planifier l'inférence

Un déploiement d'inférence réussi nécessite une planification minutieuse dans plusieurs domaines clés, y compris la rentabilité, les performances et la disponibilité des ressources. Pour obtenir des recommandations détaillées sur la création d'une plate-forme d'inférence évolutive, performante et économique, consultez la page Présentation des bonnes pratiques d'inférence sur GKE.

Essayer des exemples d'inférence

Découvrez des exemples de déploiement GKE pour les modèles d'IA générative, les accélérateurs et les serveurs de modèles. Si vous débutez, nous vous recommandons de consulter le tutoriel Diffuser des modèles ouverts Gemma à l'aide de GPU sur GKE avec vLLM.

Vous pouvez également rechercher un tutoriel par mot clé :

Accélérateur Serveur de modèles Tutoriel
GPU vLLM Diffuser des LLM tels que DeepSeek-R1 671B ou Llama 3.1 405B sur GKE
GPU vLLM Diffuser des modèles ouverts Gemma à l'aide de GPU sur GKE avec vLLM
GPU vLLM Diffuser un LLM avec GKE Inference Gateway
GPU vLLM Diffuser des LLM ouverts sur GKE avec une architecture préconfigurée
GPU Ray Serve Diffuser un LLM sur des GPU L4 avec Ray
GPU TGI Diffuser un LLM avec plusieurs GPU dans GKE
GPU TorchServe Diffuser T5 sur GKE avec TorchServe
TPU vLLM Diffuser un LLM à l'aide de TPU Trillium sur GKE avec vLLM
TPU vLLM Diffuser un LLM à l'aide de TPU sur GKE avec KubeRay
TPU MaxDiffusion Diffuser Stable Diffusion XL (SDXL) à l'aide de TPU sur GKE avec MaxDiffusion
TPU vLLM Diffuser des LLM à l'aide de TPU multi-hôtes sur GKE avec JetStream et Pathways
TPU vLLM Diffuser des LLM ouverts sur des TPU avec une architecture préconfigurée

Étape suivante

  • Consultez le portail d'orchestration d'IA/de ML sur GKE pour découvrir nos guides officiels, nos tutoriels et nos cas d'utilisation pour exécuter des charges de travail d'IA/de ML sur GKE.
  • Découvrez des exemples expérimentaux pour exploiter GKE afin d'accélérer vos initiatives d'IA/de ML dans GKE AI Labs.