Configuraciones basadas en perfiles para cargas de trabajo de IA y aprendizaje automático

En este documento se describe cómo puedes usar configuraciones basadas en perfiles para agilizar la adopción y mejorar el rendimiento de Cloud Storage FUSE en tus cargas de trabajo de inteligencia artificial o aprendizaje automático (IA/ML).

Para simplificar la configuración de Cloud Storage FUSE para tus cargas de trabajo de servicio, de creación de puntos de control o de entrenamiento, puedes aplicar perfiles preconfigurados en función del tipo de carga de trabajo mediante el campo profile o la opción --profile. Con este campo u opción, puedes especificar un conjunto predefinido y optimizado de funciones de Cloud Storage FUSE para el almacenamiento en caché, el multihilo y los tamaños de búfer, lo que garantiza un alto rendimiento con el mínimo esfuerzo para las cargas de trabajo de entrenamiento, creación de puntos de control y servicio, con los valores de perfil aiml-training, aiml-checkpointing y aiml-serving, respectivamente.

Cuestiones importantes

  • Solo puedes definir la opción --profile o el campo profile durante una operación de montaje. Si necesitas actualizar la opción --profile o el campo profile, debes volver a montar tu segmento de Cloud Storage FUSE.

  • Cuando usas configuraciones basadas en perfiles, Cloud Storage FUSE asigna a la capacidad de la caché de metadatos y al tiempo de vida (TTL) el valor ilimitado, lo que significa que las entradas nunca se eliminan de la caché de metadatos. Si tu máquina virtual no tiene suficiente memoria, es posible que se produzcan errores de falta de memoria (OOM). Por lo tanto, te recomendamos que revises la capacidad de memoria antes de aplicar configuraciones basadas en perfiles. Es más probable que se produzcan errores de falta de memoria en máquinas con menos de un TiB de memoria.

  • Cuando un parámetro de Cloud Storage FUSE se configura de varias formas, se aplica el siguiente orden de prioridad (de mayor a menor):

    1. Valores definidos directamente en un comando gcsfuse o en un archivo de configuración de Cloud Storage FUSE.
    2. Valores definidos por un perfil, donde el perfil se especifica mediante la opción --profile en un comando gcsfuse o el campo profile en un archivo de configuración de Cloud Storage FUSE.
    3. Valores predeterminados que se aplican automáticamente cuando Cloud Storage FUSE detecta un tipo de máquina de alto rendimiento. Para obtener más información, consulta Valores de configuración automatizados para tipos de máquinas de alto rendimiento.
  • Los volúmenes de Cloud Storage FUSE CSI en los pods de Google Kubernetes Engine no admiten el campo profile ni la opción --profile.

  • No se puede habilitar el almacenamiento en caché de archivos con configuraciones basadas en perfiles porque requiere el uso de campos de configuración de Cloud Storage FUSE y opciones de la CLI de Cloud Storage FUSE que no se pueden generalizar. Para habilitar el almacenamiento en caché de archivos para servir, entrenar o crear puntos de control de cargas de trabajo, debes configurar explícitamente las opciones o los campos de almacenamiento en caché de archivos.

Aplicar configuraciones basadas en perfiles a cargas de trabajo de entrenamiento

El perfil específico de entrenamiento optimiza el rendimiento para lecturas de alto rendimiento de conjuntos de datos grandes e impide que el hardware de las GPUs y las TPUs de Cloud espere datos.

Para aplicar el perfil específico del entrenamiento, especifica profile: aiml-training mediante un archivo de configuración de Cloud Storage FUSE o --profile=aiml-training mediante la CLI de Cloud Storage FUSE. A continuación, se aplican las siguientes configuraciones:

   # 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

Aplicar configuraciones basadas en perfiles a cargas de trabajo de creación de puntos de control

El perfil específico de creación de puntos de control optimiza el rendimiento de las escrituras de alto rendimiento en archivos grandes, ya que reduce drásticamente el tiempo necesario para guardar puntos de control de varios gigabytes, lo que minimiza las pausas del entrenamiento.

Para aplicar el perfil específico de creación de puntos de control, especifica profile: aiml-checkpointing mediante un archivo de configuración de Cloud Storage FUSE o --profile=aiml-checkpointing mediante la CLI de Cloud Storage FUSE. A continuación, se aplican las siguientes configuraciones:

  # 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

Aplicar configuraciones basadas en perfiles para publicar cargas de trabajo

Serving optimiza el rendimiento de las cargas de trabajo de servicio mejorando el acceso a los datos y los mecanismos de almacenamiento en caché.

Para aplicar el perfil específico de servicio, especifica profile: aiml-serving mediante un archivo de configuración de Cloud Storage FUSE o --profile=aiml-serving mediante la CLI de Cloud Storage FUSE. A continuación, se aplican las siguientes configuraciones:

  # 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

Siguientes pasos