Planejar armazenamento para cargas de trabalho de IA e ML em Google Cloud

Last reviewed 2025-04-09 UTC

Este documento apresenta orientações de design sobre como escolher e integrar serviços de armazenamentoGoogle Cloud para suas cargas de trabalho de IA e ML. Cada fase do ciclo de vida do aprendizado de máquina tem requisitos de armazenamento diferentes. Por exemplo, ao fazer o upload do conjunto de dados de treinamento, você pode priorizar a capacidade de armazenamento para treinamento e o alto throughput para conjuntos de dados grandes. Da mesma forma, os estágios de treinamento, ajuste, serviço e arquivamento têm requisitos diferentes.

Este documento ajuda você a avaliar seus requisitos de capacidade, latência e throughput para fazer escolhas informadas e determinar a solução de armazenamento adequada. Este documento pressupõe que você selecionou uma plataforma de computação que atende aos requisitos da sua carga de trabalho. Para cargas de trabalho de IA e ML, recomendamos o uso do Compute Engine ou do Google Kubernetes Engine (GKE). Para mais informações sobre como selecionar uma plataforma de computação, consulte Hospedagem de aplicativos no Google Cloud.

As guias a seguir fornecem um breve resumo das opções de armazenamento recomendadas para cada fase do fluxo de trabalho de ML. Para mais informações, consulte Escolher o armazenamento adequado.

Preparação

Na fase de preparação do fluxo de trabalho de ML, faça o seguinte:

  1. Faça upload e ingestão de dados.
  2. Transforme os dados no formato correto antes de treinar o modelo.

Para otimizar os custos de armazenamento usando várias classes, recomendamos o uso do recurso Classe automática do Cloud Storage ou o Gerenciamento do ciclo de vida de objetos.

Trem

Na fase de treinamento do fluxo de trabalho de ML, faça o seguinte:

  1. Desenvolvimento de modelos: desenvolva seu modelo usando notebooks e aplicando iteração de tentativa e erro.
  2. Treinamento de modelos:
    • Use números de pequena a grande escala de aceleradores de máquina para ler repetidamente o conjunto de dados de treinamento.
    • Aplique um processo iterativo ao desenvolvimento e treinamento do modelo.
  3. Criação de checkpoints e reinicialização:
    • Salve o estado periodicamente durante o treinamento de modelo criando um checkpoint para que o treinamento possa ser reiniciado após uma falha no nó.
    • Faça a seleção de checkpoint com base no padrão de E/S e na quantidade de dados que precisam ser salvos no checkpoint.

Para as fases de treinamento, recomendamos as seguintes opções de armazenamento:

  • Use o Cloud Storage com o Cloud Storage FUSE e o Anywhere Cache se a carga de trabalho tiver estas características:
    • Dados de treinamento que consistem em arquivos grandes de 50 MB ou mais.
    • Tolerância a uma latência de armazenamento maior em dezenas de milissegundos.
    • Prioridade à durabilidade dos dados e alta disponibilidade em relação ao desempenho do armazenamento.
  • Use o Google Cloud Managed Lustre se a carga de trabalho tiver estas características:
    • Um requisito mínimo de capacidade de treinamento de 18 TiB.
    • Treine dados que consistem em arquivos pequenos de menos de 50 MB para aproveitar os recursos de baixa latência.
    • Um requisito de latência de menos de 1 milissegundo para atender aos requisitos de armazenamento para E/S aleatória e acesso a metadados.
    • Um requisito para realizar pontos de verificação frequentes de alto desempenho.
    • Uma experiência semelhante a um computador com suporte total a POSIX para conferir e gerenciar os dados dos usuários.

Para otimizar custos, recomendamos que você use o mesmo serviço de armazenamento em todas as fases do treinamento do modelo.

Disponibilização

Na fase de veiculação do fluxo de trabalho de ML, faça o seguinte:

  1. Armazene o modelo.
  2. Carregue o modelo em uma instância que executa aceleradores de máquina na inicialização.
  3. Armazene resultados da inferência de modelo, como imagens geradas.
  4. Se preferir, armazene e carregue o conjunto de dados usado para inferência de modelo.

Para os estágios de veiculação, recomendamos as seguintes opções de armazenamento:

  • Cloud Storage com o Cloud Storage FUSE e o Anywhere Cache se a carga de trabalho tiver estas características:
    • Um requisito para uma solução econômica em um ambiente dinâmico em que o número de nós de inferência pode mudar.
    • Atualizações pouco frequentes no modelo.
    • Prioridade para alta disponibilidade e durabilidade dos modelos, mesmo em caso de interrupções regionais.
  • ML do Hyperdisk do Google Cloud se a carga de trabalho tiver estas características:
    • Um requisito para mais de 100 nós de inferência.
    • Atualizações pouco frequentes no modelo.
    • Sua carga de trabalho usa um tipo de máquina virtual (VM) com suporte.
    • Seu pipeline pode gerenciar volumes somente leitura para armazenar modelos.
  • Managed Lustre se a carga de trabalho tiver estas características:
    • Sua carga de trabalho de treinamento e checkpoint usa o Lustre gerenciado.
    • Um requisito de 10 a 100 nós de inferência.
    • Atualizações frequentes no modelo.

Arquivar

Na fase de arquivamento de cargas de trabalho de ML, você retém os dados de treinamento e o modelo por períodos longos.

Para otimizar os custos de armazenamento com várias classes de armazenamento, recomendamos o uso da Classe automática do Cloud Storage ou o Gerenciamento do ciclo de vida de objetos.

Informações gerais do processo de design

Para determinar as opções de armazenamento adequadas para sua carga de trabalho de IA e ML em Google Cloud, faça o seguinte:

  1. Considere as características da sua carga de trabalho, as expectativas de desempenho e as metas de custo.
  2. Analise os recursos e serviços de armazenamento recomendados em Google Cloud.
  3. Com base nos seus requisitos e nas opções disponíveis, escolha os serviços e recursos de armazenamento necessários para cada etapa do fluxo de trabalho de ML: preparar, treinar, fornecer e arquivar.

Este documento se concentra nas etapas do fluxo de trabalho de ML em que a consideração cuidadosa das opções de armazenamento é mais importante, mas não abrange todo o ciclo de vida, processos e recursos de ML.

Confira a seguir uma visão geral do processo de design de três fases para escolher o armazenamento para sua carga de trabalho de IA e ML:

  1. Defina seus requisitos:
    • Características da carga de trabalho
    • Restrições de segurança
    • Requisitos de resiliência
    • Expectativas de desempenho
    • Metas de custo
  2. Revisar as opções de armazenamento:
    • Cloud Storage
    • Managed Lustre
    • Hyperdisk ML
  3. Escolher o armazenamento adequado: escolha serviços, recursos e opções de design de armazenamento com base nas características da sua carga de trabalho em cada fase do fluxo de trabalho de ML.

Definir seus requisitos

Antes de escolher as opções de armazenamento para sua carga de trabalho de IA e ML em Google Cloud, defina os requisitos de armazenamento para a carga de trabalho. Para definir os requisitos de armazenamento, considere fatores como plataforma de computação, capacidade, throughput e requisitos de latência.

Para ajudar você a escolher uma opção de armazenamento para suas cargas de trabalho de IA e ML, considere as características da carga de trabalho:

  • Os tamanhos das solicitações de E/S e dos arquivos são pequenos (KB), médios ou grandes (MB ou GB)?
  • Sua carga de trabalho mostra principalmente padrões de acesso a arquivos sequenciais ou aleatórios?
  • Suas cargas de trabalho de IA e ML são sensíveis à latência de E/S e ao tempo até o primeiro byte (TTFB)?
  • Você precisa de alta capacidade de processamento de leitura e gravação para clientes individuais, agregados ou ambos?
  • Qual é o maior número de unidades de processamento gráfico (GPUs) ou unidades de processamento de tensor (TPUs) que sua maior carga de trabalho de treinamento de IA e ML exige?

Use as respostas para essas perguntas para escolher o armazenamento adequado mais adiante neste documento.

Analisar as opções de armazenamento

OGoogle Cloud oferece serviços de armazenamento para todos os formatos de armazenamento principais: bloco, arquivo, sistema de arquivos paralelo e objeto. A tabela a seguir descreve as opções que podem ser consideradas para sua carga de trabalho de IA e ML no Google Cloud. A tabela inclui as três opções de armazenamento gerenciadas pelo Google que são o foco deste documento para suas cargas de trabalho de IA e ML. No entanto, se você tiver requisitos específicos que não são atendidos por essas ofertas, considere usar o Sycomp Storage, um serviço de armazenamento gerenciado por parceiros disponível no Google Cloud Marketplace.

Revise e avalie os recursos, as opções de design e as vantagens relativas dos serviços disponíveis para cada formato de armazenamento.

Serviço de armazenamento Tipo de armazenamento Recursos
Cloud Storage Objeto
Managed Lustre Sistema de arquivos paralelo
Hyperdisk ML Bloquear
  • Alto desempenho com capacidade de armazenamento pequena.
  • Persistente somente leitura.
  • Até 1,2 TB/s de throughput agregado.
Armazenamento do Sycomp Sistema de arquivos paralelo
  • Compatível com POSIX.
  • Armazenamento HPC.
  • Use o escalonamento automático do Cloud Storage.
  • Armazenamento permanente e de arranhão.
  • Até 1,2 TB/s de throughput com latência ultrabaixa.

Cloud Storage

O Cloud Storage é um serviço de armazenamento de objetos totalmente gerenciado, adequado para cargas de trabalho de IA e ML de qualquer escala. O Cloud Storage se destaca no processamento de dados não estruturados em todas as fases do fluxo de trabalho de IA e ML.

