- 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 personalizados 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 personalizado pode acessar qualquer bucket do Cloud Storage no mesmo projeto do 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 personalizado 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-Aroles/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.
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 Diferenças de outros sistemas de arquivos.
Carregar dados no Cloud Storage
Para saber mais sobre as opções de transferência de dados para o Cloud Storage, consulte Opções de transferência de dados.
A seguir
- Saiba mais sobre os preços do Cloud Storage FUSE.
- Prepare seu aplicativo de treinamento para uso na Vertex AI.