Configurações baseadas em perfil para cargas de trabalho de IA/ML

Este documento descreve como usar configurações baseadas em perfil para simplificar a adoção e melhorar o desempenho do Cloud Storage FUSE para suas cargas de trabalho de inteligência artificial ou aprendizado de máquina (IA/ML).

Para ajudar a simplificar a configuração do Cloud Storage FUSE para suas cargas de trabalho de serviço, checkpoint ou treinamento, aplique perfis pré-configurados com base no tipo de carga de trabalho usando o campo profile ou a opção --profile. Usando o campo ou a opção, é possível especificar um conjunto predefinido e otimizado de recursos do Cloud Storage FUSE para tamanhos de cache, threading e buffer, garantindo alto desempenho com o mínimo de esforço para treinamento, checkpointing e veiculação de cargas de trabalho, com valores de perfil aiml-training, aiml-checkpointing e aiml-serving, respectivamente.

Considerações

  • Só é possível definir a opção --profile ou o campo profile durante uma operação de montagem. Se você precisar atualizar a opção --profile ou o campo profile, será necessário remontar o bucket do Cloud Storage FUSE.

  • Quando você usa configurações baseadas em perfil, o Cloud Storage FUSE define a capacidade do cache de metadados e time to live (TTL) como ilimitados, o que significa que as entradas nunca são removidas do cache de metadados. Se a máquina virtual não tiver memória suficiente, você poderá ter erros de falta de memória (OOM). Portanto, recomendamos revisar a capacidade de memória antes de aplicar configurações baseadas em perfil. É mais provável que erros de falta de memória ocorram em máquinas com menos de um TiB de memória.

  • Ao especificar valores de configuração usando perfis, tipos de máquinas de alta performance detectados, um comando gcsfuse ou um arquivo de configuração do Cloud Storage FUSE, os métodos têm precedência na seguinte ordem (em que os métodos principais substituem os métodos abaixo):

    1. Valores definidos como parte de um comando gcsfuse ou um arquivo de configuração do Cloud Storage FUSE.

    2. Valores definidos como argumento para a opção --profiles em um comando gcsfuse ou o campo profile em um arquivo de configuração do Cloud Storage FUSE.

    3. Valores de configuração automatizados definidos quando o Cloud Storage FUSE detecta que um tipo de máquina de alta performance está sendo usado. Para mais informações, consulte Valores de configuração automatizados.

  • Os volumes do FUSE CSI do Cloud Storage em pods do Google Kubernetes Engine não são compatíveis com o campo profile ou a opção --profile.

  • Não é possível ativar o armazenamento em cache de arquivos usando configurações baseadas em perfil porque ele exige o uso de campos de configuração do Cloud Storage FUSE e opções da CLI do Cloud Storage FUSE que não podem ser generalizadas. Para ativar o armazenamento em cache de arquivos para veiculação, treinamento ou cargas de trabalho de checkpoint, configure opções ou campos de armazenamento em cache de arquivos explicitamente.

Aplicar configurações baseadas em perfil para cargas de trabalho de treinamento

O perfil específico de treinamento otimiza a performance para leituras de alto rendimento de grandes conjuntos de dados e impede que as GPUs e o hardware Cloud TPU esperem por dados.

Para aplicar o perfil específico do treinamento, especifique profile=aiml-training usando um arquivo de configuração do Cloud Storage FUSE ou --profile=aiml-training usando a CLI do Cloud Storage FUSE. As seguintes configurações são aplicadas:

   # 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 configurações baseadas em perfil para cargas de trabalho de checkpoint

O perfil específico de checkpointing otimiza o desempenho para gravações de alto throughput de arquivos grandes, reduzindo drasticamente o tempo necessário para salvar checkpoints de vários gigabytes e minimizando as pausas no treinamento.

Para aplicar o perfil específico do treinamento, especifique profile=aiml-checkpointing usando um arquivo de configuração do Cloud Storage FUSE ou --profile=aiml-checkpointing usando a CLI do Cloud Storage FUSE. As seguintes configurações são aplicadas:

  # 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 configurações baseadas em perfil para veicular cargas de trabalho

A disponibilização otimiza a performance para veicular cargas de trabalho ao melhorar o acesso a dados e os mecanismos de cache.

Para aplicar o perfil específico do treinamento, especifique profile=aiml-serving usando um arquivo de configuração do Cloud Storage FUSE ou --profile=aiml-serving usando a CLI do Cloud Storage FUSE. As seguintes configurações são aplicadas:

  # 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

A seguir