Configuraciones basadas en perfiles para cargas de trabajo de IA/AA

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

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

Consideraciones

  • Solo puedes configurar 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 bucket de Cloud Storage FUSE.

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

  • Cuando se especifican valores de configuración con perfiles, tipos de máquinas de alto rendimiento detectados, un comando gcsfuse o un archivo de configuración de Cloud Storage FUSE, los métodos tienen prioridad en el siguiente orden (en el que los métodos superiores reemplazan a los que se encuentran debajo):

    1. Valores establecidos como parte de un comando gcsfuse o un archivo de configuración de Cloud Storage FUSE.

    2. Valores establecidos como argumento para la opción --profiles en un comando gcsfuse o el campo profile en un archivo de configuración de Cloud Storage FUSE.

    3. Valores de configuración automatizados que se establecen cuando Cloud Storage FUSE detecta que se está usando un tipo de máquina de alto rendimiento. Para obtener más información, consulta Valores de configuración automatizados.

  • Los volúmenes del CSI de Cloud Storage FUSE en los Pods de Google Kubernetes Engine no admiten el campo profile ni la opción --profile.

  • El almacenamiento en caché de archivos no se puede habilitar con configuraciones basadas en perfiles, ya que 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 cargas de trabajo de servicio, entrenamiento o puntos de control, debes configurar las opciones o los campos de almacenamiento en caché de archivos de forma explícita.

Aplica parámetros de configuración basados en el perfil para las cargas de trabajo de entrenamiento

El perfil específico para el entrenamiento optimiza el rendimiento para las lecturas de alta capacidad de procesamiento de conjuntos de datos grandes y evita que el hardware de las GPU de Cloud y Cloud TPU espere datos.

Para aplicar el perfil específico del entrenamiento, especifica profile=aiml-training con un archivo de configuración de Cloud Storage FUSE o --profile=aiml-training con la CLI de Cloud Storage FUSE. Luego, se aplican los siguientes parámetros de configuración:

   # 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

Aplica la configuración basada en el perfil para las cargas de trabajo de creación de puntos de control

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

Para aplicar el perfil específico del entrenamiento, especifica profile=aiml-checkpointing con un archivo de configuración de Cloud Storage FUSE o --profile=aiml-checkpointing con la CLI de Cloud Storage FUSE. Luego, se aplican los siguientes parámetros de configuración:

  # 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

Aplica la configuración basada en perfiles para las cargas de trabajo de entrega

La entrega optimiza el rendimiento para las cargas de trabajo de entrega mejorando los mecanismos de acceso a los datos y de almacenamiento en caché.

Para aplicar el perfil específico del entrenamiento, especifica profile=aiml-serving con un archivo de configuración de Cloud Storage FUSE o --profile=aiml-serving con la CLI de Cloud Storage FUSE. Luego, se aplican los siguientes parámetros de configuración:

  # 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

¿Qué sigue?