Utiliser Cloud Storage comme système de fichiers installé

Cloud Storage FUSE vous permet de charger des données d'entraînement dans un bucket Cloud Storage et d'y accéder à partir de votre job d'entraînement personnalisé comme un système de fichiers installé. L'utilisation de Cloud Storage FUSE présente les avantages suivants :

  • Les données d'entraînement sont transmises en streaming à votre job d'entraînement au lieu d'être téléchargées sur des instances répliquées, ce qui peut accélérer le chargement des données et les tâches de configuration lorsque le job commence à s'exécuter.
  • Les tâches d'entraînement peuvent gérer les entrées et les sorties à grande échelle sans passer d'appels d'API, ni gérer les réponses, et sans gérer l'intégration avec les bibliothèques côté client.
  • Cloud Storage FUSE offre un débit élevé pour les lectures séquentielles de fichiers volumineux et dans les scénarios d'entraînement distribué.

Cas d'utilisation

Nous vous recommandons d'utiliser Cloud Storage pour stocker les données d'entraînement dans les situations suivantes :

  • Vos données d'entraînement sont des données non structurées, telles que les images, les textes et les vidéos.
  • Vos données d'entraînement sont des données structurées dans un format tel que TFRecord.
  • Vos données d'entraînement contiennent de gros fichiers, tels que des vidéos brutes.
  • Vous utilisez l'entraînement distribué.

Fonctionnement

Les jobs d'entraînement personnalisé peuvent accéder à vos buckets Cloud Storage en tant que sous-répertoires du répertoire racine /gcs. Par exemple, si vos données d'entraînement se trouvent dans gs://example-bucket/data.csv, vous pouvez lire et écrire dans le bucket à partir de votre application d'entraînement Python comme suit :

Lire dans le bucket

with open('/gcs/example-bucket/data.csv', 'r') as f:
  lines = f.readlines()

Écrire dans le bucket

with open('/gcs/example-bucket/epoch3.log', 'a') as f:
  f.write('success!\n')

Autorisations d'accès aux buckets

Par défaut, une tâche d'entraînement personnalisé peut accéder à n'importe quel bucket Cloud Storage du même projet Google Cloud à l'aide de l'agent de service de code personnalisé Vertex AI. Pour contrôler l'accès aux buckets, vous pouvez attribuer un compte de service personnalisé au job. Dans ce cas, l'accès à un bucket Cloud Storage est accordé en fonction des autorisations associées aux rôles Cloud Storage du compte de service personnalisé.

Par exemple, si vous souhaitez accorder au job d'entraînement personnalisé un accès en lecture et en écriture au bucket A, mais seulement un accès en lecture au bucket B, vous pouvez attribuer un compte de service personnalisé disposant des rôles suivants au job :

  • roles/storage.objectAdmin pour le bucket A
  • roles/storage.objectViewer pour le bucket B

Si le job d'entraînement tente d'écrire dans le bucket B, une erreur "autorisation refusée" est renvoyée.

Pour en savoir plus sur les rôles Cloud Storage, consultez la page Rôles IAM pour Cloud Storage.

Bonnes pratiques

  • Évitez de renommer des répertoires. Une opération de modification du nom n'est pas atomique dans Cloud Storage FUSE. Si l'opération est interrompue, certains fichiers restent dans l'ancien répertoire.
  • Évitez de fermer inutilement (close()) ou de vider les fichiers (flush()). La fermeture ou le vidage des fichiers entraîne le transfert du fichier vers Cloud Storage, ce qui génère des frais.

Consignes d'optimisation des performances

Pour obtenir un débit de lecture optimal lorsque vous utilisez Cloud Storage comme système de fichiers, nous vous recommandons de suivre ces consignes :

  • Pour réduire la latence introduite par la recherche et l'ouverture d'objets dans un bucket, stockez les données dans des fichiers plus volumineux et moins nombreux.
  • Utilisez l'entraînement en parallèle pour optimiser l'utilisation de la bande passante.
  • Mettez en cache les fichiers fréquemment consultés pour améliorer les performances de lecture. Pour en savoir plus, consultez la présentation de la mise en cache dans Cloud Storage FUSE.
  • Utilisez le stockage local pour le point de contrôle et les journaux au lieu de Cloud Storage.

Limites

Pour en savoir plus sur les limites de Cloud Storage FUSE, y compris sur les différences entre les systèmes de fichiers Cloud Storage FUSE et POSIX, consultez la section Limites et différences avec les systèmes de fichiers POSIX.

Utiliser Cloud Storage FUSE

Pour utiliser Cloud Storage FUSE pour l'entraînement personnalisé, procédez comme suit :

  1. Créez un bucket Cloud Storage.
  2. Importez vos données d'entraînement dans le bucket. Pour en savoir plus, consultez la section Importations.

    Pour en savoir plus sur les options de transfert de données vers Cloud Storage, consultez la section Options de transfert de données.

  3. Installez Cloud Storage FUSE.

  4. Installez le bucket dans votre application d'entraînement.

Étape suivante