Configurations basées sur des profils pour les charges de travail d'IA/ML

Ce document explique comment utiliser des configurations basées sur des profils pour simplifier l'adoption et améliorer les performances de Cloud Storage FUSE pour vos charges de travail d'intelligence artificielle ou de machine learning (IA/ML).

Pour vous aider à simplifier la configuration de Cloud Storage FUSE pour vos charges de travail de diffusion, de création de points de contrôle ou d'entraînement, vous pouvez appliquer des profils préconfigurés en fonction de votre type de charge de travail à l'aide du champ profile ou de l'option --profile. À l'aide du champ ou de l'option, vous pouvez spécifier un ensemble prédéfini et optimisé de fonctionnalités Cloud Storage FUSE pour la mise en cache, le multithreading et les tailles de mémoire tampon. Vous garantissez ainsi des performances élevées avec un minimum d'efforts pour les charges de travail d'entraînement, de création de points de contrôle et de diffusion, avec les valeurs de profil aiml-training, aiml-checkpointing et aiml-serving, respectivement.

Remarques

  • Vous ne pouvez définir l'option --profile ou le champ profile que lors d'une opération de montage. Si vous devez mettre à jour l'option --profile ou le champ profile, vous devez remonter votre bucket Cloud Storage FUSE.

  • Lorsque vous utilisez des configurations basées sur des profils, Cloud Storage FUSE définit la capacité et la valeur TTL (Time To Live) du cache de métadonnées sur "illimité", ce qui signifie que les entrées ne sont jamais supprimées du cache de métadonnées. Si votre machine virtuelle ne dispose pas de suffisamment de mémoire, vous pouvez rencontrer des erreurs de mémoire insuffisante (OOM). Par conséquent, nous vous recommandons de vérifier votre capacité de mémoire avant d'appliquer des configurations basées sur des profils. Les erreurs de mémoire insuffisante sont plus susceptibles de se produire sur les machines disposant de moins d'un tébioctet de mémoire.

  • Lorsque vous spécifiez des valeurs de configuration à l'aide de profils, de types de machines hautes performances détectés, d'une commande gcsfuse ou d'un fichier de configuration Cloud Storage FUSE, les méthodes sont prioritaires dans l'ordre suivant (où les méthodes en haut de la liste remplacent celles en dessous) :

    1. Valeurs définies dans une commande gcsfuse ou dans un fichier de configuration Cloud Storage FUSE.

    2. Valeurs définies comme argument de l'option --profiles dans une commande gcsfuse ou du champ profile dans un fichier de configuration Cloud Storage FUSE.

    3. Valeurs de configuration automatisées définies lorsque Cloud Storage FUSE détecte qu'un type de machine à hautes performances est utilisé. Pour en savoir plus, consultez Valeurs de configuration automatisées.

  • Les volumes CSI FUSE Cloud Storage dans les pods Google Kubernetes Engine ne sont pas compatibles avec le champ profile ni l'option --profile.

  • La mise en cache de fichiers ne peut pas être activée à l'aide de configurations basées sur des profils, car elle nécessite l'utilisation de champs de configuration Cloud Storage FUSE et d'options de l'interface de ligne de commande Cloud Storage FUSE qui ne peuvent pas être généralisés. Pour activer la mise en cache des fichiers pour les charges de travail de diffusion, d'entraînement ou de checkpointing, vous devez configurer explicitement les options ou les champs de mise en cache des fichiers.

Appliquer des configurations basées sur des profils pour les charges de travail d'entraînement

Le profil spécifique à l'entraînement optimise les performances pour les lectures à haut débit de grands ensembles de données et empêche le matériel Cloud GPU et Cloud TPU d'attendre les données.

Pour appliquer le profil spécifique à l'entraînement, spécifiez profile=aiml-training à l'aide d'un fichier de configuration Cloud Storage FUSE ou --profile=aiml-training à l'aide de la CLI Cloud Storage FUSE. Les configurations suivantes sont ensuite appliquées :

   # Create implicit directories locally when accessed:
   - implicit-dirs
   # Disable caching for lookups of files or directories that don't exist:
   - metadata-cache:negative-ttl-secs:0
   # Keep cached metadata (file attributes, types) indefinitely time-wise:
   - metadata-cache:ttl-secs:-1
   # Allow unlimited size for the file attribute (stat) cache:
   - metadata-cache:stat-cache-max-size-mb:-1
   # Allow unlimited size for the file/directory type cache:
   - metadata-cache:type-cache-max-size-mb:-1

Appliquer des configurations basées sur des profils pour les charges de travail de point de contrôle

Le profil spécifique à la gestion des points de contrôle optimise les performances pour les écritures à haut débit pour les fichiers volumineux en réduisant considérablement le temps nécessaire pour enregistrer les points de contrôle de plusieurs gigaoctets, ce qui minimise les pauses d'entraînement.

Pour appliquer le profil spécifique à l'entraînement, spécifiez profile=aiml-checkpointing à l'aide d'un fichier de configuration Cloud Storage FUSE ou --profile=aiml-checkpointing à l'aide de la CLI Cloud Storage FUSE. Les configurations suivantes sont ensuite appliquées :

  # Create implicit directories locally when accessed:
  - implicit-dirs
  # Disable caching for lookups of files/dirs that don't exist:
  - metadata-cache:negative-ttl-secs:0
  # Keep cached metadata (file attributes, types) indefinitely time-wise:
  - metadata-cache:ttl-secs:-1
  # Allow unlimited size for the file attribute (stat) cache:
  - metadata-cache:stat-cache-max-size-mb:-1
  # Allow unlimited size for the file/directory type cache:
  - metadata-cache:type-cache-max-size-mb:-1
  # Cache the entire file when any part is read sequentially:
  - file-cache:cache-file-for-range-read:true
  # Allow renaming directories with a lot of files in non-HNS buckets.
  - file-system:rename-dir-limit:200000

Appliquer des configurations basées sur des profils pour diffuser des charges de travail

La diffusion optimise les performances des charges de travail de diffusion en améliorant l'accès aux données et les mécanismes de mise en cache.

Pour appliquer le profil spécifique à l'entraînement, spécifiez profile=aiml-serving à l'aide d'un fichier de configuration Cloud Storage FUSE ou --profile=aiml-serving à l'aide de la CLI Cloud Storage FUSE. Les configurations suivantes sont ensuite appliquées :

  # Create implicit directories locally when accessed:
  - implicit-dirs
  # Disable caching for lookups of files/dirs that don't exist:
  - metadata-cache:negative-ttl-secs:0
  # Keep cached metadata (file attributes, types) indefinitely time-wise:
  - metadata-cache:ttl-secs:-1
  # Allow unlimited size for the file attribute (stat) cache:
  - metadata-cache:stat-cache-max-size-mb:-1
  # Allow unlimited size for the file/directory type cache:
  - metadata-cache:type-cache-max-size-mb:-1
  # Cache the entire file when any part is read sequentially:
  - file-cache:cache-file-for-range-read:true
  # Enable kernel-list-cache to make listing faster as this is a readonly file system hierarchy.
  - file-system:kernel-list-cache-ttl-secs:-1

Étapes suivantes