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

Last reviewed 2025-04-09 UTC

Este documento fornece arquiteturas de referência que mostram como usar o Cloud Storage FUSE para otimizar a performance 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 cargas de trabalho de IA e ML no Google Cloud. Este documento pressupõe que você entenda o ciclo de vida, os processos e os 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 semelhantes a arquivos. Com o Cloud Storage FUSE, você aproveita a escalonabilidade 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), escolha um dos seguintes Google Cloud arquétipos de implantação para executar suas cargas de trabalho de IA e ML no Google Cloud:

  • Regional: seus aplicativos são executados de forma independente em uma únicaGoogle 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 oferecer suporte a 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 duais 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 produtos e recursos do Google Cloud que você precisa 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 seu uso e 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 a performance dos fluxos de trabalho de treinamento e exibição de modelos:

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 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 é 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 recursos Google Cloud 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: nessa 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 serviço no cluster do GKE. Para mais informações, consulte Entender 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 machine learning especializados que melhoram o desempenho das suas 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: oferece armazenamento persistente, escalonável e econômico para suas cargas de trabalho de IA e ML. O Cloud Storage serve como o repositório central para seus conjuntos de dados de treinamento brutos, pontos de verificação de modelo e modelos treinados finais.
  • 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 do Cloud Storage FUSE é um diretório na máquina local que armazena arquivos acessados com frequência dos seus buckets do Cloud Storage. O driver CSI do FUSE do Cloud Storage 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 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 é 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 recursos Google Cloud 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, garantindo desempenho e 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 com eficiência 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 Entender 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 machine learning especializados que melhoram o desempenho das suas 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: oferece armazenamento persistente, escalonável e econômico para suas cargas de trabalho de IA e ML. O Cloud Storage serve como o repositório central para seus conjuntos de dados de treinamento brutos, pontos de verificação de modelo e modelos treinados finais.
  • 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.
  • Anywhere Cache: o Anywhere Cache é um recurso do Cloud Storage que fornece até 1 PiB de cache zonal 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 escalonar a capacidade de cache e a largura de banda.

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 no Cloud Storage: os dados de treinamento são enviados para um bucket do Cloud Storage com os namespaces 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 de modelo usando o cache de arquivos montado como origem de dados. Seus aplicativos de treinamento alimentam continuamente os dados de treinamento aos aceleradores de máquina para realizar os cálculos complexos necessários para o treinamento de modelo. Dependendo dos requisitos da sua carga de trabalho, você pode usar GPUs ou TPUs. Para informações sobre como escolher um tipo de processador adequado, consulte Opções de acelerador mais adiante neste documento.
  3. Checkpoint e salvamento e restauração de 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 por você.
    • Restaurar checkpoints ou modelo: quando sua 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 checkpoint ou 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 do fluxo de dados durante a veiculação do modelo:

  1. Carregar modelo: depois que o treinamento for concluído, seus 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 do 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 fique sobrecarregado e que as solicitações sejam processadas de maneira eficiente.
  3. Entrega da resposta: 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 produtos Google Cloud :

  • 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 do Google Cloude são replicados entre locais para redundância.
  • Nuvem privada virtual: um sistema virtual que oferece funcionalidade de rede global e escalonável para suas cargas de trabalho do Google Cloud . A VPC inclui o peering de rede VPC, o Private Service Connect, o acesso a serviços particulares e a 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 exibição de 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 com base no Cloud Storage FUSE. Com um planejamento adequado, é possível alcançar mais de 1 TB/s de taxa de transferência 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 todas as etapas 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 aos dados: acesse dados de treinamento e checkpoints com frameworks de IA e ML, como o Connector para PyTorch, o JAX e o TensorFlow. O acesso a dados por meio de estruturas de IA e ML elimina a necessidade de refatoração de 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 acelera os tempos de inicialização dos jobs.
  • Custo-benefício: otimize os custos usando a escalonabilidade e o custo-benefício inerentes do Cloud Storage.

O FUSE do Cloud Storage não é adequado para cargas de trabalho sensíveis à latência que contêm arquivos menores que 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 você pode considerar para seu aplicativo de IA e ML em Google Cloud.

