Ce document fournit une architecture de référence qui montre comment utiliser Google Cloud Managed Lustre pour optimiser les performances des charges de travail d'IA et de ML déployées sur Google Kubernetes Engine (GKE). Ce document s'adresse aux architectes et aux utilisateurs techniques qui conçoivent, provisionnent et gèrent le stockage de leurs charges de travail d'IA sur Google Cloud. Ce document suppose que vous comprenez le cycle de vie, les processus et les capacités du ML.
Managed Lustre est un système de fichiers parallèle persistant et entièrement Google Cloudgéré, basé sur EXAScaler Lustre de DDN. Managed Lustre est idéal pour les charges de travail d'IA qui répondent aux critères suivants :
- Nécessitent jusqu'à 8 PiB de capacité de stockage.
- Fournissez un accès à très faible latence (inférieure à la milliseconde) avec un débit élevé, jusqu'à 1 To/s.
- Fournissent un nombre élevé d'opérations d'entrée/sortie par seconde (IOPS).
Managed Lustre offre les avantages suivants pour les charges de travail d'IA :
- Coût total de possession (TCO) réduit pour l'entraînement : Managed Lustre réduit le temps d'entraînement en fournissant efficacement des données aux nœuds de calcul. Cette fonctionnalité permet de réduire le coût total de possession pour l'entraînement des modèles d'IA et de ML.
- Réduction du coût total de possession pour le serving : Lustre géré offre des fonctionnalités hautes performances qui permettent un chargement plus rapide des modèles et un serving d'inférence optimisé. Ces fonctionnalités permettent de réduire les coûts de calcul et d'améliorer l'utilisation des ressources.
- Utilisation efficace des ressources : Managed Lustre vous permet de combiner la création de points de contrôle et l'entraînement dans une seule instance. Ce partage de ressources permet d'optimiser l'utilisation efficace du débit de lecture et d'écriture dans un système de stockage unique et performant.
Architecture
Le schéma suivant montre un exemple d'architecture pour utiliser Managed Lustre afin d'optimiser les performances d'une charge de travail d'entraînement et de diffusion de modèle :
Les charges de travail présentées dans l'architecture précédente sont décrites en détail dans les sections suivantes. Cette architecture comprend les composants suivants :
- Cluster Google Kubernetes Engine : GKE gère les hôtes de calcul sur lesquels s'exécutent vos processus d'entraînement et de diffusion de modèles d'IA et de ML. GKE gère l'infrastructure sous-jacente des clusters, y compris le plan de contrôle, les nœuds et tous les composants du système.
- Planificateur Kubernetes : le plan de contrôle GKE planifie les charges de travail et gère leur cycle de vie, leur mise à l'échelle et leurs mises à niveau.
- Réseau cloud privé virtuel (VPC) : toutes les ressources Google Cloud de l'architecture utilisent un seul réseau VPC.
- Cloud Load Balancing : dans cette architecture, Cloud Load Balancing distribue efficacement les requêtes d'inférence entrantes des utilisateurs de l'application aux conteneurs de diffusion du cluster GKE. L'utilisation de Cloud Load Balancing permet d'assurer une haute disponibilité, une évolutivité et des performances optimales pour l'application d'IA et de ML. Pour en savoir plus, consultez Comprendre l'équilibrage de charge GKE.
- Processeurs graphiques (GPU) ou Tensor Processing Units (TPU) : les GPU et les TPU sont des accélérateurs de machine learning spécialisés qui améliorent les performances de votre charge de travail d'IA et de ML. Pour garantir une efficacité et une compatibilité optimales, utilisez le même type d'accélérateur pour l'ensemble de votre charge de travail d'IA et de ML. Pour savoir comment choisir un type de processeur approprié, consultez la section Options d'accélérateur plus loin dans ce document.
- Managed Lustre : Managed Lustre accélère l'entraînement et l'inférence de l'IA et du ML en fournissant un système de fichiers parallèle hautes performances optimisé pour une faible latence et un débit élevé. Par rapport à l'utilisation de Cloud Storage seul, l'utilisation de Managed Lustre réduit considérablement le temps d'entraînement et améliore la réactivité de vos modèles lors de la diffusion. Ces améliorations sont particulièrement visibles dans les charges de travail exigeantes qui nécessitent un accès rapide et cohérent aux données partagées.
- Cloud Storage FUSE : Cloud Storage FUSE fournit un stockage persistant et économique pour vos charges de travail d'IA et de ML. Cloud Storage sert de dépôt central pour vos ensembles de données d'entraînement brutes, vos points de contrôle de modèle et vos sauvegardes de modèle. L'utilisation de Cloud Storage permet d'assurer la durabilité, la disponibilité à long terme et la rentabilité des données qui ne sont pas utilisées activement dans les calculs.
Charge de travail d'entraînement
Dans l'architecture précédente, voici les étapes du flux de données lors de l'l'entraînement du modèle :
- Importer des données d'entraînement dans Cloud Storage : vous importez des données d'entraînement dans un bucket Cloud Storage, qui sert de dépôt central sécurisé et évolutif, et de source de référence.
- Copier les données dans Managed Lustre : le corpus de données d'entraînement est transféré via une API pour importer des données dans une instance Managed Lustre depuis Cloud Storage. Le transfert des données d'entraînement vous permet de profiter des fonctionnalités du système de fichiers hautes performances de Managed Lustre pour optimiser la vitesse de chargement et de traitement des données pendant l'entraînement du modèle.
- Exécuter des jobs d'entraînement dans GKE : le processus d'entraînement du modèle s'exécute sur des nœuds GKE. En utilisant Managed Lustre comme source de données au lieu de charger les données directement depuis Cloud Storage, les nœuds GKE peuvent accéder aux données d'entraînement et les charger beaucoup plus rapidement et avec une latence plus faible. Managed Lustre permet également de réduire le temps nécessaire au transfert du premier octet, mesuré par le temps de latence du premier octet (TTFB). L'utilisation de Managed Lustre permet de réduire les temps de chargement des données et d'accélérer le processus d'entraînement global, en particulier pour les grands ensembles de données comportant de petits fichiers de lecture et des modèles complexes. Selon les exigences de votre charge de travail, vous pouvez utiliser des GPU ou des TPU. Pour savoir comment choisir un type de processeur approprié, consultez Options d'accélérateur plus loin dans ce document.
- Enregistrer les points de contrôle de l'entraînement dans Managed Lustre : pendant le processus d'entraînement, les points de contrôle sont enregistrés dans Managed Lustre en fonction des métriques ou des intervalles que vous définissez. Les points de contrôle capturent l'état du modèle à intervalles réguliers.
Charge de travail de diffusion
Dans l'architecture précédente, voici les étapes du flux de données lors de la diffusion du modèle :
- Charger le modèle pour la diffusion : lorsque votre modèle est prêt à être déployé, vos pods GKE chargent le modèle entraîné à partir de votre instance Managed Lustre vers les nœuds de diffusion. Si l'instance Managed Lustre que vous avez utilisée lors de l'entraînement dispose d'une capacité d'IOPS suffisante et qu'elle se trouve dans la même zone que vos accélérateurs, vous pouvez utiliser la même instance Managed Lustre pour diffuser votre modèle. La réutilisation de l'instance Managed Lustre permet un partage efficace des ressources entre l'entraînement et la diffusion. Pour maintenir des performances et une compatibilité optimales, utilisez le même type de processeur GPU ou TPU que celui que vous avez sélectionné pour vos nœuds GKE de diffusion.
- Requête d'inférence : les utilisateurs de l'application envoient des requêtes d'inférence via les points de terminaison de service. Ces requêtes sont dirigées vers le service Cloud Load Balancing. Cloud Load Balancing distribue les requêtes entrantes entre les conteneurs de diffusion du cluster GKE. Cette distribution garantit qu'aucun conteneur n'est surchargé et que les requêtes sont traitées efficacement.
- Traitement des requêtes d'inférence : lorsqu'une requête d'inférence est reçue, les nœuds de calcul accèdent au modèle préchargé pour effectuer les calculs nécessaires et générer une prédiction.
- Distribution des réponses : les conteneurs de diffusion renvoient les réponses via Cloud Load Balancing. Cloud Load Balancing renvoie les réponses aux utilisateurs d'application appropriés, ce qui termine le cycle de requête d'inférence.
Produits utilisés
Cette architecture de référence utilise les produits Google Cloud suivants :
- Cloud privé virtuel (VPC) : système virtuel qui fournit des fonctionnalités de mise en réseau mondiales et évolutives pour vos charges de travail Google Cloud . Le VPC inclut l'appairage de réseaux VPC, Private Service Connect, l'accès aux services privés et le VPC partagé.
- Google Kubernetes Engine (GKE) : service Kubernetes que vous pouvez utiliser pour déployer et exploiter des applications conteneurisées à grande échelle, à l'aide de l'infrastructure de Google.
- Cloud Storage : store d'objets économique et sans limite pour tout type de données. Les données sont accessibles depuis et en dehors de Google Cloud, et sont répliquées sur plusieurs emplacements à des fins de redondance.
- Google Cloud Managed Lustre : système de fichiers parallèles entièrement géré pour l'IA, le calcul hautes performances (HPC) et les applications gourmandes en données.
Cas d'utilisation
Managed Lustre est idéal pour les charges de travail d'IA qui nécessitent jusqu'à 1 PiB de capacité de stockage et qui doivent fournir un accès à faible latence (inférieure à la milliseconde) avec un débit et des IOPS élevés. Cette section fournit des exemples de cas d'utilisation pour lesquels vous pouvez utiliser Managed Lustre.
Traitement et génération de texte
Les LLM sont des modèles d'IA spécialisés conçus spécifiquement pour comprendre et traiter les données textuelles. Les LLM sont entraînés sur des ensembles de données textuelles massifs, ce qui leur permet d'effectuer diverses tâches, y compris la traduction automatique, les systèmes de questions-réponses et la synthèse de texte. Pour faciliter l'entraînement et le traitement par lot efficaces, votre LLM doit avoir un accès à faible latence aux ensembles de données. Managed Lustre excelle dans les applications gourmandes en données en fournissant le débit élevé et la faible latence nécessaires à l'entraînement et à l'inférence, ce qui permet d'obtenir des applications optimisées par LLM plus réactives.
Traitement d'images ou de vidéos haute résolution
Les applications traditionnelles d'IA et de ML ou les modèles génératifs multimodaux qui traitent des images ou des vidéos haute résolution, comme l'analyse d'imagerie médicale ou les systèmes de conduite autonome, nécessitent une grande capacité de stockage et un accès rapide aux données. Managed Lustre fournit un système de fichiers persistant hautes performances qui permet de charger rapidement les données afin d'accélérer les performances des applications. Par exemple, Managed Lustre peut stocker de grands volumes de données sur les patients, telles que des IRM et des scanners, et faciliter le chargement rapide des données sur les nœuds de calcul pour l'entraînement des modèles. Cette fonctionnalité permet aux modèles d'IA et de ML d'analyser rapidement les données pour le diagnostic et le traitement.
Alternatives de conception
Cette section présente d'autres approches de conception que vous pouvez envisager pour votre application d'IA et de ML dans Google Cloud.
Alternative à l'infrastructure de calcul
L'architecture de référence décrite dans ce document utilise GKE pour les charges de travail d'IA et de ML. En fonction des exigences de votre charge de travail, vous pouvez également déployer des instances Lustre gérées sur Compute Engine avec Slurm. Nous vous recommandons cette approche si vous devez intégrer une propriété intellectuelle (PI) d'IA propriétaire dans un environnement évolutif et si vous avez besoin de flexibilité et de contrôle pour optimiser les performances des charges de travail spécialisées.
Compute Engine vous permet de contrôler plus précisément le système d'exploitation que GKE. Lorsque vous utilisez Compute Engine, vous pouvez effectuer les opérations suivantes :
- Sélectionnez, configurez et gérez l'environnement OS dans leurs machines virtuelles pour répondre aux exigences spécifiques des charges de travail.
- Adaptez votre infrastructure à vos besoins exacts, y compris en sélectionnant des types de machines VM spécifiques.
- Utilisez la famille de machines optimisées pour les accélérateurs pour améliorer les performances de vos charges de travail d'IA.
Slurm est un gestionnaire de charges de travail et de ressources Open Source hautement configurable. Slurm constitue une option puissante pour gérer les charges de travail d'IA. Il vous permet de contrôler la configuration et la gestion des ressources de calcul. Pour utiliser cette approche, vous devez maîtriser l'administration Slurm et la gestion du système Linux. GKE fournit un environnement Kubernetes géré qui automatise la gestion des clusters.
Pour en savoir plus sur le déploiement de Slurm, consultez Déployer un cluster HPC avec Slurm. Vous pouvez également effectuer le déploiement à l'aide de Cluster Toolkit avec le plan de démarrage Managed Lustre.
Options d'accélérateur
Les accélérateurs de machine sont des processeurs spécialisés conçus pour accélérer les calculs nécessaires aux charges de travail d'IA et de ML. Vous pouvez choisir des GPU ou des TPU.
- Les accélérateurs GPU offrent d'excellentes performances pour un large éventail de tâches, y compris le rendu graphique, l'entraînement au deep learning et le calcul scientifique. Google Cloud propose un large choix de GPU adaptés à divers besoins en termes de performances et de budgets. Pour en savoir plus sur les modèles et les tarifs des GPU, consultez Tarifs des GPU.
- Les TPU sont des accélérateurs d'IA spécialement conçus et optimisés pour l'entraînement et l'inférence de modèles d'IA volumineux. Les TPU conviennent parfaitement à différents cas d'utilisation, tels que les chatbots, la génération de code, la génération de contenu multimédia, la voix synthétique, les services de vision, les moteurs de recommandations et les modèles de personnalisation. Pour en savoir plus sur les modèles et les tarifs des TPU, consultez Tarifs de Cloud TPU.
Autres options de stockage pour la diffusion
Pour garantir le plus haut niveau de disponibilité, utilisez Cloud Storage FUSE avec Anywhere Cache et un bucket multirégional ou birégional. Cette configuration rend vos modèles d'IA entraînés disponibles dans plusieurs régions. Toutefois, par rapport aux instances Lustre gérées, Cloud Storage FUSE peut avoir un débit par VM inférieur. Pour savoir comment améliorer les performances avec Cloud Storage FUSE, consultez Utiliser la mise en cache de fichiers Cloud Storage FUSE.
Google Cloud Hyperdisk ML est une solution de stockage de blocs hautes performances conçue pour accélérer les charges de travail d'IA et de ML à grande échelle qui nécessitent un accès en lecture seule à de grands ensembles de données. Les volumes Hyperdisk ML peuvent être provisionnés avec un débit agrégé légèrement supérieur pour les volumes de petite taille, mais ils offrent un débit par VM inférieur à celui de Managed Lustre. De plus, les volumes Hyperdisk ML ne sont accessibles qu'aux VM GPU ou TPU situées dans la même zone. Par conséquent, pour les clusters GKE régionaux diffusant des données à partir de plusieurs zones, vous devez provisionner des volumes Hyperdisk ML distincts dans chaque zone. Le provisionnement de plusieurs volumes Hyperdisk ML peut être plus coûteux que l'utilisation d'une seule instance Lustre gérée régionale.
Il est également important de noter que Hyperdisk ML est conçu de sorte que les données ne puissent pas être modifiées une fois écrites. Cette approche WORM (Write Once Read Many) permet d'éviter toute corruption accidentelle ou modification non autorisée. Toutefois, pour mettre à jour un modèle de diffusion, vous ne pouvez pas remplacer le modèle existant. Vous devez créer une instance Hyperdisk ML. Pour en savoir plus sur l'utilisation d'Hyperdisk ML dans les charges de travail d'IA, consultez Accélérer le chargement des données d'IA/ML avec Hyperdisk ML.
Considérations de conception
Pour concevoir un déploiement Managed Lustre qui optimise la sécurité, la fiabilité, les coûts, les opérations et les performances de vos charges de travail d'IA et de ML sur Google Cloud, suivez les consignes des sections suivantes.
Lorsque vous créez une architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations du Google Cloud Framework Well-Architected : perspective de l'IA et du ML.
Sécurité, confidentialité et conformité
Cette section décrit les points à prendre en compte pour vos charges de travail d'IA et de ML dansGoogle Cloud qui répondent à vos exigences de sécurité, de confidentialité et de conformité.
Sécurité SSH
Pour faciliter un contrôle des accès efficace pour vos applications exécutées dans GKE, vous pouvez utiliser Identity-Aware Proxy (IAP). IAP s'intègre à la ressource GKE Ingress et permet de vérifier que seuls les utilisateurs authentifiés disposant du rôle IAM approprié peuvent accéder aux applications. Pour en savoir plus, consultez Activer IAP pour GKE et Contrôle des accès avec IAM.
Chiffrement des données
Par défaut, vos données dans GKE, y compris celles stockées dans votre instance Managed Lustre, sont chiffrées au repos et en transit à l'aide de Google-owned and Google-managed encryption keys. Pour renforcer la sécurité des données sensibles, vous pouvez chiffrer les données au niveau de la couche application à l'aide d'une clé dont vous êtes propriétaire et que vous gérez avec Cloud Key Management Service (Cloud KMS). Pour en savoir plus, consultez Chiffrer les secrets au niveau de la couche d'application.
Si vous utilisez un cluster GKE Standard, vous pouvez utiliser les autres fonctionnalités suivantes de chiffrement de données :
- Chiffrez les données utilisées (c'est-à-dire en mémoire) à l'aide des nœuds Confidential Google Kubernetes Engine. Pour en savoir plus sur les fonctionnalités, la disponibilité et les limites des nœuds Confidential GKE Node, consultez Chiffrer les données de charge de travail utilisées avec des nœuds Confidential GKE Node.
- Si vous avez besoin de davantage de contrôle sur les clés de chiffrement utilisées pour chiffrer le trafic des pods sur les nœuds GKE, vous pouvez chiffrer les données en transit à l'aide de clés que vous gérez. Pour en savoir plus, consultez Chiffrer vos données en transit dans GKE avec des clés de chiffrement gérées par l'utilisateur.
Isolation des données
Pour renforcer la sécurité et améliorer la protection des données, stockez les données d'entraînement dans une instance Managed Lustre distincte des points de contrôle et des modèles entraînés. L'utilisation d'instances de stockage distinctes permet d'isoler les performances, d'améliorer la sécurité en isolant les données d'entraînement et d'améliorer la protection des données. Bien que les listes de contrôle des accès vous permettent de gérer la sécurité au sein d'une même instance, l'utilisation d'instances distinctes offre une limite de sécurité plus robuste.
Autres considérations sur la sécurité
En mode Autopilot, GKE préconfigure votre cluster et gère les nœuds conformément aux bonnes pratiques de sécurité, ce qui vous permet de vous concentrer sur les problématiques de sécurité spécifiques aux charges de travail. Pour en savoir plus, consultez Fonctionnalités de sécurité de GKE Autopilot et Solution de sécurité Kubernetes clés en main avec GKE Autopilot.
Pour savoir comment protéger la confidentialité de vos données, consultez Présentation de Sensitive Data Protection et Inspecter le stockage et les bases de données pour identifier les données sensibles. Google Cloud
Pour connaître les principes et recommandations de sécurité spécifiques aux charges de travail d'IA et de ML, consultez Enjeux spécifiques à l'IA et au ML : sécurité dans le framework Well-Architected.
Fiabilité
Cette section décrit les facteurs de conception à prendre en compte lorsque vous utilisez cette architecture de référence afin de créer et d'exploiter une infrastructure fiable pour votre déploiement régional dans Google Cloud.
Robustesse en cas de pannes d'infrastructure
Avec le mode de fonctionnement Autopilot utilisé dans cette architecture, GKE fournit les fonctionnalités de fiabilité intégrée suivantes :
- Votre charge de travail utilise un cluster GKE régional. Le plan de contrôle et les nœuds de calcul sont répartis sur trois zones différentes au sein d'une même région. Vos charges de travail offrent une bonne résistance aux pannes zonales. Les clusters GKE régionaux disposent d'un contrat de niveau de service (SLA) spécifiant un temps d'activité plus conséquent que les clusters zonaux.
- Vous n'avez pas besoin de créer de nœuds ni de gérer des pools de nœuds. GKE crée automatiquement les pools de nœuds et leur applique un autoscaling en fonction des exigences de vos charges de travail.
Pour augmenter la disponibilité de votre application, vous pouvez la diffuser à partir de plusieurs zones en déployant une instance Managed Lustre dans chaque zone.
Planification de la capacité des clusters
Pour vous assurer de disposer d'une capacité de GPU suffisante en cas de besoin pour l'autoscaling du cluster GKE, vous pouvez créer et utiliser des réservations. Une réservation fournit une assurance de capacité dans une zone spécifique, pour une ressource spécifiée. Une réservation peut être spécifique à un projet ou partagée entre plusieurs projets. Des frais vous sont facturés pour les ressources réservées, même si elles ne sont pas provisionnées ou utilisées. Pour en savoir plus, consultez Consommer des ressources zonales réservées.
Durabilité des données
Pour sauvegarder et restaurer des charges de travail dans GKE, activez Sauvegarde pour GKE dans chaque cluster. Sauvegarde pour GKE est utile pour la reprise après sinistre, les pipelines CI/CD, le clonage de charges de travail et les scénarios de mise à niveau.
Vous pouvez sélectionner des charges de travail spécifiques ou toutes les charges de travail que vous souhaitez sauvegarder et restaurer. Vous pouvez également sauvegarder les charges de travail d'un cluster et les restaurer dans un autre cluster. Pour réduire les temps d'arrêt des charges de travail, vous pouvez programmer l'exécution automatique de vos sauvegardes, ce qui vous permet de récupérer rapidement vos charges de travail en cas d'incident.
Autres considérations sur la fiabilité
Pour obtenir des principes et des recommandations de fiabilité spécifiques aux charges de travail d'IA et de ML, consultez Enjeux spécifiques à l'IA et au ML : fiabilité dans le framework Well-Architected.
Optimisation des coûts
Cette section fournit des conseils pour vous aider à optimiser les coûts de configuration et de fonctionnement de votre workflow d'IA et de ML dans Google Cloud.
Niveaux de performances Managed Lustre
Lorsque vous créez une instance Managed Lustre, vous devez sélectionner un niveau de performances. Choisissez un niveau approprié en fonction des exigences de performances et de coûts de votre charge de travail.
Modèle de provisionnement des nœuds
En mode Autopilot, GKE optimise l'efficacité de l'infrastructure de votre cluster en fonction des exigences de la charge de travail. Pour maîtriser les coûts, vous n'avez pas besoin de surveiller en permanence l'utilisation des ressources ni de gérer la capacité.
Si vous pouvez prédire l'utilisation du stockage éphémère et des ressources processeur et mémoire de votre cluster Autopilot, vous pouvez bénéficier de remises sur engagement d'utilisation. Pour réduire le coût d'exécution de votre application, vous pouvez utiliser des VM Spot pour vos nœuds GKE. Les VM Spot sont moins chères que les VM standards, mais elles n'offrent aucune garantie de disponibilité.
Gestion des ressources
Pour optimiser les coûts et les performances grâce à une gestion efficace, utilisez le programmateur de charge de travail dynamique. Le planificateur de charge de travail dynamique est un outil de gestion des ressources et de planification des jobs qui vous aide à améliorer l'accès aux accélérateurs d'IA (GPU et TPU). Le planificateur de charges de travail dynamique planifie tous vos accélérateurs simultanément et peut s'exécuter pendant les heures creuses avec une gestion définie de la capacité des accélérateurs. En planifiant stratégiquement les jobs, le planificateur de charges de travail dynamique permet de maximiser l'utilisation des accélérateurs, de réduire le temps d'inactivité et d'optimiser vos dépenses cloud.
Utilisation des ressources
Pour optimiser l'utilisation des ressources, utilisez une instance Managed Lustre pour l'entraînement et le service. En consolidant les charges de travail d'entraînement et de diffusion sur une seule instance Managed Lustre, vous minimisez les coûts en éliminant les infrastructures redondantes et en simplifiant la gestion des ressources. Toutefois, il peut y avoir des conflits au niveau des ressources si les deux charges de travail ont des exigences de débit élevées. Si des IOPS de réserve sont disponibles après l'entraînement, l'utilisation de la même instance peut accélérer le chargement du modèle pour le service. Utilisez Cloud Monitoring pour vérifier que vous allouez suffisamment de ressources pour répondre à vos besoins en termes de débit.
Pour minimiser les coûts de stockage, exportez vos données depuis votre instance Managed Lustre vers une classe Cloud Storage moins coûteuse après l'entraînement et la création de points de contrôle. L'exportation de vos données vers Cloud Storage vous permet également de détruire et de recréer des instances Lustre gérées selon les besoins de votre charge de travail.
Pour vous aider à contrôler les coûts de votre bucket Cloud Storage, activez la gestion du cycle de vie des objets ou la classe automatique. La gestion du cycle de vie des objets permet de déplacer automatiquement les données plus anciennes ou moins utilisées vers des classes de stockage moins coûteuses, ou de les supprimer, en fonction des règles que vous définissez. La classe automatique déplace les données d'une classe de stockage à une autre en fonction de vos modèles d'accès. L'utilisation de la gestion du cycle de vie des objets ou de la classe automatique permet de garantir la classe de stockage la plus rentable pour votre utilisation des données en minimisant les dépenses et en évitant les frais de récupération inattendus.
Autres considérations sur les coûts
Pour connaître les principes et les recommandations d'optimisation des coûts spécifiques aux charges de travail d'IA et de ML, consultez Perspective de l'IA et du ML : optimisation des coûts dans le framework Well-Architected et Bonnes pratiques pour exécuter des applications Kubernetes à coût maîtrisé sur GKE.
Excellence opérationnelle
Cette section fournit des conseils pour vous aider à concevoir une infrastructure pour votre workflow d'IA et de ML que vous pouvez exploiter efficacement.
Gestion du modèle
Pour suivre et gérer les artefacts de modèle, y compris les binaires et les métadonnées, utilisez Vertex AI Model Registry, qui vous permet de stocker, d'organiser et de déployer des versions de modèle de manière fluide.
Pour optimiser la fiabilité des modèles, implémentez Vertex AI Model Monitoring afin de détecter la dérive des données, de suivre les performances et d'identifier les anomalies en production.
Autoscaling de cluster GKE
Avec les clusters Autopilot, vous n'avez pas besoin de provisionner ni de gérer les pools de nœuds. Les pools de nœuds sont automatiquement provisionnés via le provisionnement automatique des nœuds et font l'objet d'un scaling automatique pour répondre aux exigences de vos charges de travail.
Pour les clusters GKE Standard, l'autoscaler de cluster redimensionne automatiquement le nombre de nœuds dans un pool de nœuds en fonction des exigences des charges de travail. Pour contrôler le comportement de l'autoscaler de cluster, vous pouvez spécifier une taille minimale et maximale pour le pool de nœuds.
Lorsque vous utilisez l'autoscaler de cluster GKE, n'activez pas l'autoscaling Compute Engine pour les groupes d'instances gérés (MIG) pour les nœuds de votre cluster. L'autoscaler de cluster GKE est distinct de l'autoscaler Compute Engine. L'autoscaler de cluster GKE est conçu pour faire évoluer votre charge de travail en analysant l'utilisation des ressources dans votre cluster GKE, y compris les MIG sous-jacents. L'utilisation des deux autoscalers peut entraîner des décisions de scaling contradictoires. Pour en savoir plus, consultez À propos de l'autoscaling des clusters GKE.
Surveillance des métriques
Pour identifier les goulots d'étranglement, surveillez les métriques clés telles que la latence, le taux d'erreur et l'utilisation des ressources à l'aide de Cloud Monitoring. Cloud Monitoring offre une visibilité en temps réel pour suivre les schémas d'utilisation des ressources et identifier les inefficacités potentielles.
Gestion de l'espace de stockage
Pour automatiser la gestion des données en fonction de l'utilisation de votre bucket Cloud Storage, activez la gestion du cycle de vie des objets ou Autoclass. La gestion du cycle de vie des objets permet de déplacer automatiquement les données plus anciennes ou moins utilisées vers des classes de stockage moins coûteuses, ou de les supprimer, en fonction des règles que vous définissez. La classe automatique déplace les données d'une classe de stockage à une autre en fonction de vos modèles d'accès. L'utilisation de la gestion du cycle de vie des objets ou d'Autoclass permet d'assurer une application cohérente des règles dans votre infrastructure de stockage et de réduire les risques d'erreur humaine. Vous bénéficiez ainsi de performances et d'économies sans intervention manuelle.
Autres considérations opérationnelles
Pour obtenir des bonnes pratiques et des recommandations en matière d'efficacité opérationnelle spécifiques aux charges de travail d'IA et de ML, consultez Perspective de l'IA et du ML : excellence opérationnelle dans le Framework Well-Architected.
Optimisation des performances
Cette section fournit des conseils pour vous aider à optimiser les performances de votre workflow d'IA et de ML dans Google Cloud. Les conseils de cette section ne sont pas exhaustifs. Pour en savoir plus sur l'optimisation des performances de votre environnement Google Cloud Managed Lustre, consultez Considérations sur les performances.
Éléments à prendre en compte pour l'entraînement
Chaque VM A3 ou A4 peut fournir 20 Go/s, soit environ 2,5 Go/s par GPU, à partir d'une instance Lustre gérée. Avant le début de l'entraînement, les données d'entraînement doivent être préchargées depuis Cloud Storage et importées dans Managed Lustre pour minimiser la latence pendant l'entraînement. Pour maximiser le débit de votre charge de travail d'entraînement, provisionnez votre instance Managed Lustre en fonction de vos besoins en débit et en capacité de stockage. Par exemple, une instance Managed Lustre de 20 Tio fournit un débit agrégé compris entre 2,5 Go/s et 20 Go/s pour tous les clients, en fonction du niveau de performances sélectionné. Si votre entraînement nécessite un débit plus élevé, vous devrez augmenter la taille de votre instance Managed Lustre en conséquence.
Points à prendre en compte concernant les points de contrôle
Pour profiter du débit d'écriture élevé qu'offre Managed Lustre et pour minimiser le temps d'entraînement, utilisez Managed Lustre pour l'entraînement et la création de points de contrôle. Cette approche permet d'utiliser efficacement les ressources et de réduire le coût total de possession de vos ressources GPU en maintenant l'entraînement et la création de points de contrôle aussi rapides que possible. Pour obtenir une création de points de contrôle rapide, vous pouvez exécuter une création de points de contrôle distribuée et asynchrone. Comme Managed Lustre est persistant, vous pouvez stocker vos points de contrôle dans la même instance. Pour optimiser davantage les coûts et le stockage à long terme, envisagez d'exporter les points de contrôle vers un bucket Cloud Storage.
Points à prendre en compte pour la diffusion
Pour obtenir des performances optimales lors de la diffusion, vous devez minimiser le temps nécessaire pour charger les modèles en mémoire. Managed Lustre offre un débit par VM élevé de plus de 20 Go/s, ce qui permet d'obtenir un débit de cluster global élevé. Cette fonctionnalité peut vous aider à minimiser les temps de chargement des modèles sur des milliers de VM. Pour suivre les métriques clés qui vous permettent d'identifier les goulots d'étranglement, utilisez Cloud Monitoring et vérifiez que vous déployez une capacité suffisante, car les performances augmentent avec la capacité de stockage.
Emplacement des ressources
Pour minimiser la latence et maximiser les performances, créez votre instance Managed Lustre dans une région géographiquement proche de vos clients de calcul GPU ou TPU. Dans l'architecture de référence décrite dans ce document, les conteneurs GKE et le système de fichiers sont colocalisés dans la même zone.
- Pour l'entraînement et le checkpointing : pour obtenir des résultats optimaux, déployez les clients et les instances Managed Lustre dans la même zone. Cette colocation minimise les temps de transfert de données et maximise l'utilisation du débit d'écriture Lustre géré.
- Pour la diffusion : bien que la colocation avec des clients de calcul dans la même zone soit idéale, une instance Managed Lustre par région peut suffire. Cette approche permet d'éviter les coûts supplémentaires associés au déploiement de plusieurs instances et contribue à maximiser les performances de calcul. Toutefois, si vous avez besoin de capacité ou de débit supplémentaires, vous pouvez envisager de déployer plusieurs instances par région.
Pour en savoir plus sur les emplacements compatibles avec les instances Managed Lustre, consultez Emplacements compatibles.
Autres considérations sur les performances
Pour obtenir des principes et des recommandations d'optimisation des performances spécifiques aux charges de travail d'IA et de ML, consultez Perspective de l'IA et du ML : optimisation des performances dans le framework Well-Architected.
Déploiement
Pour créer et monter une instance Managed Lustre, nous vous recommandons d'utiliser le module Managed Lustre disponible dans Cluster Toolkit. Cluster Toolkit est un ensemble d'outils modulaires basés sur Terraform, conçu pour déployer des environnements d'IA et de ML reproductibles surGoogle Cloud.
Pour savoir comment déployer manuellement Managed Lustre sur GKE, consultez Créer une instance Managed Lustre et Se connecter à une instance Managed Lustre existante depuis Google Kubernetes Engine.
Pour savoir comment configurer un réseau VPC pour Managed Lustre, consultez Configurer un réseau VPC.
Étapes suivantes
- Découvrez comment utiliser les systèmes de fichiers parallèles pour les charges de travail HPC.
- Découvrez les bonnes pratiques d'implémentation du machine learning sur Google Cloud.
- Découvrez comment concevoir le stockage pour les charges de travail d'IA et de ML dans Google Cloud.
- Découvrez comment entraîner un modèle TensorFlow avec Keras sur GKE.
- Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.
Contributeurs
Auteur : Samantha He | Rédactrice technique
Autres contributeurs :
- Dean Hildebrand | Directeur technique, bureau du directeur de la technologie
- Kumar Dhanagopal Développeur de solutions multiproduits
- Sean Derrington | Group Outbound Product Manager, Stockage