Usar o Cloud Storage como um sistema de arquivos ativado

O Cloud Storage FUSE permite carregar dados de treinamento em um bucket do Cloud Storage e acessá-los a partir do job de treinamento sem servidor da Vertex AI como um sistema de arquivos montado. O uso do Cloud Storage FUSE tem os seguintes benefícios:

  • Os dados de treinamento são transmitidos para o job de treinamento em vez de transferidos por download para réplicas, o que pode tornar o carregamento dos dados e as tarefas de configuração mais rápidos quando o job começa a ser executado.
  • Os jobs de treinamento podem processar entradas e saídas em escala sem fazer chamadas de API, lidar com respostas ou fazer a integração com bibliotecas do lado do cliente.
  • O Cloud Storage FUSE fornece alta capacidade para leituras sequenciais de arquivos grandes e em cenários de treinamento distribuído.

Casos de uso

Recomendamos o uso do Cloud Storage para armazenar dados de treinamento nas seguintes situações:

  • Seus dados de treinamento são dados não estruturados, como imagem, texto e vídeo.
  • Os dados de treinamento são estruturados em um formato como o TFRecord.
  • Seus dados de treinamento contêm arquivos grandes, como vídeos brutos.
  • Você usa treinamento distribuído.

Como funciona

Os jobs de treinamento sem servidor podem acessar seus buckets do Cloud Storage como subdiretórios do diretório raiz /gcs. Por exemplo, se os dados de treinamento estiverem localizados em gs://example-bucket/data.csv, será possível ler e gravar no bucket a partir do aplicativo de treinamento em Python da seguinte maneira:

Ler no bucket

with open('/gcs/example-bucket/data.csv', 'r') as f:
  lines = f.readlines()

Gravar no bucket

with open('/gcs/example-bucket/epoch3.log', 'a') as f:
  f.write('success!\n')

Permissões de acesso ao bucket

Por padrão, um job de treinamento sem servidor pode acessar qualquer bucket do Cloud Storage no mesmo projeto Google Cloud usando o agente de serviço de código personalizado da Vertex AI. Para controlar o acesso a buckets, atribua uma conta de serviço personalizada ao job. Nesse caso, o acesso a um bucket do Cloud Storage é concedido com base nas permissões associadas aos papéis do Cloud Storage da conta de serviço personalizada.

Por exemplo, se você quiser conceder ao job de treinamento sem servidor acesso de leitura e gravação ao bucket-A, mas apenas acesso de leitura ao bucket-B, atribua uma conta de serviço que tenha os seguintes papéis ao job:

  • roles/storage.objectAdmin para bucket-A
  • roles/storage.objectViewer para Bucket-B

Se o job de treinamento tentar gravar no bucket-B, um erro "permissão negada" será retornado.

Para mais informações sobre os papéis do Cloud Storage, consulte Papéis do IAM para o Cloud Storage.

Práticas recomendadas

  • Evite renomear diretórios. Uma operação de renomeação não é atômica no Cloud Storage FUSE. Se a operação for interrompida, alguns arquivos permanecerão no diretório antigo.
  • Evite fechar (close()) ou limpar os arquivos (flush()) desnecessariamente. Fechar ou limpar arquivos envia o arquivo para o Cloud Storage, o que incorre em um custo.

Diretrizes de otimização de desempenho

Para ter a capacidade ideal de leitura ao usar o Cloud Storage como sistema de arquivos, recomendamos a implementação das seguintes diretrizes:

  • Para reduzir a latência introduzida ao procurar e abrir objetos em um bucket, armazene os dados em arquivos maiores e em menos arquivos.
  • Use o treinamento paralelo para maximizar a utilização da largura de banda.
  • Armazene em cache os arquivos acessados com frequência para melhorar o desempenho de leitura. Para mais detalhes, consulte Visão geral do armazenamento em cache no Cloud Storage FUSE.
  • Use o armazenamento local para pontos de verificação e registros em vez do Cloud Storage.

Limitações

Para saber mais sobre as limitações do Cloud Storage FUSE, incluindo as diferenças entre os sistemas de arquivos do Cloud Storage FUSE e POSIX, consulte Limitações e diferenças dos sistemas de arquivos POSIX.

Usar o Cloud Storage FUSE

Para usar o Cloud Storage FUSE em treinamentos sem servidor, faça o seguinte:

  1. Crie um bucket do Cloud Storage. Os buckets birregionais e multirregionais não são compatíveis com o treinamento sem servidor.
  2. Faça upload dos dados de treinamento para o bucket. Confira mais detalhes em Uploads.

    Para saber mais sobre as opções de transferência de dados para o Cloud Storage, consulte Opções de transferência de dados.

  3. Instale o Cloud Storage FUSE.

  4. Use o sistema de arquivos do Cloud Storage.

A seguir