O Cloud Storage oferece os seguintes benefícios:

  • Escalonabilidade massiva: ganhe capacidade de armazenamento ilimitada que é escalonada para exabytes em nível global.
  • Alta capacidade de processamento: escalone até 1 TB/s com o planejamento necessário.
  • Opções de local flexíveis: escolha entre as opções de armazenamento regional, multirregional e birregional para cargas de trabalho de IA e ML.
  • Eficiência de custos: aproveite uma variedade de classes de armazenamento projetadas para otimizar custos com base nos padrões de acesso aos dados.

O Cloud Storage se destaca em escala e economia, mas é importante considerar a latência e as características de E/S. A latência esperada é de dezenas de milissegundos, o que é maior do que outras opções de armazenamento. Para maximizar a capacidade de processamento, é necessário usar centenas ou milhares de linhas de execução, arquivos grandes e solicitações de E/S grandes. O Cloud Storage oferece bibliotecas de cliente em várias linguagens de programação e o Cloud Storage FUSE e o Cache Anywhere.

O Cloud Storage FUSE é um adaptador FUSE de código aberto compatível com o Google. O Cloud Storage FUSE permite ativar buckets do Cloud Storage como unidades locais. O Cloud Storage FUSE não é totalmente compatível com POSIX. Portanto, é importante entender as limitações e diferenças do Cloud Storage FUSE em relação aos sistemas de arquivos tradicionais. Com o Cloud Storage FUSE, é possível acessar dados de treinamento, modelos e checkpoints com a escala, a acessibilidade e o desempenho do Cloud Storage.

O armazenamento em cache do Cloud Storage FUSE oferece os seguintes benefícios:

  • Portabilidade: monte e acesse buckets do Cloud Storage usando a semântica padrão do sistema de arquivos, o que torna seus aplicativos mais portáteis.
  • Compatibilidade: elimine a necessidade de refatorar aplicativos para usar APIs específicas da nuvem, o que economiza tempo e recursos.
  • Tempo ocioso reduzido: inicie jobs de treinamento rapidamente acessando diretamente os dados no Cloud Storage, o que minimiza o tempo ocioso para GPUs e TPUs.
  • Alta capacidade: aproveite a escalabilidade e o desempenho integrados do Cloud Storage, que é otimizado para cargas de trabalho de ML com leitura pesada com GPUs ou TPUs.
  • Cache de arquivos local do cliente: acelere o treinamento com um cache local do cliente que acelera leituras de arquivos repetidas. Essa aceleração pode ser aprimorada quando usada com o SSD local de 6 TiB que é fornecido com os tipos de máquina A3.

O Anywhere Cache é um recurso do Cloud Storage que oferece até 1 PiB de cache de leitura zonal com suporte a SSD para buckets do Cloud Storage. O Anywhere Cache foi desenvolvido para acelerar aplicativos com uso intensivo de dados fornecendo uma camada de acesso local e rápido para dados lidos com frequência em uma zona específica.

O cache em qualquer lugar oferece os seguintes benefícios:

  • Taxa de transferência acelerada: ajuste automaticamente a capacidade do cache e a largura de banda para oferecer uma taxa de transferência alta, excedendo as cotas de largura de banda regional, com latências consistentes e previsíveis.
  • Custo reduzido: evite taxas de saída de transferência de dados ou taxas de recuperação de classe de armazenamento para dados armazenados em cache. O cache em qualquer lugar dimensiona automaticamente o cache e a largura de banda disponível para atender às necessidades da sua carga de trabalho.

Hyperdisk ML

O Hyperdisk ML é uma solução de armazenamento em blocos de alto desempenho projetada para acelerar cargas de trabalho de IA e ML que exigem acesso de leitura somente a grandes conjuntos de dados. O Hyperdisk ML aproveita a escalabilidade e a disponibilidade do Colossus para equilibrar o desempenho em todo o sistema de arquivos. O Hyperdisk ML é particularmente adequado para tarefas de veiculação em comparação com outros serviços de armazenamento no Google Cloud , porque pode fornecer uma capacidade de processamento agregada excepcionalmente alta simultaneamente para muitas VMs.

O Hyperdisk ML oferece os seguintes benefícios:

  • Serviço de modelo acelerado e capacidade de escalonamento: dimensione até milhares de nós simultâneos e alcance um alto throughput agregado, o que otimiza os tempos de carregamento e a utilização de recursos para cargas de trabalho de inferência com o modo Kubernetes ReadOnlyMany.
  • Densidade de alto desempenho: alcance a maior capacidade disponível em Google Cloud e operações de leitura rápida para grandes conjuntos de dados compartilhados.
  • Melhoria do custo total de propriedade (TCO): redução de custos com tempos de inatividade da GPU mais curtos, recursos de vários anexos e agrupamento de desempenho.
  • Acesso simultâneo somente leitura: reduza os custos compartilhendo discos entre VMs, o que é mais econômico do que ter vários discos com os mesmos dados. Para acessar dados estáticos de várias VMs, é necessário anexar o mesmo disco no modo somente leitura a centenas de VMs. Para atualizar o volume, o disco precisa ser desanexado de todas as VMs, exceto uma.

Managed Lustre

O Lustre gerenciado é um sistema de arquivos totalmente gerenciado no Google Cloud. O Lustre gerenciado fornece instâncias zonais persistentes que são criadas no sistema de arquivos Lustre do DDN EXAScaler. O Lustre gerenciado é ideal para cargas de trabalho de IA e ML que precisam oferecer acesso de baixa latência de menos de um milissegundo com alta capacidade de processamento e altas operações de entrada/saída por segundo (IOPS). O Lustre gerenciado pode manter alta taxa de transferência e IOPS para algumas ou milhares de VMs.

O Lustre gerenciado oferece os seguintes benefícios:

  • Compliance com POSIX: suporte ao padrão POSIX, que ajuda a garantir compatibilidade com muitos aplicativos e ferramentas.
  • TCO menor para treinamento: acelere o tempo de treinamento enviando dados de forma eficiente para nós de computação. Essa aceleração ajuda a reduzir o TCO para o treinamento de modelos de IA e ML.
  • TCO menor para veiculação: ative o carregamento de modelos mais rápido e a veiculação de inferência otimizada em comparação com o Cloud Storage. Esses recursos ajudam a reduzir os custos de computação e a melhorar a utilização de recursos.
  • Utilização eficiente de recursos: combine o checkpoint e o treinamento em uma única instância. Essa utilização de recursos ajuda a maximizar o uso eficiente da capacidade de leitura e gravação em um único sistema de armazenamento de alto desempenho.

Armazenamento do Sycomp

O Sycomp Storage impulsionado pela IBM Spectrum Scale (Sycomp Storage) é um sistema de arquivos paralelo de alto desempenho e persistente que é aceito e gerenciado pelo Sycomp. O Sycomp Storage foi projetado para se destacar em cargas de trabalho de IA e ML que exigem alta capacidade, alta capacidade de processamento e baixa latência. O Sycomp Storage oferece conteúdo em cache de leitura e gravação integrado e sob demanda de buckets do Cloud Storage. Ao contrário das opções de armazenamento gerenciadas pelo Google anteriores, o Sycomp Storage é gerenciado por parceiros. O Sycomp Storage está disponível no Cloud Marketplace por meio de uma oferta particular da Sycomp.

O Sycomp Storage oferece os seguintes benefícios:

  • Compatível com POSIX: suporte ao padrão POSIX, que oferece compatibilidade com muitos aplicativos e ferramentas.
  • Escalonabilidade e flexibilidade: aumente ou diminua a performance e a capacidade de forma independente. O Sycomp Storage oferece suporte a dados na escala de PB e milhares de VMs simultâneas, com acesso flexível usando NFS e o cliente integrado do Spectrum Scale.
  • Desempenho otimizado: capacidade de processamento de leitura e gravação de até 1,2 TB/s com latência de menos de 1 milissegundo.
  • Implantação e gerenciamento simplificados: implante usando um driver CSI para implantações do GKE, integração do Slurm para implantações do Compute Engine e suporte ao Terraform.
  • Integração híbrida e do Cloud Storage: ative o armazenamento em cache sob demanda de buckets do Cloud Storage ou dados no local. O Sycomp Storage é o único sistema de arquivos no Google Cloud que oferece esse benefício. Quando você usa o Sycomp Storage, todos os seus dados no Cloud Storage continuam mantendo o acesso direto, o que evita o bloqueio de dados.

Análise comparativa

A tabela a seguir mostra os principais recursos dos serviços de armazenamento em Google Cloud.

Cloud Storage Hyperdisk ML Managed Lustre Armazenamento do Sycomp
Capacidade Não há limite mínimo ou máximo. 4 GiB a 64 TiB 18 TiB a 1 PiB Escala para PBs, determinada pelo número de discos adicionados.
Escalonamento Escala automaticamente com base no uso. Escalonar verticalmente Não escalonável Escala automaticamente com base no uso com a classificação automática do Cloud Storage.
Compartilhamento
  • Leitura/gravação de qualquer lugar.
  • Integração com o Cloud CDN e CDNs de terceiros.
Compatível Montável em várias VMs do Compute Engine e clusters do GKE. Acesso simultâneo de leitura e gravação usando VMs que executam o cliente integrado do IBM Storage Scale e VMs que usam NFS.
Opção de chave de criptografia
  • Google-owned and Google-managed encryption keys
  • Gerenciada pelo cliente
  • Fornecidas pelo cliente
  • Google-owned and Google-managed encryption keys
  • Gerenciada pelo cliente
  • Fornecidas pelo cliente
Google-owned and Google-managed encryption keys Gerencie chaves de criptografia com o IBM Security Guardium Key Lifecycle Manager (GKLM).
Persistência Vida útil do bucket Duração do disco Ciclo de vida da instância do Lustre gerenciado. Tempo de vida do Hyperdisk ou do disco permanente. Scratch no SSD local.
Disponibilidade Zonal Zonal Zonal
Desempenho Taxas de leitura e gravação de escalonamento automático e redistribuições dinâmicas de carga Armazenamento permanente de escalonamento dinâmico Escalonamento linear com capacidade provisionada Escalonamento linear com capacidade provisionada
Gerenciamento Totalmente gerenciado Formatar e ativar manualmente Totalmente gerenciado e compatível com POSIX Totalmente gerenciado pela Sycomp, compatível com POSIX

Ferramentas de transferência de dados

Esta seção descreve suas opções para mover dados entre serviços de armazenamento no Google Cloud. Ao realizar tarefas de IA e ML, talvez seja necessário mover os dados de um local para outro. Por exemplo, se os dados começam no Cloud Storage, talvez você precise movê-los para outro lugar para treinar o modelo e, em seguida, copiar os snapshots do checkpoint ou o modelo treinado de volta para o Cloud Storage.

É possível usar os seguintes métodos para transferir dados para o Google Cloud:

  • Transfira dados on-line usando o Serviço de transferência do Cloud Storage: automatize a transferência de grandes quantidades de dados entre sistemas de armazenamento de objetos e arquivos, incluindo o Cloud Storage, Amazon S3, serviços de armazenamento do Azure e fontes de dados no local. Com o Storage Transfer Service, você pode copiar seus dados com segurança do local de origem para o de destino e realizar transferências periódicas de dados alterados. Ele também oferece validação da integridade de dados, novas tentativas automáticas e balanceamento de carga.
  • Transferir dados off-line usando o Transfer Appliance: transfira e carregue grandes quantidades de dados off-line para Google Cloud em situações em que a conectividade de rede e a largura de banda são limitadas, caras ou estão indisponíveis.
  • Fazer upload de dados para o Cloud Storage: faça upload de dados on-line para buckets do Cloud Storage usando o console do Google Cloud, a gcloud CLI, as APIs Cloud Storage ou as bibliotecas de cliente.

Ao escolher um método de transferência de dados, considere fatores como tamanho dos dados, restrições de tempo, disponibilidade de largura de banda, metas de custo e requisitos de segurança e conformidade. Para saber como planejar e implementar transferências de dados para o Google Cloud, consulte Migrar para o Google Cloud: transferir grandes conjuntos de dados.

Escolher armazenamento apropriado

As cargas de trabalho de IA e ML geralmente envolvem quatro etapas principais: preparar, treinar, disponibilizar e arquivar. Cada um desses estágios tem requisitos de armazenamento exclusivos, e escolher a solução certa pode afetar significativamente a performance, o custo e a eficiência operacional. Uma abordagem híbrida ou otimizada localmente permite personalizar as opções de armazenamento de acordo com as demandas específicas de cada fase da carga de trabalho de IA e ML. No entanto, se suas prioridades forem gerenciamento unificado e facilidade de operação, uma abordagem simplificada globalmente que use uma solução consistente em todas as etapas pode ser benéfica para cargas de trabalho de qualquer escala. A eficácia da escolha de armazenamento depende das propriedades do conjunto de dados, da escala dos recursos de computação e armazenamento necessários, da latência e dos requisitos de carga de trabalho definidos anteriormente.

As guias a seguir oferecem uma visão geral comparativa dos recursos do Cloud Storage, do Managed Lustre e do Hyperdisk ML para cargas de trabalho de IA e ML.

Capacidade de armazenamento

Esta tabela destaca a adequação de cada opção de armazenamento com base na capacidade de armazenamento:

Requisitos de capacidade de treinamento de armazenamento Cloud Storage Managed Lustre Hyperdisk ML
Menos de 100 TiB
Mais de 100 TiB

Capacidade

Esta tabela destaca a adequação de cada opção de armazenamento com base nos requisitos de taxa de transferência:

Requisitos de throughput Cloud Storage Managed Lustre Hyperdisk ML
Menos de 125 GB/s
Menos de 1 TB/s
Mais de 1 TB/s

Latência

Esta tabela destaca a adequação de cada opção de armazenamento com base na latência para arquivos pequenos e leituras aleatórias:

Latência (arquivos pequenos e leituras aleatórias) Cloud Storage Managed Lustre Hyperdisk ML
Menos de 30 ms
Menos de 1 ms

As seções a seguir fornecem detalhes sobre as fases principais das cargas de trabalho de IA e ML e os fatores que podem influenciar sua escolha de armazenamento.

Preparação

A etapa de preparação estabelece a base para seu aplicativo de IA e ML. Isso envolve fazer upload de dados brutos de várias fontes para o ambiente de nuvem e transformar os dados em um formato utilizável para treinar seu modelo de IA e ML. Esse processo inclui tarefas como limpeza, processamento e conversão de tipos de dados para garantir a compatibilidade com a estrutura de IA e ML escolhida.

O Cloud Storage é adequado para a fase de preparação devido à sua escalonabilidade, durabilidade e custo-benefício, principalmente para grandes conjuntos de dados comuns em IA. O Cloud Storage oferece integração perfeita com outros serviçosGoogle Cloud que permitem aproveitar as otimizações potenciais para treinamentos com uso intensivo de dados.

Durante a fase de preparação de dados, é possível reorganizar os dados em grandes divisões para melhorar a eficiência de acesso e evitar solicitações de leitura aleatórias. Para reduzir ainda mais os requisitos de desempenho de E/S no sistema de armazenamento, aumente o número de linhas de execução de E/S usando pipelines, otimização de treinamento ou ambos.

Trem

A etapa de treinamento é o núcleo do desenvolvimento de modelos, em que a IA e o ML aprendem com os dados fornecidos. Essa etapa envolve dois aspectos principais que têm requisitos distintos: carregamento de dados eficiente para acessar dados de treinamento e criação de checkpoints confiáveis para salvar o progresso do modelo. As seções a seguir fornecem recomendações e os fatores a serem considerados para escolher as opções de armazenamento adequadas para o carregamento de dados e o checkpoint.

Carregamento de dados

Durante o carregamento de dados, as GPUs ou TPUs importam lotes de dados repetidamente para treinar o modelo. Nessa fase, é possível usar um cache para otimizar as tarefas de carregamento de dados, dependendo do tamanho dos lotes e da ordem em que você os solicita. Seu objetivo durante o carregamento de dados é treinar o modelo com eficiência máxima, mas com o menor custo.

Se o tamanho dos dados de treinamento for escalonado para petabytes, talvez seja necessário reler várias vezes. Esse escalonamento requer processamento intensivo por um acelerador de GPU ou TPU. No entanto, você precisa garantir que as GPUs e TPUs não estejam inativas e processem os dados ativamente. Caso contrário, você pagará por um acelerador caro e inativo enquanto copia os dados de um local para outro.

Para otimizar o desempenho e o custo do carregamento de dados, considere os seguintes fatores:

  • Tamanho do conjunto de dados: o tamanho do corpus de dados de treinamento geral e o tamanho de cada conjunto de dados de treinamento.
  • Padrões de acesso: qual das opções a seguir melhor categoriza seu padrão de acesso de E/S da carga de trabalho de treinamento:
    • Acesso paralelo e sequencial: um arquivo é atribuído a um único nó e lido sequencialmente.
    • Acesso paralelo e aleatório: um arquivo é atribuído a um único nó e lido aleatoriamente para criar um lote de amostras.
    • Acesso totalmente aleatório: um nó pode ler qualquer intervalo de qualquer arquivo para criar um lote.
  • Tamanho do arquivo: os tamanhos típicos de solicitações de leitura.
Cloud Storage para carregamento de dados

Em geral, escolha o Cloud Storage para carregar seus dados se alguma das seguintes condições for aplicável:

  • Você tem um requisito de capacidade de treinamento de 100 TiB ou mais.
  • Seus dados de treinamento consistem em arquivos grandes de 50 MB ou mais.
  • Priorize a durabilidade dos dados e a alta disponibilidade em vez do desempenho do armazenamento.

O Cloud Storage oferece uma solução escalonável e econômica para armazenar conjuntos de dados massivos, e o Cloud Storage FUSE permite acessar os dados como um sistema de arquivos local. O Cloud Storage FUSE acelera o acesso aos dados durante o treinamento mantendo os dados de treinamento próximos aos aceleradores de máquina, o que aumenta a capacidade.

Para cargas de trabalho que exigem mais de 1 TB/s de throughput, o Anywhere Cache acelera as velocidades de leitura armazenando dados em cache e escalonando além das cotas de largura de banda regional. Para avaliar se o Anywhere Cache é adequado para sua carga de trabalho, use o recomendador do Anywhere Cache para analisar o uso e o armazenamento de dados.

Lustre gerenciado para carregamento de dados

Escolha o Managed Lustre para carregar seus dados se alguma das condições a seguir for aplicável:

  • Você tem um requisito mínimo de capacidade de treinamento de 18 TiB.
  • Seus dados de treinamento consistem em arquivos pequenos com menos de 50 MB para aproveitar os recursos de baixa latência.
  • Você tem um requisito de latência de menos de 1 milissegundo para atender aos requisitos de armazenamento para E/S aleatória e acesso a metadados.
  • Você precisa de uma experiência semelhante a um computador com suporte total a POSIX para ver e gerenciar os dados dos usuários.

É possível usar o Managed Lustre como um cache de alto desempenho no Cloud Storage para acelerar cargas de trabalho de IA e ML que exigem capacidade extremamente alta e operações de E/S de baixa latência com um sistema de arquivos paralelo totalmente gerenciado. Para minimizar a latência durante o treinamento, é possível importar dados para o Lustre gerenciado do Cloud Storage. Se você usa o GKE como sua plataforma de computação, pode usar o

Driver CSI do Lustre gerenciado pelo GKE para pré-preencher PersistentVolumesClaims com dados do Cloud Storage. Depois que o treinamento for concluído, você poderá minimizar as despesas de armazenamento a longo prazo exportando os dados para uma classe do Cloud Storage com custo mais baixo.

Criação de checkpoint e restauração

Para criação de checkpoint e restauração, os jobs de treinamento precisam salvar periodicamente os respectivos estados para que possam se recuperar rapidamente de falhas na instância. Quando a falha acontece, os jobs precisam ser reiniciados, ingestir o checkpoint mais recente e retomar o treinamento. O mecanismo exato usado para criar e ingerir checkpoints geralmente é específico de um framework. Para saber mais sobre pontos de verificação e técnicas de otimização para o TensorFlow Core, consulte Pontos de verificação de treinamento. Para saber mais sobre pontos de verificação e técnicas de otimização para PyTorch, consulte Como salvar e carregar modelos.

Você só precisa salvar alguns checkpoints em um determinado momento. As cargas de trabalho de checkpoint geralmente consistem principalmente em gravações, várias exclusões e, de preferência, leituras pouco frequentes quando ocorrem falhas.

Para otimizar o checkpoint e restaurar o desempenho, considere os seguintes fatores:

  • Tamanho do modelo: o número de parâmetros que estão no modelo de IA e ML. O tamanho do modelo afeta diretamente o tamanho dos arquivos de verificação, que podem variar de GiB a TiB.
  • Frequência de checkpoint: a frequência com que o modelo salva checkpoints. Salvamentos frequentes oferecem melhor tolerância a falhas, mas aumentam os custos de armazenamento e podem afetar a velocidade do treinamento.
  • Tempo de recuperação do checkpoint: o tempo de recuperação que você quer para carregar checkpoints e retomar o treinamento. Para minimizar o tempo de recuperação, considere fatores como o tamanho do ponto de verificação, o desempenho de armazenamento e a largura de banda da rede.
Cloud Storage para pontos de verificação

Escolha o Cloud Storage para pontos de verificação se alguma das condições a seguir for aplicável:

  • Sua carga de trabalho de treinamento usa o Cloud Storage FUSE.
  • Priorize a durabilidade dos dados e a alta disponibilidade em vez do desempenho do armazenamento.

Para melhorar o desempenho do checkpoint, use o Cloud Storage FUSE com namespace hierárquico ativado para aproveitar a operação de renomeação atômica rápida e salvar checkpoints de forma assíncrona. Para evitar a exposição acidental de informações sensíveis do conjunto de dados de treinamento durante a veiculação, armazene os pontos de verificação em um bucket separado do Cloud Storage. Para ajudar a reduzir a latência de gravação de cauda para uploads interrompidos, o Cloud Storage FUSE tenta uma nova tentativa após 10 segundos.

Lustre gerenciado para checkpointing

Escolha o Lustre gerenciado para o checkpoint se alguma das seguintes condições for aplicável:

  • Sua carga de trabalho de treinamento já usa o Managed Lustre para carregar dados.
  • Você precisa realizar pontos de verificação frequentes de alto desempenho.

Para maximizar a utilização de recursos e minimizar o tempo ocioso do acelerador, use o Lustre gerenciado para treinamento e verificação de pontos. O Lustre gerenciado pode fazer gravações de checkpoints rápidas que alcançam um alto throughput por VM. É possível manter checkpoints na instância persistente do Lustre gerenciado ou otimizar custos exportando-os periodicamente para o Cloud Storage.

Disponibilização

Quando você disponibiliza seu modelo, o que também é conhecido como inferência, o padrão principal de E/S é somente leitura para carregar o modelo na memória de GPU ou TPU. Seu objetivo na fase de disponibilização é executar o modelo em produção. O modelo é muito menor que os dados de treinamento, o que significa que você pode replicar e dimensionar o modelo em várias instâncias. Ao fornecer dados, é importante ter alta disponibilidade e proteção contra falhas zonais e regionais. Portanto, é necessário garantir que o modelo esteja disponível para vários cenários de falha.

Em muitos casos de uso de IA generativa e ML, os dados de entrada do modelo podem ser muito pequenos e não precisar ser armazenados de maneira permanente. Em outros casos, talvez seja necessário executar volumes grandes de dados no modelo (por exemplo, conjuntos de dados científicos). Para executar grandes volumes de dados, escolha uma opção de armazenamento que minimize o tempo de inatividade da GPU ou do TPU durante a análise do conjunto de dados e use um local permanente para armazenar os resultados da inferência.

Os tempos de carregamento do modelo afetam diretamente o tempo de inatividade do acelerador, o que gera custos substanciais. Um aumento no tempo de carregamento do modelo por nó pode ser amplificado em muitos nós, o que pode levar a um aumento significativo no custo. Portanto, para alcançar a eficiência de custos na infraestrutura de veiculação, é importante otimizar para o carregamento rápido do modelo.

Para otimizar a performance e o custo da veiculação, considere os seguintes fatores:

  • Tamanho do modelo: o tamanho do modelo em GiB ou TiB. Modelos maiores exigem mais recursos computacionais e memória, o que pode aumentar a latência.
  • Frequência de carregamento do modelo: a frequência com que você planeja atualizar o modelo. O carregamento e o descarregamento frequentes consomem recursos computacionais e aumentam a latência.
  • Número de nós de exibição: quantos nós vão exibir o modelo. Mais nós geralmente reduzem a latência e aumentam a capacidade, mas também aumentam os custos de infraestrutura.

Cloud Storage para a fase de disponibilização

Escolha o Cloud Storage para disponibilizar seu modelo se alguma das condições a seguir for aplicável:

  • Você precisa de uma solução econômica para um ambiente dinâmico em que o número de nós de inferência pode mudar.
  • Você faz atualizações pouco frequentes no modelo.
  • Você prioriza a alta disponibilidade e durabilidade dos modelos, mesmo em caso de interrupções regionais.

Com a arquitetura multirregional ou birregional, o Cloud Storage oferece alta disponibilidade e protege sua carga de trabalho contra falhas zonais e regionais. Para acelerar o carregamento do modelo, use o Cloud Storage FUSE com downloads paralelos ativados para que partes do modelo sejam buscadas em paralelo.

Para alcançar a veiculação de modelos com capacidade de processamento de mais de 1 TB/s ou para implantações que excedam cem nós de veiculação, use o Anywhere Cache com um bucket multirregional. Essa combinação oferece armazenamento redundante de alto desempenho em várias regiões e flexibilidade. O Anywhere Cache também elimina as taxas de saída de dados e de recuperação de classe de armazenamento em dados armazenados em cache.

Hyperdisk ML para veiculação

Escolha o Hyperdisk ML para disponibilizar seu modelo se alguma das seguintes condições for aplicável:

  • Você precisa de mais de 100 nós de inferência.
  • Você faz atualizações pouco frequentes no modelo.
  • Sua carga de trabalho usa um tipo de VM com suporte.
  • Seu pipeline pode gerenciar volumes somente leitura para armazenar modelos.

Otimize a performance de veiculação usando o Hyperdisk ML como um cache para seus dados do Cloud Storage. O Hyperdisk ML usa o pool de desempenho compartilhado e a capacidade de processamento provisionada dinamicamente em várias VMs para processar de forma eficiente a veiculação de modelos somente leitura em qualquer escala.

Managed Lustre para veiculação

Escolha o Managed Lustre para veicular seu modelo se alguma das condições a seguir for aplicável:

  • Sua carga de trabalho de treinamento e checkpointing usa o Lustre gerenciado.
  • Sua carga de trabalho usa de 10 a 100 nós de inferência.
  • Você faz atualizações frequentes no modelo.

Se você já usa o Managed Lustre para treinamento e verificação de checkpoints, ele pode ser uma opção econômica e de alto desempenho para servir seus modelos. O Managed Lustre oferece alta capacidade de processamento por VM e capacidade de cluster agregada, o que ajuda a reduzir o tempo de carregamento do modelo. É possível usar o Managed Lustre para qualquer número de VMs de exibição.

Arquivar

A fase de arquivamento tem um padrão de E/S de "escrever uma vez, ler raramente". Seu objetivo é armazenar os diferentes conjuntos de dados de treinamento e as diferentes versões dos modelos que você gerou. É possível usar essas versões incrementais de dados e modelos para fins de backup e recuperação de desastres. Você também precisa armazenar esses itens em um local durável por um longo período. Embora você talvez não precise acessar os dados e modelos com muita frequência, convém que os itens estejam disponíveis quando precisar deles.

Em razão da durabilidade extrema, escala expansiva e do baixo custo, a melhor Google Cloud opção para armazenar dados de objeto por um longo período é o Cloud Storage. Dependendo da frequência com que você acessa os arquivos de backup, modelo e conjunto de dados, o Cloud Storage oferece otimização de custos com diferentes classes de armazenamento. Você pode selecionar uma classe de armazenamento com base na frequência com que você espera acessar seus dados arquivados:

  • Acesso frequente a dados: Standard Storage
  • Acesso a dados mensal: Nearline Storage
  • Acesso a dados trimestral: Coldline Storage
  • Acesso anual a dados: armazenamento em arquivo

Com o Gerenciamento do ciclo de vida de objetos, é possível criar políticas para mover dados automaticamente para classes de armazenamento de longo prazo ou excluir dados com base em critérios específicos. Se você não tiver certeza da frequência com que vai acessar os dados, use o recurso de Classe automática para mover dados entre classes de armazenamento automaticamente com base nos padrões de acesso.

A seguir

Para mais informações sobre opções de armazenamento e cargas de trabalho de IA e ML, consulte os seguintes recursos:

Colaboradores

Autor: Samantha He | Redatora técnica

Outros colaboradores: