Cluster et charge de travail GKE d'inférence pré-entraînée de l'IA

Pour créer une application d'IA, provisionnez un cluster Google Kubernetes Engine (GKE) sécurisé et privé, optimisé pour les charges de travail d'IA, puis déployez votre charge de travail à l'aide d'un graphique Helm. Ce guide décrit les modèles suivants, que vous pouvez personnaliser pour déployer une application d'IA :

  • Cluster GKE d'inférence pré-entraînée de l'IA : créez l'infrastructure de base requise pour le déploiement de modèles hautes performances. Ce modèle configure un cluster GKE privé et sécurisé, optimisé pour l'inférence d'IA.

  • Charge de travail GKE d'inférence préentraînée de l'IA (aperçu) : déployez un graphique Helm qui inclut la configuration d'une charge de travail d'IA. Utilisez le graphique Helm pour déployer un modèle Gemma pré-entraîné à l'aide du moteur de diffusion vLLM. La charge de travail est configurée pour des demandes efficaces de ressources GPU et un autoscaler horizontal de pods (AHP) pour effectuer le scaling en fonction de l'utilisation du cache GPU.

Par exemple, vous pouvez déployer les modèles de cluster et de charge de travail pour répondre aux besoins commerciaux suivants :

Exemple Besoin Implémentation
Analyse vidéo en temps réel Une entreprise de sécurité doit traiter des flux vidéo provenant de centaines de caméras pour détecter des anomalies ou des objets spécifiques en temps réel. Déployez des modèles de traitement vidéo sur le pool de nœuds compatibles avec les GPU. Les GPU peuvent répondre aux exigences de débit élevé et de faible latence des flux vidéo simultanés.
Traitement spécialisé des documents Une compagnie d'assurance doit extraire automatiquement des informations de milliers de formulaires de demande de règlement quotidiens, qui contiennent des mises en page et des écritures manuscrites variées. Utilisez le cluster GKE pour héberger des modèles personnalisés et assurez-vous que les données ne quittent jamais l'environnement sécurisé pendant le traitement.
Moteur de recommandations à volume élevé Une plate-forme d'e-commerce doit proposer des recommandations de produits personnalisées aux utilisateurs lors des événements commerciaux les plus importants des fêtes de fin d'année. Utilisez l'API Google Kubernetes Engine Gateway pour acheminer de gros volumes de trafic utilisateur vers les modèles de recommandation. L'API Gateway peut gérer des pics de trafic soudains sans dégrader la latence.

Architecture

L'image suivante montre les composants et les connexions du modèle :

Cluster connecté à un pool de nœuds dans le canevas de conception

Voici les configurations des composants de ce modèle :

  • Cluster GKE Standard : cluster sécurisé et privé sur lequel s'exécute votre charge de travail d'IA.

    Le tableau suivant décrit la configuration du cluster dans ce modèle :

    Configuration Objectif
    La propriété node_locations est définie sur ["us-central1-a", "us-central1-b", "us-central1-c"]. Assure une haute disponibilité et une résilience en répartissant les nœuds du cluster sur trois zones de la région us-central1.
    La propriété enable_intranode_visibility est définie sur true. Permet la visibilité du trafic entre pods sur le même nœud dans les journaux de flux VPC. Cette visibilité est nécessaire pour la surveillance, le dépannage et l'analyse de la sécurité du réseau.
    gateway_api_config est activé à l'aide de {"channel":"CHANNEL_STANDARD"}. L'API GKE Inference Gateway vous aide à gérer le trafic entrant vers vos services Kubernetes. L'API vous aide à configurer le routage précis, l'équilibrage de charge avancé et l'association centralisée de règles.
    La propriété private_cluster_config.enable_private_endpoint est définie sur false. private_cluster_config.enable_private_nodes est true. control_plane_endpoints_config.dns_endpoint_config.allow_external_traffic est défini sur true. Garantit que les nœuds de calcul sur lesquels vos modèles d'IA s'exécutent disposent d'adresses IP privées. Cela permet d'isoler vos nœuds de l'Internet public. Le plan de contrôle GKE est configuré pour être accessible publiquement, ce qui vous permet de gérer le cluster en dehors de votre réseau de cloud privé virtuel (VPC).
    La propriété release_channel est définie sur {"channel":"REGULAR"}. Garantit que votre cluster GKE reçoit des mises à jour stables et prévisibles, ce qui permet d'équilibrer les nouvelles fonctionnalités et la fiabilité.
  • Pool de nœuds GKE : groupe de nœuds de calcul qui exécutent les conteneurs de l'application.

    Le tableau suivant décrit les configurations de pool de nœuds dans ce modèle :

    Configuration Objectif
    La propriété autoscaling.min_node_count est définie sur 0. autoscaling.max_node_count est défini sur 3 (la valeur par défaut est 100). Le pool de nœuds peut être complètement réduit lorsqu'aucune charge de travail d'IA n'est en cours d'exécution, ce qui permet de réduire les coûts pendant les périodes d'inactivité. La limite supérieure de scaling permet de contrôler les coûts et la consommation de ressources.
    Le paramètre node_config.guest_accelerator est ajouté. gpu_driver_installation_config.gpu_driver_version: est défini sur "LATEST". gpu_sharing_config est activé avec TIME_SHARING. max_shared_clients_per_gpu: est défini sur 2. Spécifie l'utilisation de GPU NVIDIA L4 pour les tâches d'inférence d'IA. Les pilotes de GPU nécessaires sont installés automatiquement. Plusieurs charges de travail plus petites peuvent partager un même GPU.
    node_config.machine_type devient "g2-standard-8". Le type de machine est spécifiquement conçu pour compléter les GPU L4. Les processeurs virtuels (8) et la mémoire (32 Go) sont créés pour prendre en charge le GPU et exécuter vos applications d'inférence d'IA.
    node_config.oauth_scopes inclut https://www.googleapis.com/auth/cloud-platform. Le compte de service du nœud dispose d'un accès étendu aux services Google Cloud , ce qui permet l'interaction avec les API pour des tâches telles que la journalisation, la surveillance et l'extraction d'images de conteneurs.
    La propriété node_config.shielded_instance_config.enable_secure_boot est définie sur true. Le démarrage sécurisé permet de protéger vos nœuds contre les logiciels malveillants au niveau du démarrage en vérifiant les signatures cryptographiques du bootloader et du noyau avant leur exécution.