Alternativa de plataforma

Em vez de hospedar seu fluxo de trabalho de treinamento e veiculação de modelos no GKE, considere o Compute Engine com o Slurm. O Slurm é um gerenciador de recursos e cargas de trabalho altamente configurável e de código aberto. Usar o Compute Engine com o Slurm é especialmente adequado para treinamento e simulações de modelos em grande escala. Recomendamos usar o Compute Engine com o Slurm se você precisar integrar a propriedade intelectual (PI) de IA e ML proprietárias em um ambiente escalonável com a flexibilidade e o 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. É possível adaptar a infraestrutura às suas necessidades exatas, incluindo a seleção de tipos de máquinas de VM específicos. Para informações sobre 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 e melhorar a performance das suas cargas de trabalho de IA e ML. Para mais informações sobre as famílias de tipo de máquina 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 avançada para gerenciar cargas de trabalho de IA e ML, além de permitir controlar a configuração e o gerenciamento dos recursos de computação. Para usar essa abordagem, é necessário ter experiência em administração do Slurm e gerenciamento do sistema Linux.

Opções de acelerador

Os aceleradores de máquina são processadores especializados projetados para acelerar as computações necessárias para cargas de trabalho de IA e ML. Você pode 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 grande seleção de GPUs para atender a diversas 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 de GPU, consulte Preços de GPU.
  • 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 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 de TPU.

Alternativas de armazenamento

O Cloud Storage FUSE oferece um sistema de arquivos conveniente que permite aproveitar a escalonabilidade 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 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 de maior escala de centenas de nós com conjuntos de dados somente leitura menores que variam de centenas de GBs a 64 TB. O Hyperdisk ML tem uma capacidade de processamento maior do que o Cloud Storage e pode ser anexado a várias VMs no modo somente leitura. O modo de acesso ReadOnlyMany do Kubernetes permite que o Hyperdisk ML acelere o carregamento de pesos de modelo em comparação com o carregamento direto de um registro de modelo. Para mais informações sobre o uso do 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 ideal para cargas de trabalho que usam o PyTorch. O conector para PyTorch otimiza sua carga de trabalho de treinamento transmitindo dados diretamente dos buckets do Cloud Storage e eliminando a necessidade de armazenamento intermediário. Esse acesso direto e essa otimização oferecem um desempenho muito melhor do que as chamadas diretas de API para o Cloud Storage no carregamento, treinamento e criação de pontos de verificação de dados.

Embora opções alternativas de armazenamento possam oferecer vantagens de desempenho para determinadas cargas de trabalho de IA e ML, é fundamental avaliar suas necessidades de latência, capacidade de processamento 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 em Google Cloud.

Considerações sobre o design

Esta seção oferece orientações sobre práticas recomendadas e 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 configurações para refinar a implantação do Cloud Storage FUSE no GKE. A maioria das opções do Cloud Storage FUSE é configurada com opções de suporte. 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 o desempenho do GKE.

segurança, privacidade e conformidade

Nesta seção, descrevemos considerações sobre suas cargas de trabalho de IA e ML em Google Cloud que atendem 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, 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 o controle de acesso aprimorado para seus aplicativos em execução no GKE, use o Identity-Aware Proxy (IAP). O IAP se integra ao recurso de entrada do GKE e ajuda a garantir que apenas usuários autenticados com o papel correto de Identity and Access Management (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 de 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 com 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 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 as cargas de trabalho de treinamento e de serviço, 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 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 poderá ajudar a atender a essas exigências. 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 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 que tenha acesso ao diretório. Para reduzir esses riscos e melhorar a segurança, a camada de kernel do FUSE restringe o acesso ao sistema de arquivos ao usuário que montou o sistema. Essa restrição nega o acesso a outros usuários, incluindo o usuário root, mesmo que as permissões de inode sejam mais permissivas.

No entanto, há casos de uso em que é necessário substituir as restrições de acesso padrão. Por exemplo, em uma carga de trabalho de treinamento distribuído de IA e ML 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 montou o sistema de arquivos. Embora esses padrões possam ser adequados para muitos casos, é 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 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 repetidas automaticamente com espera exponencial para o Cloud Storage. A espera exponencial aumenta gradualmente o tempo entre as novas tentativas. Esse mecanismo integrado ajuda o aplicativo a superar problemas de rede temporários 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 operação de ú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 de 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 excluir manualmente o diretório de cache de arquivos.
  • Processos com caches dedicados: embora o Cloud Storage FUSE ofereça suporte a 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 Well-Architected Framework: 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 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 custos, não é necessário monitorar constantemente a utilização de recursos nem gerenciar a capacidade.

Se for possível prever o uso de CPU, memória e armazenamento temporário do seu cluster do Autopilot, você poderá receber descontos por compromisso de uso. 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 seus aceleradores simultaneamente e pode ser executado fora do horário de pico com gerenciamento de capacidade definido do acelerador. 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 os gastos com a nuvem.

Para mais informações sobre orientações de 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 esse requisito diminui para a veiculação, em que você armazena principalmente dados e checkpoints do modelo. Para controlar os custos, recomendamos que você ative o gerenciamento do ciclo de vida de objetos e a Classe automática.

Com o gerenciamento do ciclo de vida de objetos, é possível mover 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 dados entre classes de armazenamento automaticamente com base nos 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, às operações de metadados e ao tráfego de rede gerado pelas atividades do FUSE. Não há custo adicional 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 diretório de cache, use a capacidade da máquina provisionada atual, 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ê evita cobranças por 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 ou de saída de rede.

Para mais informações sobre 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 bem arquitetado: pilar de otimização de custos.

Otimização de desempenho

O Cloud Storage FUSE foi projetado para oferecer 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 a performance, principalmente 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:

  • Ative namespaces hierárquicos: para melhorar o acesso e a organização dos dados, crie buckets do Cloud Storage com namespaces hierárquicos ativados. Com os namespaces hierárquicos, é possível organizar os 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 inicial mais alta 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ós local para armazenar em cache arquivos lidos com frequência. Servir leituras repetidas de uma mídia de cache reduz a latência e minimiza as operações de volta ao Cloud Storage. Em tipos de máquinas GPU com um SSD local, o diretório de SSD local é usado automaticamente. Para tipos de máquinas que não incluem SSD local, como TPUs, é possível usar um diretório de 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 da 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) após o capacidade máxima ser atingida, defina metadata-cache:ttl-secs: como -1.
  • Aumentar 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 de cache de estatísticas utilizável como o limite de capacidade do cache, defina metadata-cache:stat-cache-max-size-mb: como -1.
    • Para definir o valor do cache de tipos utilizável como o limite de capacidade, defina metadata-cache:type-cache-max-size-mb: como -1.
    • Para evitar que os itens de metadados armazenados em cache expirem, com um valor padrão de 60 segundos, defina metadata-cache:ttl-secs: como -1. Valores infinitos só devem ser usados para volumes somente leitura e nós com configurações de memória grandes.
  • Pré-preenchimento do cache de metadados: o recurso de pré-busca de metadados permite que o driver CSI do Cloud Storage FUSE carregue de forma proativa metadados relevantes sobre os objetos no bucket do Cloud Storage em caches do Cloud Storage FUSE. Essa abordagem reduz as chamadas ao 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 especificado. Defina o atributo de volume gcsfuseMetadataPrefetchOnMount como true.

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

    Para ativar o cache de lista e evitar que os itens de 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 um carregamento mais rápido do modelo e melhora a capacidade de 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 restrições de recursos prejudiquem o desempenho, configure limites nos recursos do contêiner sidecar, como consumo de CPU e memória. Se você usa um cache de 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 melhorar o armazenamento em cache.

  • 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 um desempenho ideal, especialmente quando você usa o cache de arquivos. Essa configuração também ajuda a maximizar os benefícios das otimizações em clusters de grande 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 arquitetado: pilar de otimização de desempenho.

A seguir

Colaboradores

Autora: Samantha He | Redatora técnica

Outros colaboradores: