Otimize cargas de trabalho de IA e ML com o Cloud Storage FUSE

Last reviewed 2025-04-09 UTC

Este documento apresenta arquiteturas de referência que mostram como usar o FUSE do Cloud Storage para otimizar o desempenho de cargas de trabalho de IA e ML no Google Kubernetes Engine (GKE).

O público-alvo deste documento inclui arquitetos e profissionais técnicos que projetam, provisionam e gerenciam o armazenamento para as cargas de trabalho de IA e ML no Google Cloud. Para seguir este documento, é necessário ter conhecimento do ciclo de vida, processos e recursos de ML.

O Cloud Storage FUSE é um adaptador FUSE de código aberto que permite ativar buckets do Cloud Storage como sistemas de arquivos locais. Essa configuração permite que os aplicativos interajam perfeitamente com buckets de armazenamento baseados na nuvem usando a semântica padrão de sistemas de arquivos. O Cloud Storage FUSE permite aproveitar a escalabilidade e a relação custo-benefício do Cloud Storage.

Arquitetura

Dependendo dos seus requisitos de desempenho, disponibilidade e recuperação de desastres (DR, na sigla em inglês), você pode escolher um dos seguintes Google Cloud arquétipos de implantação para executar cargas de trabalho de IA e ML em Google Cloud:

  • Regional: seus aplicativos são executados de forma independente em uma única Google Cloud região. Recomendamos esse arquétipo de implantação para aplicativos que não são essenciais, mas precisam ser robustos contra interrupções de zona.
  • Multirregional: seus aplicativos são executados de maneira independente em duas ou mais Google Cloud regiões, no modo ativo-ativo ou ativo-passivo. Esse arquétipo de implantação é ideal para cenários de DR. Recomendamos esse arquétipo de implantação para aplicativos essenciais que precisam de resiliência contra interrupções e desastres regionais. Implantações duplas ou multirregionais podem reduzir a latência e melhorar a capacidade de processamento com uma proximidade maior dos recursos.

O arquétipo de implantação escolhido informa os Google Cloud produtos e recursos necessários para sua arquitetura. A arquitetura multirregional usa o Anywhere Cache. 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.

As guias a seguir fornecem arquiteturas de referência para os arquétipos de implantação regional e multirregional:

Regional

O diagrama a seguir mostra um exemplo de arquitetura regional que usa o Cloud Storage FUSE para otimizar o desempenho dos fluxos de trabalho de treinamento e exibição do modelo:

Arquitetura regional que usa o Cloud Storage FUSE para otimizar cargas de trabalho de IA e ML.

Essa arquitetura inclui os seguintes componentes:

  • Cluster do GKE: o GKE gerencia os nós de computação em que os processos de treinamento e serviço do modelo de IA e ML são executados. O GKE gerencia a infraestrutura subjacente dos clusters do Kubernetes, incluindo o plano de controle, os nós e todos os componentes do sistema.
  • Programador do Kubernetes: o plano de controle do GKE programa cargas de trabalho e gerencia o ciclo de vida, o escalonamento e os upgrades delas. O agente do nó do Kubernetes (kubelet), que não aparece no diagrama, se comunica com o plano de controle. O agente kubelet é responsável por iniciar e executar contêineres programados nos nós do GKE. Para mais informações sobre o programador, consulte Orquestração de IA/ML no GKE.
  • Rede de nuvem privada virtual (VPC): todos os Google Cloud recursos na arquitetura usam uma única rede VPC. Dependendo dos seus requisitos, é possível criar uma arquitetura que use várias redes. Para mais informações sobre como configurar uma rede VPC para o Cloud Storage FUSE, consulte Como decidir se você quer criar várias redes VPC.
  • Cloud Load Balancing: nesta arquitetura, o Cloud Load Balancing distribui de maneira eficiente as solicitações de inferência recebidas dos usuários do aplicativo para os contêineres de serviço no cluster do GKE. Para mais informações, consulte Como funciona o balanceamento de carga do GKE.
  • Unidade de processamento gráfico (GPU) ou Unidades de Processamento de Tensor (TPUs): GPUs e TPUs são aceleradores de máquina especializados que melhoram o desempenho de cargas de trabalho de IA e ML. Para informações sobre como escolher um tipo de processador adequado, consulte Opções de acelerador mais adiante neste documento.
  • Cloud Storage: o Cloud Storage oferece armazenamento persistente, escalonável e econômico para cargas de trabalho de IA e ML. O Cloud Storage serve como repositório central para seus conjuntos de dados de treinamento brutos, pontos de verificação do modelo e modelos treinados finais.
  • Cloud Storage FUSE com cache de arquivos ativado: o Cloud Storage FUSE permite montar um bucket do Cloud Storage como um sistema de arquivos local. O cache de arquivos no Cloud Storage FUSE é um diretório na máquina local que armazena arquivos acessados com frequência dos buckets do Cloud Storage. O driver CSI do FUSE do Cloud Storage gerencia a integração do FUSE do Cloud Storage com a API Kubernetes para consumir buckets do Cloud Storage como volumes.

As seções a seguir descrevem o fluxo de trabalho nas cargas de trabalho de treinamento e veiculação da arquitetura.

Multirregional

O diagrama a seguir mostra um exemplo de arquitetura multirregional que usa o Cloud Storage FUSE e o Anywhere Cache para otimizar o desempenho dos fluxos de trabalho de treinamento e exibição de modelos:

Arquitetura multirregional que usa o Cloud Storage FUSE para otimizar cargas de trabalho de IA e ML.

Essa arquitetura inclui os seguintes componentes:

  • Cluster do GKE: o GKE gerencia os nós de computação em que os processos de treinamento e disponibilização de modelos de IA e ML são executados. O GKE gerencia a infraestrutura subjacente dos clusters do Kubernetes, incluindo o plano de controle, os nós e todos os componentes do sistema.
  • Programador do Kubernetes: o plano de controle do GKE programa cargas de trabalho e gerencia o ciclo de vida, o escalonamento e os upgrades delas. O agente do nó do Kubernetes (kubelet), que não aparece no diagrama, se comunica com o plano de controle. O agente kubelet é responsável por iniciar e executar contêineres programados nos nós do GKE. Para mais informações sobre o programador, consulte Orquestração de IA/ML no GKE.
  • Rede de nuvem privada virtual (VPC): todos os Google Cloud recursos na arquitetura usam uma única rede VPC. Dependendo dos seus requisitos, é possível criar uma arquitetura que use várias redes. Para mais informações sobre como configurar uma rede VPC para o Cloud Storage FUSE, consulte Como decidir se você quer criar várias redes VPC.
  • Cloud DNS: em arquiteturas multirregionais, o Cloud DNS direciona o tráfego para os balanceadores de carga para garantir o desempenho e a disponibilidade ideais com o roteamento anycast. As solicitações são automaticamente encaminhadas para o local mais próximo, o que reduz a latência e melhora o desempenho das buscas de nomes autoritativos para seus usuários. Para informações sobre princípios gerais e práticas recomendadas, consulte Práticas recomendadas do Cloud DNS.
  • Cloud Load Balancing: nessa arquitetura, o Cloud Load Balancing distribui de maneira eficiente as solicitações de inferência recebidas dos usuários do aplicativo para os contêineres de serviço no cluster do GKE. Para mais informações, consulte Noções básicas sobre o balanceamento de carga do GKE.
  • Unidade de processamento gráfico (GPU) ou Unidades de Processamento de Tensor (TPUs): GPUs e TPUs são aceleradores de máquina especializados que melhoram o desempenho de cargas de trabalho de IA e ML. Para informações sobre como escolher um tipo de processador adequado, consulte Opções de acelerador mais adiante neste documento.
  • Cloud Storage: o Cloud Storage oferece armazenamento persistente, escalonável e econômico para cargas de trabalho de IA e ML. O Cloud Storage serve como repositório central para seus conjuntos de dados de treinamento brutos, pontos de verificação do modelo e modelos treinados finais.
  • Cloud Storage FUSE: o Cloud Storage FUSE permite montar um bucket do Cloud Storage como um sistema de arquivos local. O driver CSI do FUSE do Cloud Storage, que não é mostrado no diagrama, gerencia a integração do FUSE do Cloud Storage com a API Kubernetes para consumir buckets do Cloud Storage como volumes.
  • Anywhere Cache: é um recurso do Cloud Storage que oferece até 1 PiB de cache zonal de somente leitura com suporte a SSD para buckets do Cloud Storage. Durante o treinamento e a veiculação, o Anywhere Cache ajuda você a alcançar uma capacidade de processamento que excede 1 TB/s ao dimensionar a capacidade e a largura de banda do cache.

As seções a seguir descrevem o fluxo de trabalho nas cargas de trabalho de treinamento e veiculação da arquitetura.

Carga de trabalho de treinamento

Nas arquiteturas anteriores, estas são as etapas do fluxo de dados durante o treinamento do modelo:

  1. Carregar dados de treinamento para o Cloud Storage: os dados de treinamento são enviados para um bucket do Cloud Storage com espaços de nomes hierárquicos ativados. O Cloud Storage serve como um repositório central escalonável.
  2. Carregar dados de treinamento e executar jobs de treinamento no GKE: o bucket do Cloud Storage montado nos pods do GKE permite que os aplicativos de treinamento carreguem e acessem os dados de treinamento de maneira eficiente usando a interface FUSE. Os nós do GKE executam o processo de treinamento do modelo usando o cache de arquivos montado como a origem de dados. Seus aplicativos de treinamento alimentam continuamente dados de treinamento para os aceleradores de máquina para realizar os cálculos complexos necessários para o treinamento do modelo. Dependendo dos requisitos da carga de trabalho, é possível usar GPUs ou TPUs. Para saber como escolher um tipo de processador adequado, consulte Opções de acelerador mais adiante neste documento.
  3. Salvamento e restauração de checkpoints e modelos:

    • Salvar checkpoints ou modelo: durante o treinamento, salve checkpoints de forma assíncrona em intervalos frequentes em um bucket separado do Cloud Storage. Os pontos de verificação capturam o estado do modelo com base em métricas ou intervalos definidos.
    • Restaurar checkpoints ou modelo: quando a carga de trabalho de treinamento exige que você restaure um checkpoint ou dados de modelo, é necessário localizar o recurso que você quer restaurar no Cloud Storage. É possível usar o ponto de verificação ou modelo restaurado para retomar o treinamento, ajustar os parâmetros ou avaliar o desempenho em um conjunto de validação.

Como disponibilizar carga de trabalho

Nas arquiteturas anteriores, estas são as etapas do fluxo de dados durante a veiculação do modelo:

  1. Carregar modelo: depois que o treinamento for concluído, os pods vão carregar o modelo treinado usando o Cloud Storage FUSE com downloads paralelos ativados. Os downloads paralelos aceleram o carregamento do modelo buscando as partes dele em paralelo no Cloud Storage. Para reduzir significativamente os tempos de carregamento do modelo, o processo usa o diretório de cache como um buffer de pré-busca.
  2. Solicitação de inferência: os usuários do aplicativo enviam solicitações de inferência do aplicativo de IA e ML pelo serviço Cloud Load Balancing. O Cloud Load Balancing distribui as solicitações recebidas entre os contêineres de serviço no cluster do GKE. Essa distribuição garante que nenhum contêiner seja sobrecarregado e que as solicitações sejam processadas de forma eficiente.
  3. Resposta de envio: os nós processam a solicitação e geram uma previsão. Os contêineres de veiculação enviam as respostas de volta pelo Cloud Load Balancing e, em seguida, para os usuários do aplicativo.

Produtos usados

As arquiteturas de referência usam os seguintes Google Cloud produtos:

  • Google Kubernetes Engine (GKE): um serviço do Kubernetes que pode ser usado para implantar e operar aplicativos conteinerizados em escala usando a infraestrutura do Google.
  • Cloud Storage: um armazenamento de objetos de baixo custo e sem limite para diversos tipos de dados. Os dados podem ser acessados de dentro e de fora do Google Cloude são replicados entre locais para redundância.
  • Nuvem privada virtual (VPC): um sistema virtual que oferece funcionalidade de rede global e escalonável para suas cargas de trabalho Google Cloud . A VPC inclui peering de rede VPC, Private Service Connect, acesso a serviços particulares e VPC compartilhada.
  • Cloud Load Balancing: um portfólio de balanceadores de carga globais, regionais, escalonáveis, globais e de alto desempenho.
  • Cloud DNS: um serviço que oferece DNS resiliente e de baixa latência na rede mundial do Google.

Caso de uso

Para cargas de trabalho de IA e ML que exigem grande capacidade de armazenamento e acesso a arquivos de alto desempenho, recomendamos usar uma arquitetura criada com base no Cloud Storage FUSE. Com um planejamento adequado, é possível alcançar mais de 1 TB/s de throughput com essas arquiteturas. Além disso, o Cloud Storage FUSE permite aproveitar um repositório de armazenamento central que serve como uma única fonte de verdade para todos os estágios do fluxo de trabalho de IA e ML. Essa abordagem pode ser usada para qualquer carga de trabalho, independente da escala ou do tamanho.