Configuration du chart Helm

Le tableau suivant répertorie les configurations de chart Helm qui ont été personnalisées pour déployer et mettre à l'échelle un service d'inférence d'IA sur GKE.

Configuration Objectif
replicaCount: 1 Crée une seule réplique initiale.
image.repository: vllm/vllm-openai Utilise une image vLLM, une bibliothèque optimisée pour l'inférence de grands modèles de langage (LLM), exposée à l'aide d'une API compatible avec OpenAI.
model.id: google/gemma-7b-it Définit le modèle Gemma 7B adapté aux instructions comme modèle à diffuser.
model.hfSecret: hf-secret Indique que le modèle nécessite une authentification à l'aide d'un secret Kubernetes pour une gestion sécurisée des identifiants.
resources.limits et requests pour nvidia.com/gpu: "1" Garantit que chaque pod reçoit un GPU dédié.
nodeSelector.cloud.google.com/gke-accelerator: nvidia-l4 Garantit que vos pods de modèles d'IA sont planifiés exclusivement sur des nœuds GKE Standard équipés de GPU NVIDIA L4, qui sont idéaux pour une inférence économique et performante.
hpa.enabled: true Active l'autoscaler horizontal de pods, qui permet à l'application d'adapter automatiquement le nombre de pods (entre minReplicas: 1 et maxReplicas: 10) en fonction de targetCPUUtilizationPercentage: 80%. Garantit les performances en cas de pics de charge et l'efficacité des coûts en cas de faible utilisation.
tensorParallelSize: 1 Indique que le modèle n'est pas réparti sur plusieurs GPU dans un même pod.
maxModelLen: 512 Contrôle la longueur maximale de séquence que le modèle Gemma 7B peut traiter.
service.type: ClusterIP Le service est configuré pour un accès interne au cluster.
pdb.enabled: true et minAvailable: 1 Un budget d'interruptions de pods est activé pour assurer la haute disponibilité. Au moins une réplique de votre modèle d'IA reste disponible lors des interruptions volontaires, comme la maintenance des nœuds.

Créer votre application d'IA

Utilisez les modèles cluster GKE et charge de travail pour l'inférence pré-entraînée de l'IA pour déployer votre application d'IA.

Déployer votre infrastructure d'IA

Configurez et déployez le modèle de cluster GKE d'inférence pré-entraînée de l'IA pour créer l'infrastructure de base sur laquelle s'exécute votre charge de travail d'IA.

  1. Dupliquez et déployez le modèle Cluster GKE d'inférence pré-entraînée de l'IA en tant qu'application.

    Un cluster GKE est créé dans le projet de déploiement que vous choisissez.

  2. Configurez les composants. Pour en savoir plus, consultez les ressources suivantes :

  3. Cliquez sur Déployer. Le déploiement de l'application prend plusieurs minutes.

  4. Dans le panneau Détails de l'application, cliquez sur l'onglet Sorties.

  5. Identifiez le cluster_id de votre application. Vous utiliserez ces informations lorsque vous déploierez votre chart Helm.

Déployer votre charge de travail d'IA

Utilisez le modèle de charge de travail d'inférence pré-entraînée par IA GKE pour déployer votre charge de travail d'IA dans le cluster que vous avez créé. Vous allez déployer un graphique Helm qui inclut la configuration de votre charge de travail d'IA.

  1. Sur la page Catalogue Google, dans le modèle Charge de travail GKE d'inférence préentraînée par l'IA, cliquez sur Créer une application.

  2. Dans le champ Nom, saisissez un nom unique pour votre application.

  3. Dans la zone Cible de déploiement GKE, procédez comme suit :

    1. Dans la liste des projets, sélectionnez le projet dans lequel vous avez déployé le cluster GKE à partir de votre application Cluster GKE d'inférence préentraînée par IA.

    2. Dans la liste Région, sélectionnez la région dans laquelle vous avez déployé le cluster GKE.

    3. Dans la liste Clusters, sélectionnez le cluster GKE déployé.

    4. Dans la liste Espace de noms, saisissez l'espace de noms dans lequel vous avez déployé votre cluster GKE. Si vous n'avez pas modifié le nom, saisissez default.

    5. Cliquez sur Créer une application.

    L'application est créée et les fichiers de configuration s'affichent.

  4. Dans le panneau Helm chart (Graphique Helm), procédez comme suit :

    1. Consultez les détails de la configuration.

    2. Facultatif : personnalisez la configuration pour répondre à vos besoins spécifiques.

    3. Pour déployer le graphique Helm sur votre cluster, cliquez sur Deploy (Déployer).

      Pour connaître la procédure détaillée, consultez Déployer des applications.

    Après quelques minutes, la configuration du graphique Helm est déployée sur votre cluster GKE.

Étapes suivantes