Use o Cloud Storage como um sistema de ficheiros montado

O Cloud Storage FUSE permite-lhe carregar dados de preparação para um contentor do Cloud Storage e aceder a esses dados a partir da sua tarefa de preparação personalizada como um sistema de ficheiros montado. A utilização do Cloud Storage FUSE tem as seguintes vantagens:

  • Os dados de preparação são transmitidos para a tarefa de preparação em vez de serem transferidos para réplicas, o que pode tornar as tarefas de configuração e carregamento de dados mais rápidas quando a tarefa começa a ser executada.
  • As tarefas de preparação podem processar entradas e saídas em grande escala sem fazer chamadas de API, processar respostas ou integrar-se com bibliotecas do lado do cliente.
  • O Cloud Storage FUSE oferece um elevado débito para leituras sequenciais de ficheiros grandes e em cenários de preparação distribuída.

Exemplos de utilização

Recomendamos a utilização do Cloud Storage para armazenar dados de preparação nas seguintes situações:

  • Os seus dados de preparação são dados não estruturados, como imagens, texto e vídeo.
  • Os seus dados de preparação são dados estruturados num formato como o TFRecord.
  • Os seus dados de preparação contêm ficheiros grandes, como vídeo não processado.
  • Usar a preparação distribuída.

Como funciona

Os trabalhos de preparação personalizados podem aceder aos seus contentores do Cloud Storage como subdiretórios do diretório /gcs raiz. Por exemplo, se os seus dados de preparação estiverem localizados em gs://example-bucket/data.csv, pode ler e escrever no contentor a partir da sua aplicação de preparação em Python da seguinte forma:

Ler para o bucket

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

Escrever no contentor

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

Autorizações de acesso ao contentor

Por predefinição, uma tarefa de preparação personalizada pode aceder a qualquer contentor do Cloud Storage no mesmo Google Cloud projeto através do agente de serviço de código personalizado do Vertex AI. Para controlar o acesso aos contentores, pode atribuir uma conta de serviço personalizada à tarefa. Neste caso, o acesso a um contentor do Cloud Storage é concedido com base nas autorizações associadas às funções do Cloud Storage da conta de serviço personalizada.

Por exemplo, se quiser conceder ao trabalho de preparação personalizado acesso de leitura e escrita ao contentor A, mas apenas acesso de leitura ao contentor B, pode atribuir uma conta de serviço personalizada que tenha as seguintes funções ao trabalho:

  • roles/storage.objectAdmin para o grupo A
  • roles/storage.objectViewer para o grupo B

Se a tarefa de preparação tentar escrever no Bucket-B, é devolvido um erro "permission denied".

Para mais informações sobre as funções do Cloud Storage, consulte o artigo Funções de IAM para o Cloud Storage.

Práticas recomendadas

  • Evite mudar o nome dos diretórios. Uma operação de mudança de nome não é atómica no Cloud Storage FUSE. Se a operação for interrompida, alguns ficheiros permanecem no diretório antigo.
  • Evite fechar (close()) ou limpar ficheiros (flush()) desnecessariamente. Se fechar ou limpar ficheiros, estes são enviados para o Cloud Storage, o que acarreta um custo.

Diretrizes de otimização do desempenho

Para conseguir um débito de leitura ideal quando usar o Cloud Storage como um sistema de ficheiros, recomendamos a implementação das seguintes diretrizes:

  • Para reduzir a latência introduzida pela procura e abertura de objetos num contentor, armazene os dados em ficheiros maiores e em menor número.
  • Use o treino distribuído para maximizar a utilização da largura de banda.
  • Coloque em cache os ficheiros acedidos com frequência para melhorar o desempenho de leitura. Para ver detalhes, consulte o artigo Vista geral do armazenamento em cache no FUSE do Cloud Storage.
  • Use o armazenamento local para a criação de pontos de verificação e registos em vez do Cloud Storage.

Limitações

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

Use o FUSE do Cloud Storage

Para usar o FUSE do Cloud Storage para a preparação personalizada, faça o seguinte:

  1. Crie um contentor do Cloud Storage. Tenha em atenção que os contentores de região dupla e de várias regiões não são suportados para a preparação personalizada.
  2. Carregue os seus dados de preparação para o contentor. Para ver detalhes, consulte a secção Carregamentos.

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

  3. Instale o Cloud Storage FUSE.

  4. Monte o contentor na sua aplicação de preparação.

O que se segue?