Para essas cargas de trabalho, o Cloud Storage FUSE oferece os seguintes benefícios:

  • Acesso simplificado a dados: acesse dados de treinamento e checkpoints com frameworks de IA e ML, como Connector for PyTorch, JAX e TensorFlow. O acesso aos dados por meio de frameworks de IA e ML elimina a necessidade de refatorar o código.
  • Inicialização acelerada: elimine a necessidade de fazer o download de grandes conjuntos de dados para recursos de computação usando o Cloud Storage FUSE para acessar dados diretamente no Cloud Storage. Esse acesso direto aos dados leva a tempos de inicialização mais rápidos dos jobs.
  • Eficiência de custos: otimize custos usando a escalabilidade e a eficiência de custos inerentes do Cloud Storage.

O FUSE do Cloud Storage não é adequado para cargas de trabalho sensíveis à latência que contêm arquivos de menos de 50 MB ou que exigem menos de 1 milissegundo de latência para E/S aleatória e acesso a metadados.

Para cargas de trabalho de checkpoint e reinicialização ou treinamento com uso intensivo de dados, considere uma alternativa de armazenamento durante a fase de treinamento intensivo de E/S.

Alternativas de design

As seções a seguir apresentam abordagens de design alternativas que podem ser consideradas para seu aplicativo de IA e ML em Google Cloud.

Alternativa de plataforma

Em vez de hospedar o treinamento do modelo e o fluxo de trabalho de exibição no GKE, considere usar o Compute Engine com o Slurm. O Slurm é um gerenciador de recursos e cargas de trabalho de código aberto e altamente configurável. O uso do Compute Engine com o Slurm é particularmente adequado para treinamento e simulações de modelos em grande escala. Recomendamos o uso do Compute Engine com o Slurm se você precisar integrar a propriedade intelectual (PI) de IA e ML em um ambiente escalonável com a flexibilidade e o controle necessários para otimizar o desempenho de cargas de trabalho especializadas. Para mais informações sobre como usar o Compute Engine com o Slurm, consulte Implantar um cluster de HPC com o Slurm.

No Compute Engine, você provisiona e gerencia máquinas virtuais (VMs), o que oferece controle granular sobre tipos de instâncias, armazenamento e rede. É possível adaptar sua infraestrutura às suas necessidades exatas, incluindo a seleção de tipos de máquinas VM específicos. Para saber como usar as opções de linha de comando do Cloud Storage FUSE no Compute Engine, consulte CLI do gcsfuse e Arquivo de configuração do Cloud Storage FUSE. Você também pode usar a família de máquinas otimizadas para aceleradores para melhorar o desempenho com suas cargas de trabalho de IA e ML. Para mais informações sobre as famílias de tipos de máquinas disponíveis no Compute Engine, consulte o Guia de comparação e recursos para famílias de máquinas.

O Slurm oferece uma opção poderosa para gerenciar cargas de trabalho de IA e ML e permite controlar a configuração e o gerenciamento dos recursos computacionais. Para usar essa abordagem, você precisa ter experiência em administração do Slurm e gerenciamento de sistemas Linux.

Opções do acelerador

Os aceleradores de máquina são processadores especializados projetados para acelerar os cálculos necessários para cargas de trabalho de IA e ML. Você pode escolher GPUs ou TPUs.

  • Os aceleradores de GPU oferecem excelente desempenho para uma ampla gama de tarefas, incluindo renderização gráfica, treinamento de aprendizado profundo e computação científica. Google Cloud tem uma ampla seleção de GPUs para atender a uma variedade de desempenho e preços. As GPUs geralmente incluem SSDs locais em cada configuração de máquina, que podem ser usadas pelo Cloud Storage FUSE como um diretório de cache. Para informações sobre modelos e preços de GPUs, consulte Preços de GPUs.
  • As TPUs são aceleradores de IA personalizados, otimizados para treinamento e inferência de grandes modelos de IA. Eles são ideais para diversos casos de uso, como chatbots, geração de código, geração de conteúdo de mídia, fala sintética, serviços de visão, mecanismos de recomendação e modelos de personalização. Para mais informações sobre modelos e preços de TPU, consulte Preços de TPU.

Alternativas de armazenamento

O Cloud Storage FUSE fornece um sistema de arquivos conveniente que permite aproveitar a escalabilidade e a relação custo-benefício do Cloud Storage. No entanto, o Cloud Storage FUSE não é ideal para cargas de trabalho que exigem baixa latência para leituras de arquivos pequenos ou para cargas de trabalho que exigem uma solução de armazenamento totalmente compatível com POSIX. Para esses casos de uso, recomendamos as seguintes alternativas de armazenamento:

  • Google Cloud Hyperdisk ML: uma solução de armazenamento em blocos de alto desempenho, ideal para cargas de trabalho com clusters de maior escala de centenas de nós com conjuntos de dados somente leitura menores, que variam de centenas de GB a 64 TB. O Hyperdisk ML tem um throughput maior do que o Cloud Storage e pode ser anexado a várias VMs no modo somente leitura. O modo de acesso Kubernetes ReadOnlyMany permite que o Hyperdisk ML acelere o carregamento de pesos de modelo em comparação com o carregamento diretamente de um registro de modelo. Para mais informações sobre como usar o Hyperdisk ML em cargas de trabalho de IA e ML, consulte Acelerar o carregamento de dados de IA/ML com o Hyperdisk ML.
  • Connector for PyTorch: um produto de código aberto no Cloud Storage que é ideal para cargas de trabalho que usam o PyTorch. O conector para PyTorch otimiza a carga de trabalho de treinamento ao transmitir dados diretamente dos buckets do Cloud Storage e eliminar a necessidade de armazenamento intermediário. Esse acesso direto e otimização oferecem desempenho significativamente melhor do que chamadas de API diretas ao Cloud Storage para carregamento, treinamento e verificação de dados.

Embora as opções de armazenamento alternativas possam oferecer vantagens de desempenho para certas cargas de trabalho de IA e ML, é crucial avaliar suas necessidades de latência, throughput e capacidade de armazenamento.

Para uma comparação abrangente das opções de armazenamento para cargas de trabalho de IA e ML, consulte Projetar armazenamento para cargas de trabalho de IA e ML no Google Cloud.

Considerações sobre o design

Esta seção apresenta orientações sobre as práticas recomendadas e as considerações de design para configurar o Cloud Storage FUSE para segurança, confiabilidade, custo e desempenho. Embora as recomendações aqui não sejam exaustivas, elas abordam considerações importantes para maximizar os benefícios do Cloud Storage FUSE no seu ambiente. Dependendo das suas necessidades específicas e das características da carga de trabalho, talvez seja necessário considerar outras opções de configuração e compensações.

As recomendações de design a seguir destacam as configurações para refinar a forma como você implanta o Cloud Storage FUSE no GKE. A maioria das opções do Cloud Storage FUSE é configurada com opções de montagem. Para mais informações sobre as opções de linha de comando do Cloud Storage FUSE e como usá-las, consulte CLI do gcsfuse e Otimizar o driver CSI do Cloud Storage FUSE para a performance do GKE.

segurança, privacidade e conformidade

Esta seção descreve considerações para seus workloads de IA e ML no Google Cloud que atendam aos seus requisitos de segurança, privacidade e conformidade.

Considerações sobre o GKE

No modo de operação Autopilot, o GKE pré-configura o cluster e gerencia nós de acordo com as práticas recomendadas de segurança. Assim, você pode se concentrar na segurança específica da carga de trabalho. Para ver mais informações, consulte os seguintes tópicos:

Para garantir o controle de acesso aprimorado para seus aplicativos executados no GKE, use o Identity-Aware Proxy (IAP). O IAP se integra ao recurso Ingress do GKE e garante que apenas usuários autenticados com o papel correto de gerenciamento de identidade e acesso (IAM) possam acessar os aplicativos. Para mais informações, consulte Como ativar o IAP para GKE.

Por padrão, os dados no GKE são criptografados em repouso e em trânsito usando Google-owned and Google-managed encryption keys. Como uma camada extra de segurança para dados sensíveis, é possível criptografar dados na camada do aplicativo usando uma chave que você tem e gerencia com o Cloud Key Management Service (Cloud KMS). Para mais informações, consulte Criptografar secrets na camada do aplicativo.

Se você usa um cluster padrão do GKE, é possível usar os seguintes recursos extras de criptografia de dados:

Considerações sobre o Cloud Storage

Por padrão, os dados armazenados no Cloud Storage são criptografados usando Google-owned and Google-managed encryption keys. Se necessário, use chaves de criptografia gerenciadas pelo cliente (CMEKs) ou suas próprias chaves gerenciadas usando um método de gerenciamento externo, como chaves de criptografia fornecidas pelo cliente (CSEKs). Para mais informações, consulte Opções de criptografia de dados.

O Cloud Storage oferece dois métodos para conceder aos usuários acesso aos buckets e objetos: IAM e listas de controle de acesso (ACLs). Na maioria dos casos, recomendamos usar o IAM, que permite conceder permissões no nível do bucket e do projeto. Para mais informações, consulte Visão geral do controle de acesso.

Os dados de treinamento carregados pelo Cloud Storage podem incluir dados sensíveis. Para proteger esses dados, use a Proteção de Dados Sensíveis para descobrir, classificar e desidentificar os dados. Para separar os treinamentos e serviços de cargas de trabalho, salve o modelo e os checkpoints em buckets separados do Cloud Storage. Esse isolamento ajuda a evitar a exposição acidental de informações sensíveis do seu conjunto de dados de treinamento durante a veiculação. Para mais informações, consulte Como usar a Proteção de Dados Sensíveis com o Cloud Storage.

Se você tiver requisitos de residência de dados, o Cloud Storage pode ajudar a atender a eles. Os dados são armazenados ou replicados nas regiões especificadas.

Considerações sobre o Cloud Storage FUSE

Quando você ativa o armazenamento em cache, o Cloud Storage FUSE armazena arquivos persistentes do seu bucket do Cloud Storage em um formato não criptografado no diretório especificado. O Cloud Storage expõe todos os arquivos a qualquer usuário ou processo com acesso ao diretório. Para reduzir esses riscos e melhorar a segurança, a camada do kernel FUSE restringe o acesso ao sistema de arquivos para o usuário que montou o sistema. Essa restrição nega o acesso a outros usuários, incluindo o usuário raiz, mesmo que as permissões de inode sejam mais permissivas.

No entanto, há casos de uso em que pode ser necessário substituir as restrições de acesso padrão. Por exemplo, em uma carga de trabalho de treinamento de IA e ML distribuída, em que vários nós precisam acessar e compartilhar pontos de verificação armazenados no Cloud Storage, talvez seja necessário permitir um acesso mais amplo. Nesses casos, é possível substituir a restrição padrão usando a opção -o allow_other. No entanto, se você ampliar o acesso aos seus arquivos, poderá expor expor seus dados a usuários não autorizados. Portanto, tenha cuidado ao usar essa opção.

Por padrão, todos os inodes em um sistema de arquivos FUSE do Cloud Storage são de propriedade do usuário que montou o sistema de arquivos. Embora esses padrões sejam adequados para muitos casos, é possível personalizar um contexto de segurança para o pod. Para informações sobre a personalização de um contexto de segurança, consulte Segurança e permissões.

Confiabilidade

Para garantir uma operação confiável, o Cloud Storage FUSE incorpora novas tentativas automáticas para lidar com possíveis interrupções e manter a consistência dos dados. As solicitações com falha são automaticamente repetidas com espera exponencial no Cloud Storage. A espera exponencial aumenta gradualmente o tempo entre as novas tentativas. Esse mecanismo integrado ajuda seu aplicativo a superar problemas de rede temporários ou a indisponibilidade temporária do Cloud Storage.

Embora o Cloud Storage FUSE ofereça muitas vantagens, considere o seguinte:

  • Gravações simultâneas: quando vários usuários tentam modificar um arquivo, a operação última gravação vence tem precedência e todas as operações de gravação anteriores são perdidas. Para manter a integridade dos dados, recomendamos que um único objeto seja modificado por apenas uma fonte a qualquer momento.
  • Persistência do cache: quando você desmonta ou reinicia o bucket, os caches não são mantidos. Para evitar possíveis problemas de segurança, depois de desmontar ou reiniciar o bucket, é essencial que você exclua manualmente o diretório de cache de arquivos.
  • Processos com caches dedicados: embora o Cloud Storage FUSE ofereça suporte ao acesso simultâneo para processamento paralelo eficiente, é importante lembrar que os caches são específicos para cada processo do Cloud Storage FUSE. Portanto, o mesmo diretório de cache não deve ser usado por diferentes processos do Cloud Storage FUSE executados na mesma máquina ou em máquinas diferentes.

Ao criar a arquitetura para a carga de trabalho, considere também as práticas recomendadas gerais e as recomendações fornecidas no Framework de arquitetura bem estruturada: pilar de confiabilidade.

Otimização de custos

Esta seção contém orientações para ajudar você a otimizar o custo de configuração e operação do fluxo de trabalho de IA e ML no Google Cloud.

Considerações sobre o GKE

No modo Autopilot, o GKE otimiza a eficiência da infraestrutura do cluster com base nos requisitos da carga de trabalho. Para controlar custos, não é necessário monitorar constantemente a utilização de recursos nem gerenciar a capacidade.

Se você conseguir prever o uso de CPU, memória e armazenamento temporário do seu cluster do Autopilot, poderá receber descontos por uso contínuo. Para reduzir o custo da execução do aplicativo, use VMs spot nos nós do GKE. As VMs spot têm um preço menor do que as VMs padrão, mas não oferecem garantia de disponibilidade.

Para otimizar o custo e a performance com um gerenciamento eficiente, use o Dynamic Workload Scheduler. O Dynamic Workload Scheduler é um gerenciador de recursos e programador de jobs que ajuda a melhorar o acesso a recursos de IA e ML. O Dynamic Workload Scheduler programa todos os aceleradores simultaneamente e pode ser executado fora do horário de pico com o gerenciamento de capacidade do acelerador definido. Ao programar jobs de forma estratégica, o Dynamic Workload Scheduler ajuda a maximizar a utilização do acelerador, reduzir o tempo ocioso e, por fim, otimizar seus gastos com a nuvem.

Para mais informações sobre orientações de otimização de custos, consulte Práticas recomendadas para executar aplicativos do Kubernetes otimizados para custo no GKE.

Considerações sobre o Cloud Storage

Suas necessidades de armazenamento de IA e ML podem ser dinâmicas. Por exemplo, talvez você precise de uma capacidade de armazenamento significativa para os dados de treinamento, mas a capacidade necessária diminui para a veiculação, em que você armazena principalmente dados de modelos e checkpoints. Para controlar os custos, recomendamos ativar o Gerenciamento do ciclo de vida de objetos e a Classe automática.

O gerenciamento do ciclo de vida de objetos permite mover automaticamente dados mais antigos ou não utilizados para classes de armazenamento mais baratas ou até mesmo excluí-los com base nas regras definidas.

O recurso de classe automática move dados automaticamente entre classes de armazenamento com base nos padrões de acesso. Esse recurso garante o melhor equilíbrio entre desempenho e custo.

Considerações sobre o Cloud Storage FUSE

As cobranças padrão do Cloud Storage se aplicam a operações de armazenamento, metadados e tráfego de rede gerados pelas suas atividades de FUSE. Não há custo extra para usar o Cloud Storage FUSE. Para mais informações sobre operações comuns do Cloud Storage FUSE e como elas são mapeadas para operações do Cloud Storage, consulte o mapeamento de operações.

Para otimizar os custos do seu diretório de cache, use a capacidade da máquina provisionada, incluindo SSDs locais, discos permanentes ou dados na memória para sistemas de arquivos temporários. Ao usar a capacidade da máquina atual, você pode evitar cobranças de recursos de armazenamento adicionais. Além disso, maximizar as ocorrências em cache pode reduzir significativamente os custos do Cloud Storage, porque os dados veiculados localmente não geram cobranças de operação nem de saída de rede.

Para mais informações sobre as cobranças, consulte Preços do Cloud Storage.

Ao criar a arquitetura para a carga de trabalho, considere também as práticas recomendadas gerais e as recomendações fornecidas no Framework de arquitetura bem estruturada: pilar de otimização de custos.

Otimização de desempenho

O Cloud Storage FUSE foi projetado para fornecer acesso eficiente aos dados no Cloud Storage para suas cargas de trabalho de IA e ML. No entanto, solicitações de metadados frequentes podem reduzir a performance, especialmente em clusters de grande escala. Para mais informações sobre como melhorar o desempenho, consulte Otimizar o driver CSI do Cloud Storage FUSE para o desempenho do GKE.

Para otimizar o desempenho, considere as seguintes configurações:

  • Ativar namespaces hierárquicos: para melhorar o acesso e a organização de dados, crie buckets do Cloud Storage com namespaces hierárquicos ativados. Os namespaces hierárquicos permitem organizar dados em uma estrutura de sistema de arquivos, o que melhora o desempenho, garante a consistência e simplifica o gerenciamento de cargas de trabalho de IA e ML. Os namespaces hierárquicos permitem QPS iniciais mais altos e renomeações atômicas rápidas de diretórios.
  • Ativar o armazenamento em cache de arquivos: o armazenamento em cache de arquivos acelera o acesso repetido aos dados de treinamento usando um diretório de nó local para armazenar em cache os arquivos lidos com frequência. A exibição de leituras repetidas de uma mídia de cache reduz a latência e minimiza as operações de retorno ao Cloud Storage. Em tipos de máquina GPU com um SSD local, o diretório SSD local é usado automaticamente. Para tipos de máquina que não incluem SSD local, como TPUs, use um diretório de disco de RAM, como /tmpfs.

    Para ativar o cache de arquivos, use as seguintes opções de montagem:

    • Para definir o valor do cache de arquivos utilizável como o limite de capacidade do cache, defina file-cache:max-size-mb: como -1.
    • Para definir o time to live (TTL) do cache de metadados como duração ilimitada e remoção com base no algoritmo usado menos recentemente (LRU, na sigla em inglês) depois que a capacidade máxima for alcançada, defina metadata-cache:ttl-secs: como -1.
  • Aumente os valores do cache de metadados: o Cloud Storage FUSE tem duas formas de cache de metadados que melhoram o desempenho de operações relacionadas a pesquisas de metadados: cache de estatísticas e cache de tipos.

    Para aumentar os valores do cache de metadados, defina as seguintes opções de montagem:

    • Para definir o valor do cache de estatísticas utilizável como limite de capacidade do cache, defina metadata-cache:stat-cache-max-size-mb: como -1.
    • Para definir o valor do cache de tipos utilizáveis como o limite de capacidade, defina metadata-cache:type-cache-max-size-mb: como -1.
    • Para evitar que os itens de metadados em cache expirem, com um valor padrão de 60 segundos, defina metadata-cache:ttl-secs: como -1. Os valores infinitos devem ser usados apenas para volumes somente leitura e nós com configurações de memória grandes.
  • Preencher o cache de metadados: o recurso de pré-busca de metadados permite que o driver CSI do Cloud Storage FUSE carregue proativamente metadados relevantes sobre os objetos no bucket do Cloud Storage nos caches do Cloud Storage FUSE. Essa abordagem reduz as chamadas para o Cloud Storage e é especialmente benéfica para aplicativos que acessam grandes conjuntos de dados com muitos arquivos, como cargas de trabalho de treinamento de IA e ML.

    Para pré-preencher o cache de metadados, ative a pré-busca de metadados para o volume específico. Defina o atributo de volume gcsfuseMetadataPrefetchOnMount como true.

  • Ativar o armazenamento em cache de lista: esse recurso otimiza diretórios e arquivos de listagem. Ele é particularmente benéfico para cargas de trabalho de treinamento de IA e ML, que muitas vezes envolvem acessar e listar diretórios inteiros repetidamente. O armazenamento em cache de lista oferece processos de treinamento altamente eficientes, reduzindo a necessidade de acessar repetidamente as listas de diretórios na memória do computador.

    Para ativar o armazenamento em cache de listas e evitar que os itens do cache da lista do kernel expirem, defina a opção de montagem file-system:kernel-list-cache-ttl-secs: como -1.

  • Ativar downloads paralelos: os downloads paralelos aceleram o carregamento inicial do modelo buscando vários blocos simultaneamente. Ativar downloads paralelos resulta em carregamento de modelo mais rápido e maior resposta durante a veiculação.

    Para ativar downloads paralelos, ative o cache de arquivos e defina a opção de montagem file-cache:enable-parallel-downloads: como true.

  • Aumente os limites do sidecar do GKE: para evitar que as restrições de recursos prejudiquem o desempenho, configure limites nos recursos do contêiner do sidecar, como consumo de CPU e memória. Se você usa um cache de SSD local, configure ephemeral-storage-limit como ilimitado. Essa configuração permite que o Cloud Storage FUSE use totalmente o armazenamento SSD local disponível para armazenamento em cache aprimorado.

  • Montagem somente leitura: como as cargas de trabalho de treinamento normalmente só precisam ler dados, configure o ponto de montagem como somente leitura para ter o melhor desempenho, especialmente quando você usa o armazenamento em cache de arquivos. Essa configuração também ajuda a maximizar os benefícios das otimizações em clusters de alta escala e a evitar possíveis inconsistências de dados.

Ao criar a arquitetura para a carga de trabalho, considere as práticas recomendadas gerais e as recomendações fornecidas no Framework bem estruturado: pilar de otimização de desempenho.

A seguir

Colaboradores

Autor: Samantha He | Redatora técnica

Outros colaboradores: