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

Last reviewed 2025-04-09 UTC

Neste documento, apresentamos arquiteturas de referência que mostram como usar o Cloud Storage FUSE 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 de cargas de trabalho de IA e ML no Google Cloud. Presumimos que você tenha uma compreensão do ciclo de vida, dos processos e dos recursos de ML.

O Cloud Storage FUSE é um adaptador do 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 baseado na nuvem usando a semântica padrão de sistema semelhante a arquivos. Com o Cloud Storage FUSE, você aproveita a escalonabilidade e a custo-benefício do Cloud Storage.

Arquitetura

Dependendo dos seus requisitos de desempenho, disponibilidade e recuperação de desastres (DR), é possível escolher um dos seguintes Google Cloud arquétipos de implantação para executar suas cargas de trabalho de IA e ML em Google Cloud:

  • Regional: os aplicativos são executados de maneira independente em uma única região Google Cloud. 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 da região. Implantações birregionais ou multirregionais podem reduzir a latência e melhorar a capacidade devido à proximidade 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 regionais e multirregionais:

Regional

No diagrama a seguir, mostramos um exemplo de arquitetura regional que usa o Cloud Storage FUSE para otimizar o desempenho dos fluxos de trabalho de treinamento de modelo e disponibilização de 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 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 de nó do Kubernetes (kubelet), que não é mostrado 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 da 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ê precisa criar várias redes VPC.
  • Cloud Load Balancing: nesta arquitetura, o Cloud Load Balancing distribui com eficiência as solicitações de inferência de entrada dos usuários do aplicativo para os contêineres de exibiçã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 das cargas de trabalho de IA e ML. Para mais informações sobre como escolher um tipo de processador apropriado, consulte Opções do acelerador neste documento.
  • Cloud Storage: o Cloud Storage oferece armazenamento permanente, escalonável e econômico para suas cargas de trabalho de IA e ML. O Cloud Storage serve como repositório central para seus conjuntos de dados brutos de treinamento, checkpoints de modelos e modelos finais treinados.
  • Cloud Storage FUSE com cache de arquivos ativado: o Cloud Storage FUSE permite ativar 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 os arquivos acessados com frequência dos buckets do Cloud Storage. O driver CSI do Cloud Storage FUSE gerencia a integração do Cloud Storage FUSE 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 disponibilizaçã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 disponibilizaçã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. Ele gerencia a infraestrutura 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 de nó do Kubernetes (kubelet), que não é mostrado 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 da 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ê precisa criar várias redes VPC.
  • Cloud DNS: em arquiteturas multirregionais, o Cloud DNS direciona o tráfego para os balanceadores de carga para garantir desempenho e disponibilidade ideais por meio do roteamento Anycast. As solicitações são encaminhadas automaticamente para o local mais próximo, o que reduz a latência e melhora o desempenho da pesquisa 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: nesta arquitetura, o Cloud Load Balancing distribui com eficiência as solicitações de inferência recebidas dos usuários do aplicativo para os contêineres de exibiçã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 das cargas de trabalho de IA e ML. Para mais informações sobre como escolher um tipo de processador apropriado, consulte Opções do acelerador neste documento.
  • Cloud Storage: o Cloud Storage oferece armazenamento permanente, escalonável e econômico para suas cargas de trabalho de IA e ML. O Cloud Storage serve como repositório central para seus conjuntos de dados brutos de treinamento, checkpoints de modelos e modelos finais treinados.
  • Cloud Storage FUSE: o Cloud Storage FUSE permite ativar um bucket do Cloud Storage como um sistema de arquivos local. O driver CSI do Cloud Storage FUSE, que não é mostrado no diagrama, gerencia a integração do Cloud Storage FUSE com a API Kubernetes para consumir buckets do Cloud Storage como volumes.
  • Cache em qualquer lugar: o Cache em qualquer lugar é um recurso do Cloud Storage que fornece até 1 PiB de cache somente leitura zonal protegido por SSD para buckets do Cloud Storage. Durante o treinamento e a disponibilização, o Anywhere Cache ajuda a alcançar uma capacidade que excede 1 TB/s ao escalonar 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 disponibilização da arquitetura.

Carga de trabalho de treinamento

Nas arquiteturas anteriores, veja a seguir as etapas no fluxo de dados durante o treinamento do modelo:

  1. Carregar dados de treinamento no Cloud Storage: os dados de treinamento são enviados para um bucket do Cloud Storage com namespaces hierárquicos ativados. O Cloud Storage funciona como um repositório central escalonável.
  2. Carregar dados de treinamento e executar jobs de treinamento no GKE: o bucket do Cloud Storage ativado nos pods do GKE permite que os aplicativos de treinamento carreguem e acessem com eficiência os dados de treinamento usando a interface FUSE. Os nós do GKE executam o processo de treinamento do modelo usando o cache de arquivos montado como fonte de dados. Os aplicativos de treinamento enviam continuamente dados de treinamento aos aceleradores de máquina para realizar os cálculos complexos necessários para o treinamento do modelo. Dependendo dos requisitos de carga de trabalho, é possível usar GPUs ou TPUs. Para mais informações sobre como escolher um tipo de processador apropriado, consulte Opções do acelerador mais adiante neste documento.
  3. Salvar e restaurar o ponto de verificação e o modelo:

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

Carga de trabalho de disponibilização

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

  1. Carregar modelo: após a conclusão do treinamento, os pods carregam o modelo treinado usando o Cloud Storage FUSE com os 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 por meio do serviço do Cloud Load Balancing. O Cloud Load Balancing distribui as solicitações recebidas nos contêineres de exibição no cluster do GKE. Com essa distribuição, nenhum contêiner fica sobrecarregado e as solicitações são processadas com eficiência.
  3. Entrega de resposta: os nós processam a solicitação e geram uma previsão. Os contêineres de exibição enviam as respostas de volta pelo Cloud Load Balancing e, em seguida, aos 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 fora de Google Cloude são replicados em vários 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 o uso de uma arquitetura criada em torno do Cloud Storage FUSE. Com um planejamento adequado, é possível atingir mais de 1 TB/s de capacidade com essas arquiteturas. Além disso, o Cloud Storage FUSE permite que você aproveite um repositório de armazenamento central que funciona 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 todas as cargas de trabalho, independentemente 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 o Connector para PyTorch, JAX e TensorFlow. O acesso aos dados com frameworks de IA e ML elimina a refatoração do código.
  • Inicialização acelerada: elimine a necessidade de fazer o download de grandes conjuntos de dados para computar recursos usando o Cloud Storage FUSE para acessar diretamente os dados no Cloud Storage. Esse acesso direto aos dados agiliza os tempos de inicialização do job.
  • Economia: otimize os custos usando a escalonabilidade e a eficiência de custo do Cloud Storage.

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

Para treinamento com uso intensivo de dados ou cargas de trabalho de checkpoint e reinicialização, 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 sua aplicação de IA e ML em Google Cloud.

Alternativa de plataforma

Em vez de hospedar seu fluxo de trabalho de treinamento de modelo e disponibilizaçã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 altamente configurável. Usar o Compute Engine com o Slurm é particularmente adequado para treinamento de modelos em grande escala e simulações. Recomendamos que você use o Compute Engine com o Slurm se precisar integrar propriedade intelectual (IP) de IA e ML reservadas a um ambiente escalonável com flexibilidade e controle 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 suas máquinas virtuais (VMs), o que oferece controle granular sobre tipos de instâncias, armazenamento e rede. A infraestrutura pode ser adaptada de acordo com suas necessidades, incluindo a seleção de tipos específicos de máquinas de VM. Para informações sobre como usar as opções de linha de comando do Cloud Storage FUSE no Compute Engine, consulte a CLI gcsfuse e o arquivo de configuração do Cloud Storage FUSE. Use também a família de máquinas com otimização para aceleradores para melhorar o desempenho das cargas de trabalho de IA e ML. Para mais informações sobre as famílias de tipos de máquina disponíveis no Compute Engine, consulte o Guia de comparação e recursos de 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 de computação. Para usar essa abordagem, você precisa de experiência na administração do Slurm e no gerenciamento do sistema Linux.

Opções de 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. É possível escolher GPUs ou TPUs.

  • Os aceleradores de GPU oferecem excelente desempenho para uma ampla variedade de tarefas, incluindo renderização gráfica, treinamento de aprendizado profundo e computação científica.O Google Cloud tem uma ampla seleção de GPUs para corresponder a uma variedade de faixas de desempenho e preço. As GPUs geralmente incluem SSDs locais em cada configuração de máquina, que podem ser usados pelo Cloud Storage FUSE como um diretório de cache. Para informações sobre modelos e preços da GPU, consulte Preços da GPU.
  • TPUs são aceleradores de IA personalizados e otimizados para treinamento e inferência de grandes modelos de IA. Eles são ideais para uma variedade de casos de uso, como bots de chat, 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 da TPU.

Alternativas de armazenamento

O Cloud Storage FUSE oferece um sistema de arquivos conveniente que permite aproveitar a escalonabilidade e 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 completa em conformidade com POSIX. Para esses casos de uso, recomendamos que você considere as seguintes alternativas de armazenamento:

  • Hyperdisk ML do Google Cloud: uma solução de armazenamento em blocos de alto desempenho, ideal para cargas de trabalho que têm clusters em grande escala com centenas de nós e conjuntos menores de dados somente leitura que variam de centenas de GB a 64 TB. O Hyperdisk ML tem uma capacidade maior do que o Cloud Storage e pode ser anexado a várias VMs no modo somente leitura. O modo de acesso Kubernetes ReadOnly Many (em inglês) permite que o Hyperdisk ML acelere o carregamento de pesos do modelo em comparação com o carregamento diretamente de um registro de modelos. 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.
  • Conector para PyTorch: um produto de código aberto no Cloud Storage ideal para cargas de trabalho que usam o PyTorch. O conector para PyTorch otimiza a carga de trabalho de treinamento fazendo streaming de dados diretamente dos buckets do Cloud Storage e eliminando a necessidade de armazenamento intermediário. Esse acesso direto e otimização proporciona um desempenho significativamente melhor do que as chamadas de API diretas ao Cloud Storage para carregamento de dados, treinamento e checkpoint.

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

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

Considerações sobre o design

Nesta seção, apresentamos orientações sobre as práticas recomendadas e considerações de design para configurar o Cloud Storage FUSE para segurança, confiabilidade, custo e desempenho. Estas recomendações não incluem todas as possibilidades, mas abordam as principais considerações 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 maneira 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 gcsfuse e Otimizar o driver CSI do Cloud Storage FUSE para melhorar o desempenho do GKE.

segurança, privacidade e conformidade

Nesta seção, descrevemos considerações para suas cargas de trabalho de IA e ML no Google Cloud que atendem aos 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, o que permite que você se concentre na segurança específica da carga de trabalho. Para ver mais informações, consulte os seguintes tópicos:

Para garantir um 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 ajuda a garantir que apenas usuários autenticados com o papel correto do Identity and Access Management (IAM) possam acessar os aplicativos. Para mais informações, consulte Como ativar o IAP para o GKE.

Por padrão, seus 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 confidenciais, é possível criptografar os dados na camada do aplicativo usando uma chave própria e gerenciada 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 utilizar 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, é possível usar chaves de criptografia gerenciadas pelo cliente (CMEKs, na sigla em inglês) ou suas próprias chaves gerenciadas por meio de 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 é compatível com dois métodos para conceder aos usuários acesso aos seus buckets e objetos: IAM e listas de controle de acesso (ACLs). Na maioria dos casos, recomendamos usar o IAM, que permite conceder permissões nos níveis do bucket e do projeto. Para mais informações, consulte Visão geral do controle de acesso.

