Choisir son stockage pour les charges de travail d'IA et de ML dans Google Cloud

Last reviewed 2025-04-09 UTC

Ce document fournit des conseils de conception pour choisir et intégrer les services de stockageGoogle Cloud pour vos charges de travail d'IA et de ML. Chaque étape du cycle de vie du ML a des exigences de stockage différentes. Par exemple, lorsque vous importez l'ensemble de données d'entraînement, vous pouvez privilégier la capacité de stockage pour l'entraînement et le débit élevé pour les grands ensembles de données. De même, les étapes d'entraînement, d'ajustement, de diffusion et d'archivage ont des exigences différentes. Pour la plupart des charges de travail d'IA et de ML, nous vous recommandons d'utiliser Google Cloud Managed Lustre comme solution de stockage. Managed Lustre offre des performances et une évolutivité élevées, ce qui le rend idéal pour les étapes d'entraînement, de checkpointing, d'inférence et d'archivage, qui ont des exigences différentes.

Ce document vous aide à évaluer vos besoins en termes de capacité, de latence et de débit pour choisir la solution de stockage appropriée. Ce document suppose que vous avez sélectionné une plate-forme de calcul répondant aux exigences de votre charge de travail. Pour les charges de travail d'IA et de ML, nous vous recommandons d'utiliser Compute Engine ou Google Kubernetes Engine (GKE). Pour en savoir plus sur la sélection d'une plate-forme de calcul, consultez Héberger des applications sur Google Cloud.

Les onglets suivants fournissent un bref résumé des options de stockage recommandées pour chaque étape du workflow de ML. Pour en savoir plus, consultez Choisir un stockage approprié.

Préparer

Lors de la phase de préparation du workflow de ML, vous effectuez les opérations suivantes :

  1. Importez et ingérez des données.
  2. Transformez les données au format approprié avant d'entraîner le modèle.

Pour optimiser les coûts de stockage en utilisant plusieurs classes de stockage, nous vous recommandons d'utiliser la fonctionnalité Classe automatique de Cloud Storage ou la gestion du cycle de vie des objets.

Train

Lors de la phase d'entraînement du workflow de ML, vous effectuez les opérations suivantes :

  1. Développement du modèle : développez votre modèle à l'aide de notebooks et en appliquant un processus itératif empirique.
  2. Entraînement du modèle :
    • Utilisez des nombres petits à grands d'accélérateurs de machine pour lire de manière répétée l'ensemble de données d'entraînement.
    • Appliquez un processus itératif au développement et à l'entraînement du modèle.
  3. Création de points de contrôle et redémarrage :
    • Enregistrez régulièrement l'état pendant l'entraînement du modèle en créant un point de contrôle afin que l'entraînement puisse redémarrer après une défaillance de nœud.
    • Effectuez la sélection du checkpointing en fonction du modèle d'E/S et de la quantité de données à enregistrer au niveau du point de contrôle.

Pour les étapes d'entraînement, nous vous recommandons les options de stockage suivantes :

  • Utilisez Managed Lustre si votre charge de travail présente les caractéristiques suivantes :
    • Une capacité d'entraînement minimale de 18 Tio.
    • Données d'entraînement composées de petits fichiers de moins de 50 Mo pour profiter des capacités de faible latence.
    • Une exigence de latence inférieure à une milliseconde pour répondre aux exigences de stockage pour l'accès aléatoire aux E/S et aux métadonnées.
    • Nécessité d'effectuer des points de contrôle fréquents et performants.
    • Une expérience semblable à un ordinateur avec compatibilité POSIX complète pour afficher et gérer les données de vos utilisateurs.
  • Utilisez Cloud Storage avec Cloud Storage FUSE et Anywhere Cache si votre charge de travail présente les caractéristiques suivantes :
    • Données d'entraînement composées de fichiers volumineux de 50 Mo ou plus.
    • Tolérance à une latence de stockage plus élevée de quelques dizaines de millisecondes.
    • La durabilité et la haute disponibilité des données sont prioritaires par rapport aux performances de stockage.

Pour optimiser les coûts, nous vous recommandons d'utiliser le même service de stockage à toutes les étapes de l'entraînement du modèle.

Livrer

Lors de l'étape de diffusion du workflow de ML, vous effectuez les opérations suivantes :

  1. Stocker le modèle.
  2. Chargez le modèle dans une instance qui exécute des accélérateurs de machine au démarrage.
  3. Stockez les résultats de l'inférence de modèle, tels que les images générées.
  4. Vous pouvez éventuellement stocker et charger l'ensemble de données utilisé pour l'inférence de modèle.

Pour les étapes de diffusion, nous vous recommandons les options de stockage suivantes :

  • Managed Lustre si votre charge de travail présente les caractéristiques suivantes :
    • Votre charge de travail d'entraînement et de création de points de contrôle utilise Managed Lustre.
    • Exigence de 10 à 100 nœuds d'inférence.
    • Mises à jour fréquentes de votre modèle.
  • Cloud Storage avec Cloud Storage FUSE et Anywhere Cache si votre charge de travail présente les caractéristiques suivantes :
    • Exigence d'une solution économique pour un environnement dynamique où le nombre de nœuds d'inférence peut changer.
    • Mises à jour peu fréquentes de votre modèle.
    • La haute disponibilité et la durabilité de vos modèles sont prioritaires, même en cas de perturbations régionales.
  • Google Cloud Hyperdisk ML si votre charge de travail présente les caractéristiques suivantes :
    • Vous avez besoin de plus de 100 nœuds d'inférence.
    • Mises à jour peu fréquentes de votre modèle.
    • Votre charge de travail utilise un type de machine virtuelle (VM) compatible.
    • Votre pipeline peut gérer des volumes en lecture seule pour stocker des modèles.

Archiver

Lors de l'étape d'archivage des charges de travail de ML, vous conservez les données d'entraînement et le modèle pendant de longues périodes.

Pour optimiser les coûts de stockage avec plusieurs classes de stockage, nous vous recommandons d'utiliser la classe automatique de Cloud Storage ou la gestion du cycle de vie des objets.

Présentation du processus de conception

Pour déterminer les options de stockage appropriées pour votre charge de travail d'IA et de ML dansGoogle Cloud, procédez comme suit :

  1. Tenez compte des caractéristiques de votre charge de travail, des attentes en termes de performances et des objectifs de coûts.
  2. Consultez les services et fonctionnalités de stockage recommandés dans Google Cloud.
  3. En fonction de vos besoins et des options disponibles, vous choisissez les services de stockage et les fonctionnalités dont vous avez besoin pour chaque étape du workflow de ML : préparation, entraînement, diffusion et archivage.

Ce document se concentre sur les étapes du workflow de ML où il est le plus important d'examiner attentivement les options de stockage. Il ne couvre pas l'intégralité du cycle de vie, des processus et des fonctionnalités de ML.

Vous trouverez ci-dessous une présentation du processus de conception en trois phases pour choisir le stockage de votre charge de travail d'IA et de ML :

  1. Définissez vos exigences :
    • Caractéristiques de la charge de travail
    • Contraintes de sécurité
    • Exigences de résilience
    • Attentes en termes de performances
    • Objectifs de coût
  2. Consultez les options de stockage :
    • Managed Lustre
    • Cloud Storage
    • Hyperdisk ML
  3. Choisir le stockage approprié : choisissez les services de stockage, les fonctionnalités et les options de conception en fonction des caractéristiques de votre charge de travail à chaque étape du workflow de ML.

Définir vos exigences

Avant de choisir des options de stockage pour votre charge de travail d'IA et de ML dansGoogle Cloud, vous devez définir les exigences de stockage pour la charge de travail. Pour définir les exigences de stockage, vous devez tenir compte de facteurs tels que la plate-forme de calcul, la capacité, le débit et les exigences de latence.

Pour vous aider à choisir une option de stockage pour vos charges de travail d'IA et de ML, tenez compte des caractéristiques de votre charge de travail :

  • La taille de vos fichiers et de vos requête E/S est-elle petite (en Ko), moyenne ou grande (en Mo ou Go) ?
  • Votre charge de travail présente-t-elle principalement des schémas d'accès aux fichiers séquentiels ou aléatoires ?
  • Vos charges de travail d'IA et de ML sont-elles sensibles à la latence des E/S et au temps de latence du premier octet (TTFB) ?
  • Avez-vous besoin d'un débit de lecture et d'écriture élevé pour les clients uniques, les clients agrégés ou les deux ?
  • Quel est le plus grand nombre de processeurs graphiques (GPU) ou de Tensor Processing Unit (TPU) requis pour votre charge de travail d'entraînement d'IA et de ML la plus importante ?

Vous utiliserez vos réponses à ces questions pour choisir un stockage approprié plus loin dans ce document.

Examiner les options de stockage

Google Cloud propose des services de stockage pour tous les formats de stockage principaux : blocs, fichiers, systèmes de fichiers parallèles et objets. Le tableau suivant décrit les options que vous pouvez envisager pour votre charge de travail d'IA et de ML surGoogle Cloud. Le tableau inclut les trois options de stockage gérées par Google sur lesquelles ce document se concentre pour vos charges de travail d'IA et de ML. Toutefois, si vous avez des exigences spécifiques qui ne sont pas couvertes par ces offres, envisagez d'utiliser des solutions de stockage gérées par des partenaires disponibles sur Google Cloud Marketplace.

Examinez et évaluez les fonctionnalités, les options de conception et les avantages relatifs des services disponibles pour chaque format de stockage.

Service de stockage Type de stockage Fonctionnalités
Managed Lustre Système de fichiers parallèle
Cloud Storage Objet
Hyperdisk ML Bloquer
  • Hautes performances avec une faible capacité de stockage.
  • Lecture seule persistante.
  • Débit agrégé jusqu'à 1,2 To/s.

Managed Lustre

Managed Lustre est un système de fichiers entièrement géré dans Google Cloud. Managed Lustre fournit des instances zonales persistantes basées sur le système de fichiers Lustre DDN EXAScaler. Managed Lustre est idéal pour les charges de travail d'IA et de ML qui nécessitent un accès à faible latence (moins d'une milliseconde) avec un débit et des opérations d'entrée/sortie par seconde (IOPS) élevés. Managed Lustre peut maintenir un débit et des IOPS élevés pour quelques VM ou pour des milliers de VM.

Lustre géré offre les avantages suivants :

  • Conformité POSIX : prise en charge de la norme POSIX, qui permet d'assurer la compatibilité avec de nombreux outils et applications existants.
  • Réduisez le coût total de possession pour l'entraînement : accélérez le temps d'entraînement en fournissant efficacement des données aux nœuds de calcul. Cette accélération 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 service : permet un chargement plus rapide des modèles et un service d'inférence optimisé par rapport à Cloud Storage. Ces fonctionnalités permettent de réduire les coûts de calcul et d'améliorer l'utilisation des ressources.
  • Utilisation efficace des ressources : combinez le checkpointing et l'entraînement dans une seule instance. Cette utilisation des ressources permet de maximiser l'utilisation efficace du débit en lecture et en écriture dans un système de stockage unique et performant.

Cloud Storage

Cloud Storage est un service de stockage d'objets entièrement géré, adapté aux charges de travail d'IA et de ML de toutes tailles. Cloud Storage excelle dans la gestion des données non structurées pour toutes les phases du workflow d'IA et de ML.

Cloud Storage offre les avantages suivants :

  • Évolutivité massive : bénéficiez d'une capacité de stockage illimitée, évolutive à l'exaoctet et à l'échelle mondiale.
  • Haut débit : évoluez jusqu'à 1 To/s en planifiant votre configuration.
  • Options d'emplacement flexibles : choisissez parmi les options de stockage régional, multirégional et birégional pour les charges de travail d'IA et de ML.
  • Rentabilité : profitez d'une gamme de classes de stockage conçues pour optimiser les coûts en fonction de vos habitudes d'accès aux données.

Cloud Storage excelle en termes d'évolutivité et de rentabilité, mais il est important de tenir compte de sa latence et de ses caractéristiques d'E/S. Attendez-vous à une latence de quelques dizaines de millisecondes, ce qui est plus élevé que pour les autres options de stockage. Pour maximiser le débit, vous devez utiliser des centaines ou des milliers de threads, des fichiers volumineux et des requêtes d'E/S volumineuses. Cloud Storage fournit des bibliothèques clientes dans différents langages de programmation, ainsi que Cloud Storage FUSE et Anywhere Cache.

Cloud Storage FUSE est un adaptateur FUSE Open Source compatible avec Google. Cloud Storage FUSE vous permet d'installer des buckets Cloud Storage en tant que lecteurs locaux. Cloud Storage FUSE n'est pas entièrement compatible avec POSIX. Il est donc important de comprendre les limites de Cloud Storage FUSE et les différences avec les systèmes de fichiers traditionnels. Avec Cloud Storage FUSE, vous pouvez accéder à vos données d'entraînement, à vos modèles et à vos points de contrôle en bénéficiant de l'évolutivité, de l'accessibilité et des performances de Cloud Storage.

La mise en cache Cloud Storage FUSE offre les avantages suivants :

  • Portabilité : installez des buckets Cloud Storage et accédez-y à l'aide de la sémantique standard du système de fichiers, ce qui rend vos applications plus portables.
  • Compatibilité : vous n'avez pas besoin de refactoriser les applications pour utiliser des API spécifiques au cloud, ce qui vous fait gagner du temps et des ressources.
  • Temps d'inactivité réduit : démarrez rapidement des jobs d'entraînement en accédant directement aux données dans Cloud Storage, ce qui minimise le temps d'inactivité de vos GPU et TPU.
  • Haut débit : profitez de l'évolutivité et des performances intégrées de Cloud Storage, qui est optimisé pour les charges de travail de ML à forte intensité de lecture avec des GPU ou des TPU.
  • Cache de fichiers local au client : accélérez l'entraînement grâce à un cache local au client qui accélère les lectures de fichiers répétées. Cette accélération peut être encore améliorée lorsque vous l'utilisez avec le SSD local de 6 Tio fourni avec les types de machines A3.

