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

Last reviewed 2025-04-09 UTC

Neste documento, apresentamos orientações de design sobre como escolher e integrar serviços de armazenamentoGoogle Cloud para suas cargas de trabalho de IA e ML. Cada etapa do ciclo de vida de ML tem requisitos de armazenamento diferentes. Por exemplo, ao fazer upload do conjunto de dados de treinamento, você pode priorizar a capacidade de armazenamento para treinamento e a alta capacidade de transferência para conjuntos de dados grandes. Da mesma forma, as etapas de treinamento, ajuste, veiculação e arquivamento têm requisitos diferentes. Para a maioria das cargas de trabalho de IA e ML, recomendamos usar o Lustre gerenciado do Google Cloud como solução de armazenamento. O Managed Lustre oferece alto desempenho e escalonabilidade, o que o torna ideal para treinamento, criação de pontos de verificação e disponibilização. As etapas de disponibilização e arquivamento têm requisitos diferentes.

Este documento ajuda você a avaliar os requisitos de capacidade, latência e capacidade de transferência para tomar decisões 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 usar o Compute Engine ou o 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 etapa do fluxo de trabalho de ML. Para mais informações, consulte Escolher o armazenamento adequado.

Preparação

Na etapa 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 de armazenamento, recomendamos que você use o recurso Classe automática do Cloud Storage ou o gerenciamento do ciclo de vida de objetos.

Trem

Na etapa 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 do modelo:
    • 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 checkpoint 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 etapas de treinamento, recomendamos as seguintes opções de armazenamento:

  • Use o Managed Lustre se a carga de trabalho tiver estas características:
    • Um requisito de capacidade mínima de treinamento de 18 TiB.
    • Dados de treinamento 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 de alto desempenho com frequência.
    • Uma experiência semelhante a um computador com suporte total a POSIX para ver e gerenciar os dados dos usuários.
  • Use o Cloud Storage com o Cloud Storage FUSE e o Anywhere Cache se sua carga de trabalho tiver estas características:
    • Dados de treinamento que consistem em arquivos grandes de 50 MB ou mais.
    • Tolerância a latência de armazenamento mais alta em dezenas de milissegundos.
    • Prioridade da durabilidade dos dados e da alta disponibilidade em vez do desempenho do armazenamento.

Para otimizar os custos, recomendamos usar o mesmo serviço de armazenamento em todas as etapas do treinamento de modelo.

Disponibilização

Na etapa 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 execute 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 as etapas de veiculação, recomendamos as seguintes opções de armazenamento:

  • 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 para 10 a 100 nós de inferência.
    • Atualizações frequentes no modelo.
  • Cloud Storage com Cloud Storage FUSE e 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 seu modelo.
    • Uma prioridade para alta disponibilidade e durabilidade dos seus modelos, mesmo em caso de interrupções regionais.
  • Google Cloud Hyperdisk ML se a carga de trabalho tiver estas características:
    • Uma exigência de mais de 100 nós de inferência.
    • Atualizações pouco frequentes no seu modelo.
    • Sua carga de trabalho usa um tipo de máquina virtual (VM) compatível.
    • Seu pipeline pode gerenciar volumes somente leitura para armazenar modelos.

Arquivar

Na etapa de arquivamento das 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 que você use a Classe automática ou o Gerenciamento do ciclo de vida de objetos do Cloud Storage.

Informações gerais do processo de design

Para determinar as opções de armazenamento adequadas para sua carga de trabalho de IA e ML emGoogle 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. Confira os serviços e recursos 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, veicular 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 aborda 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 da 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. Analise as opções de armazenamento:
    • Managed Lustre
    • Cloud Storage
    • Hyperdisk ML
  3. Escolha o armazenamento adequado: escolha serviços, recursos e opções de design de armazenamento com base nas características da carga de trabalho em cada etapa do fluxo de trabalho de ML.

Definir seus requisitos

Antes de escolher 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, capacidade de processamento 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 sua carga de trabalho:

  • Os tamanhos das solicitação de E/S e dos arquivos são pequenos (KBs), médios ou grandes (MBs ou GBs)?
  • Sua carga de trabalho apresenta 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?

Você usa as respostas 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 principais formatos: bloco, arquivo, sistema de arquivos paralelos e objeto. A tabela a seguir descreve opções que você pode considerar para sua carga de trabalho de IA e ML noGoogle Cloud. A tabela inclui as três opções de armazenamento gerenciadas pelo Google em que este documento se concentra 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 as soluções de armazenamento gerenciadas por parceiros disponíveis 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
Managed Lustre Sistema de arquivos paralelo
Cloud Storage Objeto
Hyperdisk ML Bloquear
  • Alto desempenho com capacidade de armazenamento pequena.
  • Persistente somente leitura.
  • Até 1,2 TB/s de capacidade total.

Managed Lustre

O Lustre gerenciado é um sistema de arquivos totalmente gerenciado no Google Cloud. O Managed Lustre oferece instâncias zonais persistentes criadas no sistema de arquivos Lustre DDN EXAScaler. O Managed Lustre é ideal para cargas de trabalho de IA e ML que precisam fornecer 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 Managed Lustre pode manter alta taxa de transferência e IOPS para algumas ou milhares de VMs.

O Lustre gerenciado oferece os seguintes benefícios:

  • Conformidade com POSIX: suporte ao padrão POSIX, que ajuda a garantir a compatibilidade com muitos aplicativos e ferramentas atuais.
  • TCO menor para treinamento: acelere o tempo de treinamento entregando dados de forma eficiente aos nós de computação. Essa aceleração ajuda a reduzir o TCO do treinamento de modelo de IA e ML.
  • Redução do TCO para veiculação: permite um carregamento mais rápido do modelo e uma 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 checkpointing 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 alta performance.

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 é excelente para processar 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 enorme: tenha capacidade de armazenamento ilimitada que pode ser escalonada para exabytes em todo o mundo.
  • Alta capacidade de processamento: escalonar verticalmente até 1 TB/s com o planejamento necessário.
  • Opções de local flexíveis: escolha entre opções de armazenamento regional, multirregional e birregional para cargas de trabalho de IA e ML.
  • Custo-benefício: aproveite uma variedade de classes de armazenamento projetadas para otimizar os custos com base nos seus padrões de acesso aos dados.

O Cloud Storage se destaca em escalonabilidade e custo-benefício, mas é importante considerar a latência e as características de E/S dele. A latência é de dezenas de milissegundos, o que é maior do que outras opções de armazenamento. Para maximizar a capacidade de processamento, use 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, além de Cloud Storage FUSE e Anywhere Cache.

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. Por isso, é 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 de sistemas de arquivos, o que torna seus aplicativos mais portáteis.
  • Compatibilidade: elimina a necessidade de refatorar aplicativos para usar APIs específicas da nuvem, o que economiza tempo e recursos.
  • Redução do tempo ocioso: inicie jobs de treinamento rapidamente acessando diretamente os dados no Cloud Storage, o que minimiza o tempo ocioso para GPUs e TPUs.
  • Alta capacidade de processamento: aproveite a escalonabilidade e o desempenho integrados do Cloud Storage, que é otimizado para cargas de trabalho de ML com leitura intensa usando GPUs ou TPUs.
  • Cache de arquivos local do cliente: acelere o treinamento com um cache local do cliente que agiliza leituras repetidas de arquivos. Essa aceleração pode ser ainda mais aprimorada quando usada com o SSD local de 6 TiB 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 de SSD para buckets do Cloud Storage. O Anywhere Cache foi desenvolvido para acelerar aplicativos com uso intensivo de dados, oferecendo uma camada local de acesso rápido para dados lidos com frequência em uma zona específica.

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

  • Capacidade acelerada: escalone automaticamente a capacidade do cache e a largura de banda para oferecer alta capacidade, excedendo as cotas regionais de largura de banda, 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 Anywhere Cache 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 alta performance projetada para acelerar cargas de trabalho de IA e ML que exigem acesso somente leitura a grandes conjuntos de dados. O Hyperdisk ML aproveita a escalonabilidade e a disponibilidade do Colossus para equilibrar o desempenho no sistema de arquivos subjacente. O Hyperdisk ML é especialmente 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 a muitas VMs.

O Hyperdisk ML oferece os seguintes benefícios:

  • Serviço e escalonabilidade acelerados de modelos: escalonar verticalmente para milhares de nós simultâneos e alcance uma alta taxa de transferência agregada, o que otimiza tempos de carregamento e 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 no Google Cloud e operações de leitura rápida para grandes conjuntos de dados compartilhados.
  • Melhoria do custo total de propriedade (TCO): reduza os custos com tempos ociosos menores da GPU, recursos de multiencadeamento e agrupamento de desempenho.
  • Acesso simultâneo somente leitura: reduza os custos compartilhando 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 desconectado de todas as VMs, exceto uma.

Soluções de armazenamento de parceiros

Para requisitos de carga de trabalho que os serviços de armazenamento anteriores não atendem, use as seguintes soluções de parceiros, disponíveis no Cloud Marketplace:

Essas soluções de parceiros não são gerenciadas pelo Google. Você precisa gerenciar as tarefas de implantação e operacionais para garantir a integração e o desempenho ideais na sua infraestrutura.

Análise comparativa

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

Managed Lustre Cloud Storage Hyperdisk ML
Capacidade 18 TiB a 8 PiB Não há limite inferior ou superior. 4 GiB a 64 TiB
Escalonamento Não escalonável Escala automaticamente com base no uso. Escalonar verticalmente
Compartilhamento Montável em várias VMs do Compute Engine e clusters do GKE.
  • Leitura/gravação de qualquer lugar.
  • Integração com o Cloud CDN e CDNs de terceiros.
Compatível
Opção de chave de criptografia Google-owned and Google-managed encryption keys
  • 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
Persistência Ciclo de vida da instância do Managed Lustre. Vida útil do bucket Duração do disco
Disponibilidade Zonal Zonal
Desempenho Escalonamento linear com capacidade provisionada Taxas de leitura e gravação de escalonamento automático e redistribuição dinâmica de carga Armazenamento permanente com escalonamento dinâmico
Gerenciamento Totalmente gerenciado e compatível com POSIX Totalmente gerenciado Formatar e ativar manualmente

Ferramentas de transferência de dados

Nesta seção, descrevemos as opções para mover dados entre serviços de armazenamento noGoogle Cloud. Ao executar tarefas de IA e ML, talvez seja necessário mover seus 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 Serviço de transferência do Cloud Storage, você consegue copiar os dados com segurança do local de origem para o local 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.
  • Transfira 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 estão indisponíveis, limitadas ou caras.
  • 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 informações sobre 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 fases principais: preparar, treinar, disponibilizar e arquivar. Cada uma dessas etapas tem requisitos de armazenamento exclusivos, e escolher a solução certa pode afetar significativamente o desempenho, o custo e a eficiência operacional. Uma abordagem híbrida ou otimizada localmente permite adaptar as opções de armazenamento às demandas específicas de cada etapa da carga de trabalho de IA e ML. No entanto, se suas prioridades forem gerenciamento unificado e facilidade de operação, uma abordagem globalmente simplificada que usa uma solução consistente em todas as etapas pode ser benéfica para cargas de trabalho de qualquer escala. A eficácia da opção 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 seções a seguir fornecem detalhes sobre as principais fases 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 o upload de dados brutos de várias fontes para seu ambiente de nuvem e a transformação dos dados em um formato utilizável para treinar seu modelo de IA e ML. Esse processo inclui tarefas como limpeza, tratamento e conversão de tipos de dados para garantir a compatibilidade com o framework de IA e ML escolhido.

O Cloud Storage é adequado para a fase de preparação devido à 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ços doGoogle Cloud , permitindo que você aproveite as possíveis otimizações para treinamento 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, é possível aumentar o número de processadores lógicos 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 seu modelo de IA e ML aprende com os dados fornecidos. Essa etapa envolve dois aspectos principais com requisitos distintos: carregamento eficiente de dados para acessar dados de treinamento e criação de checkpoints confiável para salvar o progresso do modelo. As seções a seguir fornecem recomendações e os fatores a serem considerados para escolher opções de armazenamento adequadas para carregamento de dados e criação de pontos de verificação.

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 suas GPUs e TPUs não estejam inativas e que 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 a performance e o custo do carregamento de dados, considere os seguintes fatores:

  • Tamanho do conjunto de dados: o tamanho do corpus geral de dados de treinamento e o tamanho de cada conjunto de dados de treinamento.
  • Padrões de acesso: qual das seguintes opções 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ção de leitura.
Managed Lustre 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 de 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 as cargas de trabalho de IA e ML que exigem operações de E/S de baixa latência e taxa de transferência extremamente alta 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 plataforma de computação, é possível 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 seus gastos de armazenamento de longo prazo exportando os dados para uma classe do Cloud Storage de custo mais baixo.

Cloud Storage para carregamento de dados

Em geral, escolha o Cloud Storage para carregar seus dados se alguma das condições a seguir 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.
  • Você prioriza 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 grandes conjuntos de dados, 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 uma capacidade de processamento de mais de 1 TB/s, o Anywhere Cache acelera as velocidades de leitura armazenando dados em cache e escalonando além das cotas de largura de banda regionais. 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.

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, ingerir 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 desempenho de checkpoint e restauração, considere os seguintes fatores:

  • Tamanho do modelo: o número de parâmetros no seu modelo de IA e ML. O tamanho do modelo afeta diretamente o tamanho dos arquivos de checkpoint, que podem variar de GiB a TiB.
  • Frequência de checkpoint: a frequência com que o modelo salva checkpoints. Salvar com frequência oferece melhor tolerância a falhas, mas aumenta os custos de armazenamento e pode afetar a velocidade de 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 tamanho do ponto de verificação, desempenho do armazenamento e largura de banda da rede.
Managed Lustre para criação de pontos de verificação

Escolha o Managed Lustre para fazer checkpointing se alguma das condições a seguir for aplicável:

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

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

Cloud Storage para criação de 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.
  • Você prioriza a durabilidade dos dados e a alta disponibilidade em vez do desempenho do armazenamento.

Para melhorar o desempenho do checkpointing, use o Cloud Storage FUSE com namespaces hierárquicos ativados para aproveitar a operação de renomeação atômica rápida e salvar pontos de verificação 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 as latências de gravação de finalização de uploads parados, o Cloud Storage FUSE tenta uma nova tentativa após 10 segundos.

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. Nessa fase, o objetivo é executar o modelo em produção. O modelo é muito menor que os dados de treinamento. Portanto, é possível replicar e escalonar o modelo em várias instâncias. Ao veicular dados, é importante ter alta disponibilidade e proteção contra falhas zonais e regionais. Portanto, garanta 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 no 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 possa minimizar o tempo ocioso da GPU ou 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 ocioso 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 exibição, é importante otimizar o carregamento rápido de modelos.

Para otimizar o desempenho 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 descarregamento frequentes consomem recursos computacionais e aumentam a latência.
  • Número de nós de exibição: quantos nós vão atender seu modelo. Mais nós geralmente reduzem a latência e aumentam a capacidade, mas também aumentam os custos de infraestrutura.

Managed Lustre para veiculação

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

  • Sua carga de trabalho de treinamento e checkpointing usa o Managed Lustre.
  • 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 Lustre gerenciado para treinamento e criação de pontos de verificação, ele pode ser uma opção econômica e de alta performance para veicular seus modelos. O Lustre gerenciado oferece alta capacidade de processamento por VM e capacidade de processamento agregada do cluster, 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.

Cloud Storage para 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 a 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 os downloads paralelos ativados para que partes do modelo sejam buscadas em paralelo.

Para veicular 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 alta performance 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 veicular seu modelo se alguma das seguintes condições se aplicar:

  • 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 compatível.
  • Seu pipeline pode gerenciar volumes somente leitura para armazenar modelos.

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

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 esses itens estejam disponíveis quando precisar deles.

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

  • Acesso frequente a dados: Standard Storage
  • Acesso mensal a dados: Nearline Storage
  • Acesso trimestral a dados: Coldline Storage
  • Acesso anual a dados: Archive Storage

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 não tiver certeza da frequência com que você 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

Autora: Samantha He | Redatora técnica

Outros colaboradores: