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

Este documento descreve como pode usar configurações baseadas em perfis para simplificar a adoção e melhorar o desempenho do Cloud Storage FUSE para as suas cargas de trabalho de inteligência artificial ou aprendizagem automática (IA/AA).

Para ajudar a simplificar a configuração do FUSE do Cloud Storage para as suas cargas de trabalho de publicação, criação de pontos de verificação ou preparação, pode aplicar perfis pré-configurados com base no tipo de carga de trabalho através do campo profile ou da opção --profile. Ao usar o campo ou a opção, pode especificar um conjunto predefinido e otimizado de funcionalidades do FUSE do Cloud Storage para tamanhos de colocação em cache, processamento simultâneo e buffer, garantindo um elevado desempenho com o mínimo de esforço para cargas de trabalho de preparação, criação de pontos de verificação e publicação, com os valores de perfil aiml-training, aiml-checkpointing e aiml-serving, respetivamente.

Considerações

  • Só pode definir a opção --profile ou o campo profile durante uma operação de montagem. Se precisar de atualizar a opção --profile ou o campo profile, tem de remontar o contentor do FUSE do Cloud Storage.

  • Quando usa configurações baseadas no perfil, o FUSE do Cloud Storage define a capacidade da cache de metadados e o tempo de vida (TTL) como ilimitados, o que significa que as entradas nunca são removidas da cache de metadados. Se a sua máquina virtual não tiver memória suficiente, pode ter erros de falta de memória (OOM). Por isso, recomendamos que reveja a capacidade de memória antes de aplicar configurações baseadas no perfil. É mais provável que ocorram erros de OOM em máquinas com menos de 1 TiB de memória.

  • Quando especifica valores de configuração através de perfis, tipos de máquinas de alto desempenho detetados, um comando gcsfuse ou um ficheiro de configuração do FUSE do Cloud Storage, os métodos têm precedência pela seguinte ordem (em que os métodos superiores substituem os métodos abaixo):

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

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

    3. Valores de configuração automatizados definidos quando o Cloud Storage FUSE deteta que está a ser usado um tipo de máquina de alto desempenho. Para mais informações, consulte o artigo Valores de configuração automáticos.

  • Os volumes CSI FUSE do Cloud Storage em pods do Google Kubernetes Engine não suportam o campo profile nem a opção --profile.

  • Não é possível ativar a colocação em cache de ficheiros através de configurações baseadas em perfis porque a colocação em cache de ficheiros requer a utilização de campos de configuração do FUSE do Cloud Storage e opções da CLI do FUSE do Cloud Storage que não podem ser generalizadas. Para ativar a colocação em cache de ficheiros para tarefas de publicação, preparação ou criação de pontos de verificação, tem de configurar as opções ou os campos de colocação em cache de ficheiros explicitamente.

Aplique configurações baseadas em perfis para cargas de trabalho de preparação

O perfil específico de preparação otimiza o desempenho para leituras de elevado débito de grandes conjuntos de dados e impede que o hardware das Cloud GPUs e Cloud TPUs aguarde por dados.

Para aplicar o perfil específico da preparação, especifique profile=aiml-training através de um ficheiro de configuração do Cloud Storage FUSE ou --profile=aiml-training através da CLI do Cloud Storage FUSE. Em seguida, são aplicadas as seguintes configuraçõ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

Aplique configurações baseadas em perfis para cargas de trabalho de criação de pontos de verificação

O perfil específico de criação de pontos de verificação otimiza o desempenho para escritas de elevado débito para ficheiros grandes, reduzindo drasticamente o tempo necessário para guardar pontos de verificação de vários gigabytes, minimizando as pausas de preparação.

Para aplicar o perfil específico da preparação, especifique profile=aiml-checkpointing através de um ficheiro de configuração do Cloud Storage FUSE ou --profile=aiml-checkpointing através da CLI do Cloud Storage FUSE. Em seguida, são aplicadas as seguintes configuraçõ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

Aplique configurações baseadas em perfis para publicar cargas de trabalho

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

Para aplicar o perfil específico da preparação, especifique profile=aiml-serving através de um ficheiro de configuração do Cloud Storage FUSE ou --profile=aiml-serving através da CLI do Cloud Storage FUSE. Em seguida, são aplicadas as seguintes configuraçõ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

O que se segue?