Os dados de treinamento carregados com o Cloud Storage podem incluir dados confidenciais. Use a proteção de dados sensíveis para descobrir, classificar e desidentificar os dados. Para separar as cargas de trabalho de treinamento e de disponibilização, salve o modelo e os pontos de verificação em buckets do Cloud Storage separados. Esse isolamento ajuda a evitar a exposição acidental de informações sensíveis do conjunto de dados de treinamento durante a disponibilizaçã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 poderá ajudá-lo a atendê-los. Os dados são armazenados ou replicados nas regiões que você especificar.

Considerações sobre o Cloud Storage FUSE

Quando você ativa o armazenamento em cache, o Cloud Storage FUSE armazena arquivos persistentes do 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 a diretórios. Para atenuar esses riscos e melhorar a segurança, a camada do kernel do FUSE restringe o acesso ao sistema de arquivos para o usuário que ativou o sistema. Essa restrição nega acesso a outros usuários, incluindo o usuário raiz, mesmo que as permissões do 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 checkpoints 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 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 do Cloud Storage FUSE são de propriedade do usuário que ativou o sistema de arquivos. Esses padrões podem ser adequados para muitos casos, mas é possível personalizar um contexto de segurança para seu pod. Para informações sobre como personalizar um contexto de segurança, consulte Segurança e permissões.

Confiabilidade

Para garantir uma operação confiável, o Cloud Storage FUSE incorpora tentativas automáticas para lidar com possíveis interrupções e manter a consistência dos dados. As solicitações com falha são repetidas automaticamente com espera exponencial para o Cloud Storage. A espera exponencial aumenta gradualmente o tempo entre as tentativas. Esse mecanismo integrado ajuda seu aplicativo a superar problemas temporários de rede ou 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 ú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 desconectar ou reiniciar o bucket, é essencial excluir manualmente o diretório de cache de arquivos.
  • Processos com caches dedicados: embora o Cloud Storage FUSE seja compatível com 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 pode ser usado por diferentes processos do Cloud Storage FUSE executados na mesma máquina ou em máquinas diferentes.

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

Otimização de custos

Nesta seção, fornecemos orientações para ajudar você a otimizar o custo de configuração e operação do seu 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 os custos, não é preciso monitorar constantemente a utilização de recursos ou gerenciar a capacidade.

Se for possível prever o uso de CPU, memória e armazenamento temporário do cluster do Autopilot, é possível conseguir descontos por compromisso de uso. Para reduzir o custo de execução do aplicativo, é possível usar VMs spot nos nós do GKE. As VMs spot têm um preço menor que as VMs padrão, mas não oferecem garantia de disponibilidade.

Para otimizar o custo e o desempenho por meio do gerenciamento eficiente, use o Programador de carga de trabalho dinâmico. O Dynamic Workload Scheduler é um programador de jobs e gerenciamento de recursos que ajuda a melhorar o acesso a recursos de IA e ML. O Dynamic Workload Scheduler programa todos os seus aceleradores simultaneamente e pode ser executado fora dos horários de pico com o gerenciamento definido da capacidade do acelerador. Ao programar jobs de maneira estratégica, o Dynamic Workload Scheduler ajuda a maximizar a utilização do acelerador, reduzir o tempo ocioso e otimizar os gastos com a nuvem.

Para mais informações sobre otimização de custos, consulte Práticas recomendadas para executar aplicativos econômicos do Kubernetes 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 seus dados de treinamento, mas seu requisito de capacidade diminui para exibição, em que você armazena principalmente dados de modelo e checkpoints. Para controlar os custos, recomendamos ativar o gerenciamento do ciclo de vida de objetos e a classe automática.

Com o gerenciamento do ciclo de vida de objetos, é possível migrar automaticamente dados mais antigos ou não utilizados para classes de armazenamento mais baratas ou até mesmo excluir os dados, com base nas regras definidas.

O recurso de classe automática move automaticamente os dados entre as classes de armazenamento com base em como seus 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 ao armazenamento, operações de metadados e tráfego de rede gerado pelas atividades do 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 as operações do Cloud Storage, consulte o mapeamento de operações.

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

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

Ao criar a arquitetura para sua carga de trabalho, considere também as práticas recomendadas e as recomendações gerais fornecidas no Framework bem-arquitetado: 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 frequentes de metadados podem reduzir o desempenho, especialmente em clusters de alta escala. Para mais informações sobre como melhorar o desempenho, consulte Otimizar o driver CSI do Cloud Storage FUSE para desempenho do GKE.

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

  • Ativar namespaces hierárquicos: para melhorar o acesso e a organização dos 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 consistência e simplifica o gerenciamento de cargas de trabalho de IA e ML. Os namespaces hierárquicos permitem QPS inicial mais alta e renomeações atômicas de diretório rápidas.
  • 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ós local para armazenar em cache os arquivos lidos com frequência. A disponibilização de leituras repetidas de uma mídia em cache reduz a latência e minimiza as operações de volta para o Cloud Storage. Nos tipos de máquinas GPU com um SSD local, o diretório do SSD local é usado automaticamente. Para tipos de máquina que não incluem SSD local, como TPUs, é possível usar um diretório do disco 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 menos usado recentemente (LRU, na sigla em inglês) após a capacidade máxima ser 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 das 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áveis para o limite de capacidade do cache, defina metadata-cache:stat-cache-max-size-mb: como -1.
    • Para definir o valor do cache de tipo utilizável como o limite de capacidade, defina metadata-cache:type-cache-max-size-mb: como -1.
    • Para evitar que itens de metadados armazenados em cache expirem, com um valor padrão de 60 segundos, defina metadata-cache:ttl-secs: como -1. Valores infinitos devem ser usados apenas para volumes somente leitura e nós com grandes configurações de memória.
  • Preencher o cache de metadados previamente: o recurso de pré-busca de metadados permite que o driver CSI do Cloud Storage FUSE carregue proativamente metadados relevantes sobre os objetos do 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 determinado. Defina o atributo de volume gcsfuseMetadataPrefetchOnMount como true.

  • Ativar o armazenamento em cache da lista: este recurso otimiza a listagem de diretórios e arquivos. É particularmente benéfico para cargas de trabalho de treinamento de IA e ML, que geralmente envolvem o acesso e a listagem repetida de diretórios inteiros. O armazenamento em cache de listas fornece processos de treinamento altamente eficientes, reduzindo a necessidade de acessar repetidamente as listagens de diretórios na memória do computador.

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

  • Ativar downloads paralelos: eles aceleram o carregamento inicial do modelo buscando vários blocos simultaneamente. A ativação de downloads paralelos resulta em um carregamento de modelo mais rápido e melhora a capacidade de resposta durante a disponibilização.

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

  • Aumente os limites dos arquivos secundários do GKE: para evitar que as restrições de recursos prejudiquem o desempenho, configure limites no contêiner dos arquivos secundários, como o consumo de CPU e memória. Se você usar um cache SSD local, considere definir 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 avançado.

  • Ativação somente leitura: como as cargas de trabalho de treinamento normalmente só precisam ler dados, configure o ponto de montagem como somente leitura para um desempenho ideal, especialmente ao usar 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 sua carga de trabalho, considere as práticas recomendadas e as sugestões gerais fornecidas no framework bem-arquitetado: otimização de desempenho (link em inglês).

A seguir

Colaboradores

Autor: Samantha He, redatora técnica

Outros colaboradores: