Optimiser les charges de travail d'IA et de ML avec Cloud Storage FUSE

Last reviewed 2025-04-09 UTC

Ce document fournit des architectures de référence qui montrent comment utiliser Cloud Storage FUSE pour optimiser les performances des charges de travail d'IA et de ML 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 et de ML sur Google Cloud. Dans ce document, nous partons du principe que vous connaissez le cycle de vie, les processus et les capacités du ML.

Cloud Storage FUSE est un adaptateur FUSE Open Source qui permet d'installer des buckets Cloud Storage en tant que systèmes de fichiers locaux. Cette configuration permet aux applications d'interagir de manière fluide avec les buckets de stockage cloud à l'aide d'une sémantique de système de fichiers standard. Cloud Storage FUSE vous permet de profiter de l'évolutivité et de la rentabilité de Cloud Storage.

Architecture

En fonction de vos exigences en termes de performances, de disponibilité et de reprise après sinistre, vous pouvez choisir l'un des archétypes de déploiement Google Cloudsuivants pour exécuter vos charges de travail d'IA et de ML sur Google Cloud :

  • Régional : vos applications s'exécutent indépendamment dans une seuleGoogle Cloud région. Nous recommandons cet archétype de déploiement pour les applications non critiques, mais qui doivent être robustes face aux pannes zonales.
  • Multirégional : vos applications s'exécutent indépendamment dans au moins deux régions Google Cloud , en mode actif/actif ou actif/passif. Cet archétype de déploiement est idéal pour prendre en charge les scénarios de reprise après sinistre. Nous recommandons cet archétype de déploiement pour les applications critiques qui doivent être résilientes face aux pannes et aux catastrophes régionales. Les déploiements birégionaux ou multirégionaux peuvent réduire la latence et améliorer le débit grâce à la proximité des ressources.

L'archétype de déploiement que vous choisissez détermine les produits et les fonctionnalités dont vous avez besoin pour votre architecture. Google Cloud L'architecture multirégionale utilise le cache Anywhere. Pour déterminer si Anywhere Cache convient à votre charge de travail, utilisez l'outil de recommandation Anywhere Cache pour analyser votre utilisation des données et votre stockage.

Les onglets suivants fournissent des architectures de référence pour les archétypes de déploiement régionaux et multirégionaux :

Régional

Le schéma suivant montre un exemple d'architecture régionale qui utilise Cloud Storage FUSE pour optimiser les performances des workflows d'entraînement et de diffusion de modèles :

Architecture régionale qui utilise Cloud Storage FUSE pour optimiser les charges de travail d'IA et de ML.

Cette architecture comprend les composants suivants :

  • Cluster GKE : GKE gère les nœuds 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 Kubernetes, 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. L'agent de nœud Kubernetes (kubelet), qui n'est pas représenté dans le schéma, communique avec le plan de contrôle. L'agent kubelet est responsable du démarrage et de l'exécution des conteneurs programmés sur les nœuds GKE. Pour en savoir plus sur le planificateur, consultez Orchestration de l'IA/ML sur GKE.
  • Réseau de cloud privé virtuel (VPC) : toutes les ressources Google Cloudde l'architecture utilisent un seul réseau VPC. Selon vos besoins, vous pouvez choisir de créer une architecture utilisant plusieurs réseaux. Pour en savoir plus sur la configuration d'un réseau VPC pour Cloud Storage FUSE, consultez Choisir de créer ou non plusieurs réseaux 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. Pour en savoir plus, consultez Comprendre l'équilibrage de charge GKE.
  • Processeur graphique (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 vos charges de travail d'IA et de ML. Pour savoir comment choisir un type de processeur approprié, consultez Options d'accélérateur plus loin dans ce document.
  • Cloud Storage : Cloud Storage fournit un stockage persistant, évolutif 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 modèles entraînés finaux.
  • Cloud Storage FUSE avec cache de fichiers activé : Cloud Storage FUSE vous permet d'installer un bucket Cloud Storage en tant que système de fichiers local. Le cache de fichiers dans Cloud Storage FUSE est un répertoire sur la machine locale qui stocke les fichiers fréquemment consultés de vos buckets Cloud Storage. Le pilote CSI Cloud Storage FUSE gère l'intégration de Cloud Storage FUSE à l'API Kubernetes pour consommer les buckets Cloud Storage en tant que volumes.

Les sections suivantes décrivent le workflow dans les charges de travail d'entraînement et de diffusion de l'architecture.

Multirégional

Le schéma suivant montre un exemple d'architecture multirégionale qui utilise Cloud Storage FUSE et Anywhere Cache pour optimiser les performances des workflows d'entraînement et de diffusion de modèles :

Architecture multirégionale qui utilise Cloud Storage FUSE pour optimiser les charges de travail d'IA et de ML.

Cette architecture comprend les composants suivants :

  • Cluster GKE : GKE gère les nœuds 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 Kubernetes, y compris le plan de contrôle, les nœuds et tous les composants 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. L'agent de nœud Kubernetes (kubelet), qui n'est pas représenté dans le schéma, communique avec le plan de contrôle. L'agent kubelet est responsable du démarrage et de l'exécution des conteneurs programmés sur les nœuds GKE. Pour en savoir plus sur le planificateur, consultez Orchestration de l'IA/ML sur GKE.
  • Réseau de cloud privé virtuel (VPC) : toutes les ressources Google Cloudde l'architecture utilisent un seul réseau VPC. Selon vos besoins, vous pouvez choisir de créer une architecture utilisant plusieurs réseaux. Pour en savoir plus sur la configuration d'un réseau VPC pour Cloud Storage FUSE, consultez Choisir de créer ou non plusieurs réseaux VPC.
  • Cloud DNS : dans les architectures multirégionales, Cloud DNS dirige le trafic vers les équilibreurs de charge pour garantir des performances et une disponibilité optimales grâce au routage anycast. Les requêtes sont automatiquement redirigées vers le site le plus proche, ce qui réduit la latence et améliore les performances de recherche de noms prioritaires pour vos utilisateurs. Pour en savoir plus sur les principes généraux et les bonnes pratiques, consultez Bonnes pratiques pour Cloud DNS.
  • 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. Pour en savoir plus, consultez Comprendre l'équilibrage de charge GKE.
  • Processeur graphique (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 vos charges de travail d'IA et de ML. Pour savoir comment choisir un type de processeur approprié, consultez Options d'accélérateur plus loin dans ce document.
  • Cloud Storage : Cloud Storage fournit un stockage persistant, évolutif 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 modèles entraînés finaux.
  • Cloud Storage FUSE : Cloud Storage FUSE vous permet d'installer un bucket Cloud Storage en tant que système de fichiers local. Le pilote CSI Cloud Storage FUSE, qui n'est pas représenté dans le schéma, gère l'intégration de Cloud Storage FUSE à l'API Kubernetes pour consommer les buckets Cloud Storage en tant que volumes.
  • Anywhere Cache : Anywhere Cache est une fonctionnalité de Cloud Storage qui fournit jusqu'à 1 PiB de cache zonal en lecture seule basé sur SSD pour les buckets Cloud Storage. Pendant l'entraînement et le service, Anywhere Cache vous aide à atteindre un débit supérieur à 1 To/s en adaptant la capacité et la bande passante du cache.

Les sections suivantes décrivent le workflow dans les charges de travail d'entraînement et de diffusion de l'architecture.

Charge de travail d'entraînement

Dans les architectures précédentes, voici les étapes du flux de données lors de l'formation du modèle :

  1. Charger des données d'entraînement dans Cloud Storage : les données d'entraînement sont importées dans un bucket Cloud Storage avec les espaces de noms hiérarchiques activés. Cloud Storage sert de dépôt central évolutif.
  2. Charger des données d'entraînement et exécuter des jobs d'entraînement dans GKE : le bucket Cloud Storage monté sur vos pods GKE permet à vos applications d'entraînement de charger et d'accéder efficacement aux données d'entraînement à l'aide de l'interface FUSE. Les nœuds GKE exécutent le processus d'entraînement du modèle en utilisant le cache de fichiers monté comme source de données. Vos applications d'entraînement alimentent en continu les données d'entraînement des accélérateurs de machine pour effectuer les calculs complexes nécessaires à l'entraînement du modèle. 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.
  3. Enregistrement et restauration des points de contrôle et des modèles :

    • Enregistrez les points de contrôle ou le modèle : pendant l'entraînement, enregistrez les points de contrôle de manière asynchrone à intervalles réguliers dans un bucket Cloud Storage distinct. Les points de contrôle capturent l'état du modèle en fonction des métriques ou des intervalles que vous définissez.
    • Restaurer des points de contrôle ou un modèle : lorsque votre charge de travail d'entraînement nécessite la restauration d'un point de contrôle ou de données de modèle, vous devez localiser l'élément à restaurer dans Cloud Storage. Vous pouvez utiliser le point de contrôle ou le modèle restauré pour reprendre l'entraînement, affiner les paramètres ou évaluer les performances sur un ensemble de validation.

Charge de travail de diffusion

Dans les architectures précédentes, voici les étapes du flux de données lors de l'diffusion du modèle :

  1. Charger le modèle : une fois l'entraînement terminé, vos pods chargent le modèle entraîné à l'aide de Cloud Storage FUSE avec les téléchargements parallèles activés. Les téléchargements parallèles accélèrent le chargement du modèle en récupérant les parties du modèle en parallèle depuis Cloud Storage. Pour réduire considérablement les temps de chargement des modèles, le processus utilise le répertoire de cache comme tampon de préchargement.
  2. Requête d'inférence : les utilisateurs de l'application envoient des requêtes d'inférence depuis l'application d'IA et de ML via 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.
  3. Envoi de la réponse : les nœuds traitent la requête et génèrent une prédiction. Les conteneurs de diffusion renvoient les réponses via Cloud Load Balancing, puis aux utilisateurs de l'application.

Produits utilisés

Les architectures de référence utilisent les produits Google Cloud suivants :

  • 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.
  • 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é.
  • Cloud Load Balancing : portefeuille d'équilibreurs de charge hautes performances, évolutifs, mondiaux et régionaux.
  • Cloud DNS : service qui fournit un service DNS résilient et à faible latence à partir du réseau mondial de Google.

Cas d'utilisation

Pour les charges de travail d'IA et de ML qui nécessitent une grande capacité de stockage et un accès aux fichiers hautes performances, nous vous recommandons d'utiliser une architecture basée sur Cloud Storage FUSE. Avec une planification appropriée, vous pouvez atteindre un débit de plus de 1 Tbit/s avec ces architectures. De plus, Cloud Storage FUSE vous permet de profiter d'un dépôt de stockage central qui sert de source unique de vérité pour toutes les étapes du workflow d'IA et de ML. Cette approche peut être utilisée pour n'importe quelle charge de travail, quelle que soit son échelle ou sa taille.

Pour ces charges de travail, Cloud Storage FUSE offre les avantages suivants :

  • Accès simplifié aux données : accédez aux données d'entraînement et aux points de contrôle avec des frameworks d'IA et de ML tels que Connector for PyTorch, JAX et TensorFlow. L'accès aux données via des frameworks d'IA et de ML élimine la nécessité de refactoriser le code.
  • Démarrage accéléré : éliminez le besoin de télécharger de grands ensembles de données vers des ressources de calcul en utilisant Cloud Storage FUSE pour accéder directement aux données dans Cloud Storage. Cet accès direct aux données permet de démarrer les jobs plus rapidement.
  • Rentabilité : optimisez les coûts en utilisant l'évolutivité et la rentabilité inhérentes à Cloud Storage.

Cloud Storage FUSE ne convient pas aux charges de travail sensibles à la latence qui contiennent des fichiers de moins de 50 Mo ou qui nécessitent une latence inférieure à 1 milliseconde pour l'accès aléatoire aux E/S et aux métadonnées.

Pour les charges de travail d'entraînement ou de création de points de contrôle et redémarrage qui utilisent beaucoup de données, envisagez une alternative de stockage pendant la phase d'entraînement intensive en E/S.

Alternatives de conception

Les sections suivantes présentent d'autres approches de conception que vous pouvez envisager pour votre application d'IA et de ML dans Google Cloud.

Autre plate-forme

Au lieu d'héberger votre workflow d'entraînement et de diffusion de modèles sur GKE, vous pouvez envisager d'utiliser Compute Engine avec Slurm. Slurm est un gestionnaire de charges de travail et de ressources Open Source hautement configurable. L'utilisation de Compute Engine avec Slurm est particulièrement adaptée à l'entraînement et aux simulations de modèles à grande échelle. Nous vous recommandons d'utiliser Compute Engine avec Slurm si vous devez intégrer une propriété intellectuelle (PI) d'IA et de ML propriétaire dans un environnement évolutif offrant la flexibilité et le contrôle nécessaires pour optimiser les performances des charges de travail spécialisées. Pour en savoir plus sur l'utilisation de Compute Engine avec Slurm, consultez Déployer un cluster HPC avec Slurm.

Sur Compute Engine, vous provisionnez et gérez vos machines virtuelles (VM), ce qui vous permet de contrôler précisément les types d'instances, le stockage et la mise en réseau. Vous pouvez adapter votre infrastructure à vos besoins exacts, y compris en sélectionnant des types de machines de VM spécifiques. Pour savoir comment utiliser les options de ligne de commande Cloud Storage FUSE dans Compute Engine, consultez gcsfuse CLI et Fichier de configuration Cloud Storage FUSE. Vous pouvez également utiliser la famille de machines optimisées pour les accélérateurs afin d'améliorer les performances de vos charges de travail d'IA et de ML. Pour en savoir plus sur les familles de types de machines disponibles sur Compute Engine, consultez le Guide des ressources de familles de machines et guide comparatif.

Slurm offre une option puissante pour gérer les charges de travail d'IA et de ML, et 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.

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 l'informatique scientifique. Google Cloud propose un large choix de GPU adaptés à divers besoins en termes de performances et de budgets. Les GPU incluent souvent des disques SSD locaux dans chaque configuration de machine, qui peuvent être utilisés par Cloud Storage FUSE comme répertoire de cache. 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. Ils 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.

Alternatives de stockage

Cloud Storage FUSE fournit un système de fichiers pratique qui vous permet de profiter de l'évolutivité et de la rentabilité de Cloud Storage. Toutefois, Cloud Storage FUSE n'est pas idéal pour les charges de travail qui exigent une faible latence pour les lectures de petits fichiers ou pour les charges de travail qui nécessitent une solution de stockage entièrement conforme à POSIX. Pour ces cas d'utilisation, nous vous recommandons d'envisager les alternatives de stockage suivantes :

  • Google Cloud Hyperdisk ML : solution de stockage par blocs hautes performances idéale pour les charges de travail qui comportent des clusters à grande échelle de centaines de nœuds avec des ensembles de données en lecture seule plus petits, allant de centaines de Go à 64 To. Hyperdisk ML offre un débit plus élevé que Cloud Storage et peut être associé à plusieurs VM en mode lecture seule. Le mode d'accès ReadOnlyMany Kubernetes permet à Hyperdisk ML d'accélérer le chargement des pondérations de modèle par rapport au chargement directement à partir d'un registre de modèles. Pour en savoir plus sur l'utilisation d'Hyperdisk ML dans les charges de travail d'IA et de ML, consultez Accélérer le chargement des données d'IA/ML avec Hyperdisk ML.
  • Connector for PyTorch : produit Open Source dans Cloud Storage, idéal pour les charges de travail qui utilisent PyTorch. Le connecteur pour PyTorch optimise votre charge de travail d'entraînement en diffusant des données directement depuis vos buckets Cloud Storage et en éliminant le besoin de stockage intermédiaire. Cet accès direct et cette optimisation offrent des performances nettement supérieures à celles des appels d'API directs à Cloud Storage pour le chargement, l'entraînement et la création de points de contrôle des données.

Bien que d'autres options de stockage puissent offrir des avantages en termes de performances pour certaines charges de travail d'IA et de ML, il est essentiel d'évaluer vos besoins en termes de latence, de débit et de capacité de stockage.

Pour une comparaison complète des options de stockage pour les charges de travail d'IA et de ML, consultez Choisir son stockage pour les charges de travail d'IA et de ML dans Google Cloud.

Considérations de conception

Cette section fournit des conseils sur les bonnes pratiques et les considérations de conception pour configurer Cloud Storage FUSE en termes de sécurité, de fiabilité, de coût et de performances. Bien que les recommandations ci-dessous ne soient pas exhaustives, elles abordent les principaux points à prendre en compte pour maximiser les avantages de Cloud Storage FUSE dans votre environnement. En fonction de vos besoins spécifiques et des caractéristiques de votre charge de travail, vous devrez peut-être envisager d'autres options de configuration et compromis.

Les recommandations de conception suivantes mettent en évidence les configurations permettant d'affiner la façon dont vous déployez Cloud Storage FUSE dans GKE. La plupart des options Cloud Storage FUSE sont configurées avec des options d'installation. Pour en savoir plus sur les options de ligne de commande Cloud Storage FUSE et sur leur utilisation, consultez CLI gcsfuse et Optimiser les performances du pilote CSI Cloud Storage FUSE pour GKE.

Sécurité, confidentialité et conformité

Cette section décrit les éléments à prendre en compte pour vos charges de travail d'IA et de ML dans Google Cloud qui répondent à vos exigences de sécurité, de confidentialité et de conformité.

Remarques concernant GKE

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 les ressources suivantes :

Pour garantir 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 s'assurer 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.

Par défaut, vos données dans GKE 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 :

Points à prendre en compte concernant Cloud Storage

Par défaut, les données stockées dans Cloud Storage sont chiffrées à l'aide de Google-owned and Google-managed encryption keys. Si nécessaire, vous pouvez utiliser des clés de chiffrement gérées par le client (CMEK) ou vos propres clés que vous gérez à l'aide d'une méthode de gestion externe, telle que les clés de chiffrement fournies par le client (CSEK). Pour en savoir plus, consultez Options de chiffrement des données.

Cloud Storage propose deux systèmes pour autoriser des utilisateurs à accéder à vos buckets et objets : IAM et les listes de contrôle des accès (LCA). Dans la plupart des cas, nous vous recommandons d'utiliser IAM, qui vous permet d'accorder des autorisations au niveau du bucket et du projet. Pour en savoir plus, consultez la page Présentation du contrôle des accès.

Les données d'entraînement que vous chargez via Cloud Storage peuvent inclure des données sensibles. Pour protéger de telles données, vous pouvez utiliser le service Sensitive Data Protection pour assurer la découverte, le classement et l'anonymisation des données. Pour séparer vos charges de travail d'entraînement et de diffusion, enregistrez votre modèle et vos points de contrôle dans des buckets Cloud Storage distincts. Cette isolation permet d'éviter l'exposition accidentelle d'informations sensibles de votre ensemble de données d'entraînement lors de la diffusion. Pour en savoir plus, consultez Utiliser Sensitive Data Protection avec Cloud Storage.

Si vous avez des exigences de résidence des données, Cloud Storage peut vous aider à les respecter. Les données sont stockées ou répliquées dans les régions que vous spécifiez.

Points à prendre en compte concernant Cloud Storage FUSE

Lorsque vous activez la mise en cache, Cloud Storage FUSE stocke les fichiers persistants de votre bucket Cloud Storage dans un format non chiffré dans le répertoire que vous spécifiez. Cloud Storage expose tous les fichiers à tout utilisateur ou processus ayant accès au répertoire. Pour atténuer ces risques et améliorer la sécurité, la couche de noyau FUSE limite l'accès au système de fichiers à l'utilisateur qui a installé le système. Cette restriction refuse l'accès à d'autres utilisateurs, y compris à l'utilisateur racine, même si les autorisations d'inode sont plus permissives.

Toutefois, il existe des cas d'utilisation où il peut être nécessaire de remplacer les restrictions d'accès par défaut. Par exemple, dans une charge de travail d'entraînement distribuée d'IA et de ML où plusieurs nœuds doivent accéder à des points de contrôle stockés dans Cloud Storage et les partager, vous devrez peut-être autoriser un accès plus large. Dans ce cas, vous pouvez remplacer la restriction par défaut à l'aide de l'option -o allow_other. Toutefois, si vous élargissez l'accès à vos fichiers, vous risquez d'exposer vos données à des utilisateurs non autorisés. Par conséquent, vous devez faire preuve de prudence lorsque vous utilisez cette option.

Par défaut, tous les inodes d'un système de fichiers Cloud Storage FUSE appartiennent à l'utilisateur qui a installé le système de fichiers. Bien que ces valeurs par défaut puissent convenir dans de nombreux cas, vous pouvez personnaliser un contexte de sécurité pour votre pod. Pour savoir comment personnaliser un contexte de sécurité, consultez Sécurité et autorisations.

Fiabilité

Pour garantir un fonctionnement fiable, Cloud Storage FUSE intègre des nouvelles tentatives automatiques pour gérer les éventuelles interruptions et maintenir la cohérence des données. Les requêtes ayant échoué sont automatiquement renouvelées avec un intervalle exponentiel entre les tentatives vers Cloud Storage. L'intervalle exponentiel entre les tentatives augmente progressivement le temps entre les nouvelles tentatives. Ce mécanisme intégré aide votre application à surmonter les problèmes réseau temporaires ou l'indisponibilité temporaire de Cloud Storage.

Bien que Cloud Storage FUSE offre de nombreux avantages, tenez compte des points suivants :

  • Écritures simultanées : lorsque plusieurs utilisateurs tentent de modifier un fichier, l'opération last write wins (la dernière écriture l'emporte) est prioritaire et toutes les opérations d'écriture précédentes sont perdues. Pour préserver l'intégrité des données, nous vous recommandons de ne modifier un objet qu'à partir d'une seule source à la fois.
  • Persistance du cache : lorsque vous démontez ou redémarrez votre bucket, les caches ne persistent pas. Pour éviter tout problème de sécurité potentiel, après avoir démonté ou redémarré votre bucket, il est essentiel de supprimer manuellement le répertoire du cache de fichiers.
  • Processus avec caches dédiés : bien que Cloud Storage FUSE soit compatible avec l'accès simultané pour un traitement parallèle efficace, il est important de se rappeler que les caches sont spécifiques à chaque processus Cloud Storage FUSE. Par conséquent, le même répertoire de cache ne doit pas être utilisé par différents processus Cloud Storage FUSE qui s'exécutent sur la même machine ou sur des machines différentes.

Lorsque vous créez l'architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations générales fournies dans la section Framework Well-Architected : pilier de fiabilité.

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.

Remarques concernant GKE

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é.

Pour optimiser les coûts et les performances grâce à une gestion efficace, utilisez le programmateur de charge de travail dynamique. Le planificateur de charges de travail dynamique est un outil de gestion des ressources et de planification des tâches qui vous aide à améliorer l'accès aux ressources d'IA et de ML. 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, en fin de compte, d'optimiser vos dépenses cloud.

Pour en savoir plus sur les conseils d'optimisation des coûts, consultez Bonnes pratiques pour l'exécution d'applications Kubernetes à coût maîtrisé sur GKE.

Points à prendre en compte concernant Cloud Storage

Vos besoins de stockage pour l'IA et le ML peuvent être dynamiques. Par exemple, vous pouvez avoir besoin d'une capacité de stockage importante pour vos données d'entraînement, mais vos besoins en capacité diminuent pour le service, où vous stockez principalement les données et les points de contrôle du modèle. Pour contrôler les coûts, nous vous recommandons d'activer la gestion du cycle de vie des objets et la classe automatique.

La gestion du cycle de vie des objets vous permet de déplacer automatiquement les données anciennes ou inutilisées vers des classes de stockage moins coûteuses, voire de les supprimer, en fonction des règles que vous définissez.

La fonctionnalité Classe automatique déplace automatiquement les données entre les classes de stockage en fonction de vos modèles d'accès. Cette fonctionnalité vous permet d'obtenir le meilleur équilibre entre performances et coûts.

Points à prendre en compte concernant Cloud Storage FUSE

Les frais Cloud Storage standards s'appliquent au stockage, aux opérations sur les métadonnées et au trafic réseau générés par vos activités FUSE. L'utilisation de Cloud Storage FUSE n'entraîne aucun coût supplémentaire. Pour en savoir plus sur les opérations Cloud Storage FUSE courantes et leur correspondance avec les opérations Cloud Storage, consultez la section Correspondance des opérations.

Pour optimiser les coûts de votre répertoire de cache, vous pouvez utiliser la capacité de machine provisionnée existante, y compris les disques SSD locaux, les disques persistants ou les données en mémoire pour les systèmes de fichiers temporaires. Lorsque vous utilisez la capacité de machine existante, vous pouvez éviter de payer des frais pour des ressources de stockage supplémentaires. De plus, maximiser les succès de cache peut réduire considérablement les coûts Cloud Storage, car les données diffusées localement n'entraînent pas de frais de fonctionnement ni de frais de sortie réseau.

Pour en savoir plus sur les frais, consultez la page Tarifs de Cloud Storage.

Lorsque vous créez l'architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations générales fournies dans le Framework Well-Architected : pilier d'optimisation des coûts.

Optimisation des performances

Cloud Storage FUSE est conçu pour fournir un accès efficace aux données dans Cloud Storage pour vos charges de travail d'IA et de ML. Toutefois, les requêtes de métadonnées fréquentes peuvent réduire les performances, en particulier dans les clusters à grande échelle. Pour en savoir plus sur l'amélioration des performances, consultez Optimiser les performances du pilote CSI Cloud Storage FUSE pour GKE.

Pour optimiser les performances, envisagez les configurations suivantes :

  • Activer les espaces de noms hiérarchiques : pour améliorer l'accès aux données et leur organisation, créez des buckets Cloud Storage avec les espaces de noms hiérarchiques activés. Les espaces de noms hiérarchiques vous permettent d'organiser les données dans une structure de système de fichiers, ce qui améliore les performances, garantit la cohérence et simplifie la gestion des charges de travail d'IA et de ML. Les espaces de noms hiérarchiques permettent d'obtenir un RPS initial plus élevé et de renommer rapidement les répertoires atomiques.
  • Activer la mise en cache des fichiers : la mise en cache des fichiers accélère l'accès répété aux données d'entraînement en utilisant un répertoire de nœuds local pour mettre en cache les fichiers fréquemment lus. La diffusion de lectures répétées à partir d'un cache média réduit la latence et minimise les opérations de retour vers Cloud Storage. Sur les types de machines GPU avec un SSD local, le répertoire SSD local est automatiquement utilisé. Pour les types de machines qui n'incluent pas de SSD local, tels que les TPU, vous pouvez utiliser un répertoire de disque RAM, tel que /tmpfs.

    Pour activer le cache de fichiers, utilisez les options de montage suivantes :

    • Pour définir la valeur du cache de fichiers utilisable sur la limite de capacité du cache, définissez file-cache:max-size-mb: sur -1.
    • Pour définir la durée de vie (TTL) du cache de métadonnées sur une durée illimitée et l'éviction basée sur l'algorithme LRU (Least Recently Used) une fois la capacité maximale atteinte, définissez metadata-cache:ttl-secs: sur -1.
  • Augmenter les valeurs du cache de métadonnées : Cloud Storage FUSE dispose de deux formes de cache de métadonnées qui améliorent les performances des opérations liées aux recherches de métadonnées : le cache de statistiques et le cache de types.

    Pour augmenter les valeurs du cache de métadonnées, définissez les options de montage suivantes :

    • Pour définir la valeur du cache de statistiques utilisable sur la limite de capacité du cache, définissez metadata-cache:stat-cache-max-size-mb: sur -1.
    • Pour définir la valeur du cache de types utilisable sur la limite de capacité, définissez metadata-cache:type-cache-max-size-mb: sur -1.
    • Pour empêcher l'expiration des éléments de métadonnées mis en cache (la valeur par défaut est de 60 secondes), définissez metadata-cache:ttl-secs: sur -1. Les valeurs infinies ne doivent être utilisées que pour les volumes en lecture seule et les nœuds avec de grandes configurations de mémoire.
  • Préremplir le cache de métadonnées : la fonctionnalité de préchargement des métadonnées permet au pilote CSI Cloud Storage FUSE de charger de manière proactive les métadonnées pertinentes sur les objets de votre bucket Cloud Storage dans les caches Cloud Storage FUSE. Cette approche réduit les appels à Cloud Storage et est particulièrement utile pour les applications qui accèdent à de grands ensembles de données comportant de nombreux fichiers, comme les charges de travail d'entraînement d'IA et de ML.

    Pour préremplir le cache des métadonnées, activez le préchargement des métadonnées pour le volume concerné. Définissez l'attribut de volume gcsfuseMetadataPrefetchOnMount sur true.

  • Activer la mise en cache de la liste : cette fonctionnalité optimise les répertoires et les fichiers de fiches. C'est particulièrement utile pour les charges de travail d'entraînement à l'IA et au ML, qui impliquent souvent d'accéder à des répertoires entiers et de les lister à plusieurs reprises. La mise en cache des listes permet des processus d'entraînement très efficaces en réduisant la nécessité d'accéder à plusieurs reprises aux listes de répertoires dans la mémoire de votre ordinateur.

    Pour activer la mise en cache des listes et empêcher l'expiration des éléments du cache de liste du noyau, définissez l'option de montage file-system:kernel-list-cache-ttl-secs: sur -1.

  • Activer les téléchargements parallèles : les téléchargements parallèles accélèrent le chargement initial du modèle en récupérant plusieurs blocs simultanément. L'activation des téléchargements parallèles permet d'accélérer le chargement des modèles et d'améliorer la réactivité lors de la diffusion.

    Pour activer les téléchargements parallèles, activez le cache de fichiers et définissez l'option de montage file-cache:enable-parallel-downloads: sur true.

  • Augmentez les limites du side-car GKE : pour éviter que les contraintes de ressources n'entravent les performances, configurez des limites sur les ressources du conteneur side-car, comme la consommation de processeur et de mémoire. Si vous utilisez un cache SSD local, envisagez de définir ephemeral-storage-limit sur "unlimited" (illimité). Ce paramètre permet à Cloud Storage FUSE d'utiliser pleinement le stockage SSD local disponible pour améliorer la mise en cache.

  • Montage en lecture seule : étant donné que les charges de travail d'entraînement n'ont généralement besoin que de lire des données, configurez le point de montage en lecture seule pour des performances optimales, en particulier lorsque vous utilisez la mise en cache de fichiers. Cette configuration permet également de maximiser les avantages des optimisations dans les clusters à grande échelle et d'éviter d'éventuelles incohérences de données.

Lorsque vous créez l'architecture pour votre charge de travail, tenez compte des bonnes pratiques et des recommandations générales fournies dans le Framework Well-Architected : pilier de l'optimisation des performances.

Étapes suivantes

Contributeurs

Auteur : Samantha He | Rédactrice technique

Autres contributeurs :