Anywhere Cache est une fonctionnalité Cloud Storage qui fournit jusqu'à 1 PiB de cache de lecture zonal basé sur un disque SSD pour les buckets Cloud Storage. Le cache Anywhere est conçu pour accélérer les applications utilisant beaucoup de données en fournissant une couche d'accès local et rapide aux données fréquemment lues dans une zone spécifique.

Le cache Anywhere offre les avantages suivants :

  • Débit accéléré : mettez automatiquement à l'échelle la capacité et la bande passante du cache pour offrir un débit élevé, dépassant les quotas de bande passante régionaux, avec des latences cohérentes et prévisibles.
  • Coût réduit : évitez les frais de sortie de transfert de données ou les frais de récupération de classe de stockage pour les données mises en cache. Anywhere Cache dimensionne automatiquement le cache et la bande passante disponible pour répondre aux besoins de votre charge de travail.

Hyperdisk ML

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 qui nécessitent un accès en lecture seule à de grands ensembles de données. Hyperdisk ML tire parti de l'évolutivité et de la disponibilité de Colossus pour équilibrer les performances sur le système de fichiers sous-jacent. Hyperdisk ML est particulièrement adapté aux tâches de diffusion par rapport aux autres services de stockage sur Google Cloud , car il peut fournir un débit agrégé exceptionnellement élevé simultanément à de nombreuses VM.

Hyperdisk ML offre les avantages suivants :

  • Évolutivité et diffusion de modèles accélérées : évoluez jusqu'à des milliers de nœuds simultanés et obtenez un débit global élevé, ce qui optimise les temps de chargement et l'utilisation des ressources pour les charges de travail d'inférence avec le mode Kubernetes ReadOnlyMany.
  • Densité de performances élevées : obtenez le débit le plus élevé disponible surGoogle Cloud et des opérations de lecture rapides pour les grands ensembles de données partagés.
  • Coût total de possession (TCO) amélioré : réduisez les coûts grâce à des temps d'inactivité des GPU plus courts, des capacités multi-attachement et un regroupement des performances.
  • Accès simultané en lecture seule : réduisez les coûts en partageant des disques entre les VM. Cette solution est plus rentable que d'avoir plusieurs disques contenant les mêmes données. Pour accéder à des données statiques à partir de plusieurs VM, vous devez associer le même disque en mode lecture seule à des centaines de VM. Pour mettre à jour le volume, le disque doit être dissocié de toutes les VM, sauf une.

Solutions de stockage partenaires

Pour les exigences de charge de travail auxquelles les services de stockage précédents ne répondent pas, vous pouvez utiliser les solutions partenaires suivantes, disponibles dans Cloud Marketplace :

Ces solutions partenaires ne sont pas gérées par Google. Vous devez gérer les tâches de déploiement et opérationnelles pour assurer une intégration et des performances optimales au sein de votre infrastructure.

Analyse comparative

Le tableau suivant présente les principales fonctionnalités des services de stockage dansGoogle Cloud.

Managed Lustre Cloud Storage Hyperdisk ML
Capacité 18 Tio à 8 Pio Pas de limite inférieure ni supérieure. 4 Gio à 64 Tio
Scaling Non évolutif Scaling automatique en fonction de l'utilisation. Effectuer un scaling à la hausse
Partage Peut être installé sur plusieurs VM Compute Engine et clusters GKE.
  • Lecture/écriture où que vous soyez.
  • Intégration avec Cloud CDN et les CDN tiers.
Compatible
Option de clé de chiffrement Google-owned and Google-managed encryption keys
  • Google-owned and Google-managed encryption keys
  • Gérée par le client
  • Fournie par le client
  • Google-owned and Google-managed encryption keys
  • Gérée par le client
  • Fournie par le client
Persistance Durée de vie de l'instance Managed Lustre. Durée de vie du bucket Durée de vie du disque
Disponibilité Zonal Zonal
Performances Scaling linéaire avec la capacité provisionnée Autoscaling des taux de lecture/écriture et redistribution dynamique de la charge Stockage persistant à scaling dynamique
Gestion Entièrement géré, conforme à POSIX Entièrement géré Formater et installer manuellement

Outils de transfert de données

Cette section décrit les options disponibles pour déplacer des données entre différents services de stockage surGoogle Cloud. Lorsque vous effectuez des tâches d'IA et de ML, il peut arriver que vous ayez besoin de déplacer vos données d'un emplacement à un autre. Par exemple, si vos données sont initialement stockées dans Cloud Storage, vous pouvez les déplacer ailleurs pour entraîner le modèle, puis copier les instantanés de point de contrôle ou le modèle entraîné dans Cloud Storage.

Vous pouvez utiliser les méthodes suivantes pour transférer des données vers Google Cloud :

  • Transférez des données en ligne à l'aide du service de transfert de stockage : automatisez le transfert de grandes quantités de données entre les systèmes de stockage d'objets et de fichiers, y compris Cloud Storage, Amazon S3, les services de stockage Azure et des sources de données sur site. Le service de transfert de stockage vous permet de copier vos données de manière sécurisée de l'emplacement source vers l'emplacement cible, et de transférer périodiquement les données modifiées. Il fournit également une validation de l'intégrité des données, des nouvelles tentatives automatiques et un équilibrage de charge.
  • Transférez des données hors connexion à l'aide de Transfer Appliance : transférez et chargez de grandes quantités de données hors connexion vers Google Cloud dans des situations où la connectivité réseau et la bande passante sont indisponibles, limitées ou coûteuses.
  • Importer des données dans Cloud Storage : importez des données en ligne dans des buckets Cloud Storage à l'aide de la console Google Cloud , de gcloud CLI, des API Cloud Storage ou des bibliothèques clientes.

Lorsque vous choisissez une méthode de transfert de données, tenez compte de facteurs tels que la taille des données, les contraintes de temps, la disponibilité de la bande passante, les objectifs de coûts, ainsi que les exigences de sécurité et de conformité. Pour savoir comment planifier et implémenter des transferts de données vers Google Cloud, consultez Migrer vers Google Cloud : transférer vos ensembles de données volumineux.

Choisir le stockage approprié

Les charges de travail d'IA et de ML comprennent généralement quatre étapes principales : préparer, entraîner, diffuser et archiver. Chacune de ces étapes présente des exigences de stockage uniques. Le choix de la bonne solution peut avoir un impact significatif sur les performances, les coûts et l'efficacité opérationnelle. Une approche hybride ou localement optimisée vous permet d'adapter vos choix de stockage aux exigences spécifiques de chaque étape de votre charge de travail d'IA et de ML. Toutefois, si vos priorités sont la gestion unifiée et la facilité d'utilisation, une approche simplifiée à l'échelle mondiale qui utilise une solution cohérente à toutes les étapes peut être bénéfique pour les charges de travail de toutes tailles. L'efficacité de l'option de stockage dépend des propriétés de l'ensemble de données, de l'échelle des ressources de calcul et de stockage requises, de la latence et des exigences de charge de travail que vous avez définies précédemment.

Les sections suivantes fournissent des informations sur les principales étapes des charges de travail d'IA et de ML, ainsi que sur les facteurs qui peuvent influencer votre choix de stockage.

Préparer

L'étape de préparation constitue la base de votre application d'IA et de ML. Il s'agit d'importer des données brutes provenant de diverses sources dans votre environnement cloud et de les transformer en un format utilisable pour entraîner votre modèle d'IA et de ML. Ce processus inclut des tâches telles que le nettoyage, le traitement et la conversion des types de données pour assurer la compatibilité avec le framework d'IA et de ML choisi.

Cloud Storage est parfaitement adapté à l'étape de préparation en raison de son évolutivité, de sa durabilité et de sa rentabilité, en particulier pour les grands ensembles de données courants dans l'IA. Cloud Storage s'intègre parfaitement à d'autres servicesGoogle Cloud , ce qui vous permet de profiter des optimisations potentielles pour l'entraînement intensif en données.

Au cours de la phase de préparation des données, vous pouvez réorganiser vos données en grands fragments pour améliorer l'efficacité d'accès et éviter les requêtes de lecture aléatoires. Pour réduire davantage les exigences de performances d'E/S sur le système de stockage, vous pouvez augmenter le nombre de threads d'E/S en utilisant les pipelines ou l'optimisation d'entraînement (voire les deux).

Train

L'étape d'entraînement est au cœur du développement du modèle. C'est là que votre modèle d'IA et de ML apprend à partir des données fournies. Cette étape implique deux aspects clés qui ont des exigences distinctes : le chargement efficace des données pour accéder aux données d'entraînement et la création de points de contrôle fiables pour enregistrer la progression du modèle. Les sections suivantes fournissent des recommandations et les facteurs à prendre en compte pour choisir les options de stockage appropriées pour le chargement de données et la création de points de contrôle.

Chargement des données…

Lors du chargement des données, les GPU ou les TPU importent des lots de données de manière répétée pour entraîner le modèle. Dans cette phase, vous pouvez utiliser un cache pour optimiser les tâches de chargement de données, en fonction de la taille des lots et de l'ordre dans lequel vous les demandez. Lors du chargement des données, votre objectif est d'entraîner le modèle avec une efficacité maximale, mais au moindre coût.

Si la taille de vos données d'entraînement peut atteindre plusieurs pétaoctets, vous devrez peut-être les relire plusieurs fois. Une telle échelle nécessite un traitement intensif via un accélérateur GPU ou TPU. Cependant, vous devez vous assurer que vos GPU et TPU ne sont pas inactifs, mais qu'ils traitent vos données activement. Sinon, un accélérateur coûteux et inactif vous sera facturé pendant la copie des données d'un emplacement à un autre.

Pour optimiser les performances et les coûts du chargement de données, tenez compte des facteurs suivants :

  • Taille de l'ensemble de données : taille de l'ensemble de données d'entraînement global et taille de chaque ensemble de données d'entraînement.
  • Schémas d'accès : parmi les options suivantes, laquelle décrit le mieux le schéma d'accès aux E/S de votre charge de travail d'entraînement :
    • Accès parallèle et séquentiel : un fichier est attribué à un seul nœud et est lu de manière séquentielle.
    • Accès parallèle et aléatoire : un fichier est attribué à un seul nœud et est lu de manière aléatoire pour créer un lot d'échantillons.
    • Accès entièrement aléatoire : un nœud peut lire n'importe quelle plage de n'importe quel fichier pour créer un lot.
  • Taille du fichier : tailles typiques des requêtes de lecture.
Managed Lustre pour le chargement de données

Vous devez choisir Managed Lustre pour charger vos données si l'une des conditions suivantes s'applique :

  • Vous devez disposer d'une capacité d'entraînement minimale de 18 Tio.
  • Vos données d'entraînement se composent de petits fichiers de moins de 50 Mo pour profiter des capacités de faible latence.
  • Vous avez une exigence de latence inférieure à une milliseconde pour répondre aux exigences de stockage pour l'accès aléatoire aux E/S et aux métadonnées.
  • Vous avez besoin d'une expérience semblable à un ordinateur avec compatibilité POSIX complète pour afficher et gérer les données de vos utilisateurs.

Vous pouvez utiliser Managed Lustre comme cache hautes performances au-dessus de Cloud Storage pour accélérer les charges de travail d'IA et de ML qui nécessitent des opérations d'E/S à très haut débit et à faible latence avec un système de fichiers parallèle entièrement géré. Pour réduire la latence pendant l'entraînement, vous pouvez importer des données dans Managed Lustre depuis Cloud Storage. Si vous utilisez GKE comme plate-forme de calcul, vous pouvez utiliser

Le pilote CSI Lustre géré par GKE permet de préremplir les PersistentVolumeClaims avec des données provenant de Cloud Storage. Une fois l'entraînement terminé, vous pouvez réduire vos dépenses de stockage à long terme en exportant vos données vers une classe Cloud Storage moins coûteuse.

Cloud Storage pour le chargement de données

Vous devez généralement choisir Cloud Storage pour charger vos données si l'une des conditions suivantes s'applique :

  • Vous avez besoin d'une capacité d'entraînement de 100 Tio ou plus.
  • Vos données d'entraînement se composent de fichiers volumineux de 50 Mo ou plus.
  • Vous privilégiez la durabilité et la haute disponibilité des données plutôt que les performances de stockage.

Cloud Storage offre une solution évolutive et économique pour stocker d'énormes ensembles de données, et Cloud Storage FUSE vous permet d'accéder aux données en tant que système de fichiers local. Cloud Storage FUSE accélère l'accès aux données pendant l'entraînement en conservant les données d'entraînement à proximité des accélérateurs de machine, ce qui augmente le débit.

Pour les charges de travail qui nécessitent un débit supérieur à 1 To/s, Anywhere Cache accélère la vitesse de lecture en mettant en cache les données et en allant au-delà des quotas de bande passante régionaux. Pour déterminer si Anywhere Cache est adapté à votre charge de travail, utilisez l'outil de recommandation Anywhere Cache pour analyser votre utilisation des données et votre stockage.

Création de points de contrôle et restauration

Pour la création de points de contrôle et la restauration, les jobs d'entraînement doivent enregistrer régulièrement leur état afin de pouvoir récupérer rapidement en cas de défaillance d'une instance. En cas d'échec, les jobs doivent redémarrer, ingérer le dernier point de contrôle, puis reprendre l'entraînement. Le mécanisme exact utilisé pour créer et ingérer des points de contrôle est généralement spécifique à un framework. Pour en savoir plus sur les points de contrôle et les techniques d'optimisation pour TensorFlow Core, consultez Points de contrôle d'entraînement. Pour en savoir plus sur les points de contrôle et les techniques d'optimisation pour PyTorch, consultez Enregistrer et charger des modèles.

Vous n'avez besoin d'enregistrer que quelques points de contrôle à un moment donné. Les charges de travail de point de contrôle se composent généralement principalement d'écritures, de quelques suppressions et, idéalement, de lectures peu fréquentes en cas d'échec.

Pour optimiser les performances de la création de points de contrôle et de la restauration, tenez compte des facteurs suivants :

  • Taille du modèle : nombre de paramètres dans votre modèle d'IA et de ML. La taille de votre modèle a un impact direct sur la taille de ses fichiers de point de contrôle, qui peut varier de Gio à Tio.
  • Fréquence des points de contrôle : fréquence à laquelle votre modèle enregistre les points de contrôle. Des enregistrements fréquents offrent une meilleure tolérance aux pannes, mais augmentent les coûts de stockage et peuvent avoir un impact sur la vitesse d'entraînement.
  • Temps de récupération du point de contrôle : temps de récupération souhaité pour charger les points de contrôle et reprendre l'entraînement. Pour minimiser le temps de récupération, tenez compte de facteurs tels que la taille du point de contrôle, les performances de stockage et la bande passante du réseau.
Managed Lustre pour la création de points de contrôle

Vous devez choisir Managed Lustre pour la création de points de contrôle si l'une des conditions suivantes s'applique :

  • Votre charge de travail d'entraînement utilise déjà Managed Lustre pour le chargement des données.
  • Vous devez effectuer des points de contrôle hautes performances fréquents.

Pour maximiser l'utilisation des ressources et minimiser le temps d'inactivité de l'accélérateur, utilisez Managed Lustre pour l'entraînement et la création de points de contrôle. Managed Lustre peut effectuer des écritures de points de contrôle rapides qui permettent d'obtenir un débit élevé par VM. Vous pouvez conserver les points de contrôle dans l'instance Lustre gérée persistante ou optimiser les coûts en exportant régulièrement les points de contrôle vers Cloud Storage.

Cloud Storage pour la création de points de contrôle

Vous devez choisir Cloud Storage pour la création de points de contrôle si l'une des conditions suivantes s'applique :

  • Votre charge de travail d'entraînement utilise Cloud Storage FUSE.
  • Vous privilégiez la durabilité et la haute disponibilité des données plutôt que les performances de stockage.

Pour améliorer les performances de la création de points de contrôle, utilisez Cloud Storage FUSE avec les espaces de noms hiérarchiques activés afin de profiter de l'opération de renommage atomique rapide et d'enregistrer les points de contrôle de manière asynchrone. Pour éviter l'exposition accidentelle d'informations sensibles de votre ensemble de données d'entraînement lors de la diffusion, vous devez stocker les points de contrôle dans un bucket Cloud Storage distinct. Pour réduire la latence d'écriture de fin de fichier pour les importations bloquées, Cloud Storage FUSE tente une nouvelle importation après 10 secondes.

Livrer

Lorsque vous diffusez votre modèle (on parle également d'inférence), le modèle d'E/S principal est en lecture seule pour charger le modèle dans la mémoire du GPU ou du TPU. À l'étape de mise en service, votre objectif est d'exécuter votre modèle en production. Le modèle est beaucoup plus petit que les données d'entraînement. Vous pouvez donc le répliquer et le mettre à l'échelle sur plusieurs instances. Lorsque vous diffusez des données, il est important de disposer d'une haute disponibilité et d'une protection contre les défaillances zonales et régionales. Vous devez donc vous assurer que votre modèle est disponible pour divers scénarios de défaillance.

Dans de nombreux cas d'utilisation de l'IA générative et du ML, les données d'entrée dans le modèle peuvent être assez petites et ne pas avoir besoin d'être stockées de manière persistante. Dans d'autres cas, vous devrez peut-être utiliser de grands volumes de données sur le modèle (par exemple, des ensembles de données scientifiques). Pour exécuter de grands volumes de données, choisissez une option de stockage qui peut minimiser le temps d'inactivité des GPU ou des TPU lors de l'analyse de l'ensemble de données, et utilisez un emplacement persistant pour stocker les résultats d'inférence.

Les temps de chargement des modèles affectent directement le temps d'inactivité de l'accélérateur, ce qui entraîne des coûts importants. Une augmentation du temps de chargement du modèle par nœud peut être amplifiée sur de nombreux nœuds, ce qui peut entraîner une augmentation significative des coûts. Par conséquent, pour atteindre la rentabilité dans l'infrastructure de diffusion, il est important d'optimiser le chargement rapide des modèles.

Pour optimiser les performances et les coûts de diffusion, tenez compte des facteurs suivants :

  • Taille du modèle : taille de votre modèle en Gio ou Tio. Les modèles plus volumineux nécessitent plus de ressources de calcul et de mémoire, ce qui peut augmenter la latence.
  • Fréquence de chargement du modèle : fréquence à laquelle vous prévoyez de mettre à jour votre modèle. Les chargements et déchargements fréquents consomment des ressources de calcul et augmentent la latence.
  • Nombre de nœuds de diffusion : nombre de nœuds qui diffuseront votre modèle. Plus il y a de nœuds, plus la latence est réduite et le débit augmenté, mais les coûts d'infrastructure augmentent également.

Managed Lustre pour la diffusion

Vous devez choisir Managed Lustre pour diffuser votre modèle si l'une des conditions suivantes s'applique :

  • Votre charge de travail d'entraînement et de point de contrôle utilise Managed Lustre.
  • Votre charge de travail utilise entre 10 et 100 nœuds d'inférence.
  • Vous mettez fréquemment à jour votre modèle.

Si vous utilisez déjà Managed Lustre pour l'entraînement et la création de points de contrôle, il peut s'agir d'une option économique et performante pour diffuser vos modèles. Managed Lustre offre un débit élevé par VM et un débit de cluster agrégé qui permet de réduire le temps de chargement des modèles. Vous pouvez utiliser Managed Lustre pour n'importe quel nombre de VM de diffusion.

Cloud Storage pour la diffusion

Vous devez choisir Cloud Storage pour diffuser votre modèle si l'une des conditions suivantes s'applique :

  • Vous avez besoin d'une solution économique pour un environnement dynamique où le nombre de nœuds d'inférence peut changer.
  • Vous mettez rarement à jour votre modèle.
  • Vous accordez la priorité à la haute disponibilité et à la durabilité de vos modèles, même en cas de perturbations régionales.

Grâce à une architecture multirégionale ou birégionale, Cloud Storage offre une haute disponibilité et protège votre charge de travail contre les défaillances de zones et régionales. Pour accélérer le chargement des modèles, vous pouvez utiliser Cloud Storage FUSE avec les téléchargements parallèles activés afin que les parties du modèle soient récupérées en parallèle.

Pour diffuser des modèles avec un débit supérieur à 1 To/s ou pour les déploiements dépassant une centaine de nœuds de diffusion, utilisez Anywhere Cache avec un bucket multirégional. Cette combinaison offre un stockage redondant et hautes performances dans plusieurs régions, ainsi que de la flexibilité. Le cache Anywhere élimine également les frais de sortie des données et de récupération de la classe de stockage sur les données mises en cache.

Hyperdisk ML pour le service

Vous devez choisir Hyperdisk ML pour diffuser votre modèle si l'une des conditions suivantes s'applique :

  • Vous avez besoin de plus de 100 nœuds d'inférence.
  • Vous mettez rarement à jour votre modèle.
  • Votre charge de travail utilise un type de VM compatible.
  • Votre pipeline peut gérer des volumes en lecture seule pour stocker des modèles.

Optimisez les performances de diffusion en utilisant Hyperdisk ML comme cache pour vos données Cloud Storage. Hyperdisk ML utilise un pool de performances partagé et un débit provisionné de manière dynamique sur plusieurs VM pour gérer efficacement la diffusion de modèles en lecture seule à n'importe quelle échelle.

Archiver

Le modèle d'E/S de l'étape d'archivage est "écriture unique, lecture rare". Votre objectif est de stocker les différents ensembles de données d'entraînement ainsi que les différentes versions des modèles que vous avez générés. Vous pouvez utiliser ces versions incrémentielles des données et des modèles à des fins de sauvegarde et de reprise après sinistre. Vous devez également stocker ces éléments dans un emplacement durable pendant une longue période. Même si vous n'avez pas particulièrement besoin d'accéder aux données et aux modèles, vous souhaitez que ces éléments soient disponibles lorsque vous en avez besoin.

En raison de sa durabilité extrême, de son évolutivité et de son faible coût, Cloud Storage constitue la meilleure optionGoogle Cloud pour stocker des données d'objets sur une longue période. Selon la fréquence à laquelle vous accédez à l'ensemble de données, au modèle et aux fichiers de sauvegarde, Cloud Storage propose différentes classes de stockage pour l'optimisation des coûts. Vous pouvez sélectionner une classe de stockage en fonction de la fréquence à laquelle vous comptez accéder à vos données archivées :

  • Accès fréquent aux données : stockage standard
  • Accès mensuel aux données : stockage Nearline
  • Accès trimestriel aux données : stockage Coldline
  • Accès annuel aux données : stockage Archive

La gestion du cycle de vie des objets vous permet de créer des règles pour déplacer automatiquement des données vers des classes de stockage à long terme ou pour supprimer des données en fonction de critères spécifiques. Si vous ne savez pas à quelle fréquence vous allez accéder à vos données, vous pouvez utiliser la classe automatique pour déplacer automatiquement les données d'une classe de stockage à une autre, en fonction de vos modèles d'accès.

Étapes suivantes

Pour en savoir plus sur les options de stockage, ainsi que sur les charges de travail d'IA et de ML, consultez les ressources suivantes :

Contributeurs

Auteur : Samantha He | Rédactrice technique

Autres contributeurs :