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 cargas de trabalho de inteligência artificial ou machine learning (IA/ML).

Para ajudar a simplificar a configuração do Cloud Storage FUSE para cargas de trabalho de disponibilizaçã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 armazenamento em cache, linhas de execução e tamanhos de buffer, garantindo alto desempenho com o mínimo de esforço para cargas de trabalho de treinamento, checkpoint e disponibilização, 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.

  • Ao usar configurações baseadas em perfil, o Cloud Storage FUSE define a capacidade e time to live (TTL) do cache de metadados 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á receber erros de falta de memória (OOM, na sigla em inglês). Portanto, recomendamos revisar a capacidade de memória antes de aplicar configurações baseadas em perfil. É mais provável que erros de OOM ocorram em máquinas com menos de um TiB de memória.

  • Quando um parâmetro do Cloud Storage FUSE é configurado de várias maneiras, a seguinte ordem de precedência é aplicada (da mais alta para a mais baixa):

    1. Valores definidos diretamente em um comando gcsfuse ou em um arquivo de configuração do Cloud Storage FUSE.
    2. Valores definidos por um perfil, em que o perfil é especificado usando a --profile opção em um gcsfuse comando ou o profile campo em um arquivo de configuração do Cloud Storage FUSE.
    3. Valores padrão aplicados automaticamente quando o Cloud Storage FUSE detecta um tipo de máquina de alta performance. Para mais informações, consulte Valores de configuração automatizados para tipos de máquinas de alta performance.
  • Os volumes do Cloud Storage FUSE CSI em pods do Google Kubernetes Engine não oferecem suporte ao campo profile ou à opção --profile.

  • O armazenamento em cache de arquivos não pode ser ativado 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 cargas de trabalho de disponibilização, treinamento ou checkpoint, é necessário configurar as 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 alta capacidade de grandes conjuntos de dados e impede que as GPUs e o hardware da Cloud TPU aguardem dados.

Para aplicar o perfil específico de 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 configurações a seguir 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

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

O perfil específico de checkpoint otimiza a performance para gravações de alta capacidade de arquivos grandes, reduzindo drasticamente o tempo necessário para salvar checkpoints de vários gigabytes, minimizando as pausas de treinamento.

Para aplicar o perfil específico de checkpoint, 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 configurações a seguir 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
  # 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 cargas de trabalho de disponibilização

A disponibilização otimiza o desempenho para cargas de trabalho de disponibilização, melhorando o acesso aos dados e os mecanismos de armazenamento em cache.

Para aplicar o perfil específico de disponibilização, 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 configurações a seguir 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
  # 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