Utiliser Cloud Storage comme système de fichiers installé

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

  • Les données d'entraînement sont transmises à votre job d'entraînement au lieu d'être téléchargées sur des instances dupliquées, ce qui peut accélérer les jobs de chargement et de configuration des données lorsque le job démarre.
  • 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 fournit 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 ne sont pas des données structurées, telles que des images, du texte et des 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 des fichiers volumineux, tels que des vidéos brutes.
  • Vous utilisez l'entraînement distribué.

Fonctionnement

Les tâches d'entraînement personnalisées 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 à l'emplacement 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 au bucket

Par défaut, un job d'entraînement personnalisé peut accéder à n'importe quel bucket Cloud Storage situé dans le 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é à la tâche. 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 changement de 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 des fichiers (flush()). La fermeture ou le vidage des fichiers entraîne leur transfert dans Cloud Storage, ce qui entraîne des frais.

Consignes d'optimisation des performances

Pour obtenir un débit en lecture optimal lorsque vous utilisez Cloud Storage en tant que système de fichiers, nous vous recommandons de mettre en œuvre les consignes suivantes:

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

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 Différences avec d'autres systèmes de fichiers.

Charger des données dans Cloud Storage

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

Étapes suivantes