Neste documento, apresentamos uma arquitetura de referência que mostra como usar o Lustre gerenciado do Google Cloud para otimizar a performance de cargas de trabalho de IA e ML implantadas 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 no Google Cloud. Este documento pressupõe que você entenda o ciclo de vida, os processos e os recursos de ML.
O Lustre gerenciado é um sistema de arquivos paralelo persistente e totalmente Google Cloudgerenciado baseado no EXAScaler Lustre da DDN. O Managed Lustre é ideal para cargas de trabalho de IA que atendem a estes critérios:
- Exigir até 8 PiB de capacidade de armazenamento.
- Forneça acesso de latência ultrabaixa (menos de um milissegundo) com alta capacidade de processamento, até 1 TB/s.
- Oferecer altas operações de entrada/saída por segundo (IOPS).
O Managed Lustre oferece estas vantagens para cargas de trabalho de IA:
- Redução do custo total de propriedade (TCO) para treinamento: o Lustre gerenciado reduz o tempo de treinamento ao entregar dados de maneira eficiente aos nós de computação. Essa funcionalidade ajuda a reduzir o custo total de propriedade do treinamento de modelo de IA e ML.
- TCO mais baixo para veiculação: o Lustre gerenciado oferece recursos de alto desempenho que permitem um carregamento mais rápido de modelos e uma veiculação de inferência otimizada. Esses recursos ajudam a reduzir os custos de computação e melhorar a utilização de recursos.
- Utilização eficiente de recursos: o Managed Lustre permite combinar o checkpointing e o treinamento em uma única instância. Esse compartilhamento de recursos ajuda a maximizar o uso eficiente da capacidade de leitura e gravação em um único sistema de armazenamento de alta performance.
Arquitetura
O diagrama a seguir mostra um exemplo de arquitetura para usar o Lustre gerenciado e otimizar o desempenho de uma carga de trabalho de treinamento e de exibição de modelos:
As cargas de trabalho mostradas na arquitetura anterior são descritas em detalhes nas seções posteriores. Essa arquitetura inclui os seguintes componentes:
- Cluster do Google Kubernetes Engine: o GKE gerencia os hosts de computação em que os processos de treinamento e veiculação de modelos de IA e ML são executados. O GKE gerencia a infraestrutura subjacente dos clusters, 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.
- Rede de nuvem privada virtual (VPC): todos os recursos do Google Cloud na arquitetura usam uma única rede 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. O uso do Cloud Load Balancing ajuda a garantir alta disponibilidade, escalonabilidade e desempenho ideal para o aplicativo de IA e ML. Para mais informações, consulte Noções básicas sobre balanceamento de carga do GKE.
- Unidades de processamento gráfico (GPUs) ou unidades de processamento de tensor (TPUs): GPUs e TPUs são aceleradores de machine learning especializados que melhoram o desempenho da sua carga de trabalho de IA e ML. Para garantir a eficiência e a compatibilidade ideais, use o mesmo tipo de acelerador em toda a carga de trabalho de IA e ML. Para mais informações sobre como escolher um tipo de processador adequado, consulte Opções de acelerador mais adiante neste documento.
- Managed Lustre: o Managed Lustre acelera o treinamento e a disponibilização de IA e ML ao fornecer um sistema de arquivos paralelo de alto desempenho otimizado para baixa latência e alta capacidade de processamento. Em comparação com o uso apenas do Cloud Storage, o Lustre gerenciado reduz significativamente o tempo de treinamento e melhora a capacidade de resposta dos modelos durante a veiculação. Essas melhorias são especialmente percebidas em cargas de trabalho exigentes que precisam de acesso rápido e consistente a dados compartilhados.
- Cloud Storage FUSE: o Cloud Storage FUSE oferece armazenamento persistente 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 e backups de modelos. O uso do Cloud Storage ajuda a garantir a durabilidade dos dados, a disponibilidade a longo prazo e a eficiência de custos para dados que não estão sendo usados ativamente em computações.
Carga de trabalho de treinamento
Na arquitetura anterior, estas são as etapas do fluxo de dados durante o treinamento do modelo:
- Fazer upload de dados de treinamento para o Cloud Storage: você faz upload de dados de treinamento para um bucket do Cloud Storage, que serve como um repositório central seguro e escalonável e fonte de verdade.
- Copiar dados para o Lustre gerenciado: o corpus de dados de treinamento é transferido por uma API para importar dados para uma instância do Lustre gerenciado do Cloud Storage. A transferência dos dados de treinamento permite aproveitar os recursos de sistema de arquivos de alto desempenho do Managed Lustre para otimizar a velocidade de carregamento e processamento de dados durante o treinamento do modelo.
- Executar jobs de treinamento no GKE: o processo de treinamento de modelo é executado em nós do GKE. Ao usar o Managed Lustre como fonte de dados em vez de carregar dados diretamente do Cloud Storage, os nós do GKE podem acessar e carregar dados de treinamento com velocidade significativamente maior e menor latência. O Managed Lustre também permite um tempo menor para o início da transferência do primeiro byte, medido pelo tempo para o primeiro byte (TTFB). O uso do Managed Lustre ajuda a reduzir os tempos de carregamento de dados e acelerar o processo geral de treinamento, especialmente para grandes conjuntos de dados que têm arquivos de leitura pequenos e modelos complexos. Dependendo dos requisitos da sua carga de trabalho, é possível usar GPUs ou TPUs. Para informações sobre como escolher um tipo de processador adequado, consulte Opções de acelerador mais adiante neste documento.
- Salvar checkpoints de treinamento no Managed Lustre: durante o processo de treinamento, os checkpoints são salvos no Managed Lustre com base em métricas ou intervalos definidos por você. Os checkpoints capturam o estado do modelo em intervalos frequentes.
Carga de trabalho de disponibilização
Na arquitetura anterior, estas são as etapas do fluxo de dados durante a veiculação do modelo:
- Carregar modelo para exibição: quando o modelo estiver pronto para implantação, os pods do GKE carregarão o modelo treinado da instância gerenciada do Lustre para os nós de exibição. Se a instância gerenciada do Lustre usada durante o treinamento tiver capacidade de IOPS suficiente e estiver na mesma zona dos seus aceleradores, você poderá usar a mesma instância gerenciada do Lustre para veicular seu modelo. A reutilização da instância do Managed Lustre permite o compartilhamento eficiente de recursos entre o treinamento e a disponibilização. Para manter o desempenho e a compatibilidade ideais, use o mesmo tipo de processador de GPU ou TPU selecionado para os nós do GKE de serviço.
- Solicitação de inferência: os usuários do aplicativo enviam solicitações de inferência pelos endpoints de veiculação. Essas solicitações são direcionadas ao 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 forma eficiente.
- Atendimento de solicitações de inferência: quando uma solicitação de inferência é recebida, os nós de computação acessam o modelo pré-carregado para realizar os cálculos necessários e gerar uma previsão.
- Entrega de respostas: os contêineres de exibição enviam as respostas de volta pelo Cloud Load Balancing. O Cloud Load Balancing encaminha as respostas de volta aos usuários do aplicativo apropriado, o que conclui o ciclo de solicitação de inferência.
Produtos usados
Esta arquitetura de referência usa os seguintes produtos Google Cloud :
- 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.
- 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.
- Managed Lustre do Google Cloud: um sistema de arquivos paralelo totalmente gerenciado para IA, computação de alto desempenho (HPC) e aplicativos com uso intenso de dados.
Casos de uso
O Managed Lustre é ideal para cargas de trabalho de IA que precisam de até 1 PiB de capacidade de armazenamento e acesso de baixa latência (submilissegundos) com alta capacidade de processamento e IOPS. Esta seção apresenta exemplos de casos de uso em que é possível usar o Managed Lustre.
Processamento e geração de texto
Os LLMs são modelos de IA especializados projetados especificamente para entender e processar dados baseados em texto. Os LLMs são treinados com conjuntos de dados de texto enormes, o que permite que eles realizem várias tarefas, incluindo tradução automática, resposta a perguntas e resumo de texto. Para facilitar o treinamento eficiente e o processamento em lote, seu LLM precisa de acesso de baixa latência aos conjuntos de dados. O Managed Lustre se destaca em aplicativos com uso intensivo de dados, oferecendo a alta capacidade de processamento e a baixa latência necessárias para treinamento e inferência, o que resulta em aplicativos mais responsivos com tecnologia LLM.
Processamento de imagens ou vídeos em alta resolução
Os aplicativos tradicionais de IA e ML ou modelos generativos multimodais que processam imagens ou vídeos de alta resolução, como análise de imagens médicas ou sistemas de direção autônoma, exigem grande capacidade de armazenamento e acesso rápido a dados. O Managed Lustre oferece um sistema de arquivos persistente de alto desempenho que permite o carregamento rápido de dados para acelerar o desempenho do aplicativo. Por exemplo, o Managed Lustre pode armazenar grandes volumes de dados de pacientes, como ressonâncias magnéticas e tomografias computadorizadas, e facilitar o carregamento rápido de dados para nós de computação para treinamento de modelo. Essa funcionalidade permite que modelos de IA e ML analisem rapidamente os dados para diagnóstico e tratamento.
Alternativas de design
Nesta seção, apresentamos abordagens de design alternativas que você pode considerar para seu aplicativo de IA e ML em Google Cloud.
Alternativa de infraestrutura de computação
A arquitetura de referência neste documento usa o GKE para as cargas de trabalho de IA e ML. Dependendo dos requisitos da sua carga de trabalho, você pode implantar instâncias gerenciadas do Lustre no Compute Engine com o Slurm. Recomendamos essa abordagem se você precisar integrar a propriedade intelectual (PI) de IA proprietária a um ambiente escalonável e se precisar de flexibilidade e controle para otimizar a performance de cargas de trabalho especializadas.
O Compute Engine permite um controle mais granular no nível do sistema operacional em comparação com o GKE. Ao usar o Compute Engine, é possível:
- Selecionar, configurar e gerenciar o ambiente do SO nas máquinas virtuais para atender a requisitos específicos de carga de trabalho.
- Adapte sua infraestrutura às suas necessidades exatas, incluindo a seleção de tipos de máquinas de VM específicos.
- Use a família de máquinas otimizada para aceleradores e melhore a performance das suas cargas de trabalho de IA.
O Slurm é um gerenciador de recursos e cargas de trabalho de código aberto altamente configurável. O Slurm oferece uma opção avançada para gerenciar cargas de trabalho de IA e permite controlar a configuração e o gerenciamento dos recursos de computação. Para usar essa abordagem, você precisa ter experiência em administração do Slurm e gerenciamento de sistemas Linux. O GKE oferece um ambiente gerenciado do Kubernetes que automatiza o gerenciamento de clusters.
Para informações sobre como implantar o Slurm, consulte Implantar um cluster de HPC com o Slurm. Também é possível fazer a implantação usando o Cluster Toolkit com o blueprint inicial do Managed Lustre.
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. É 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 grande seleção de GPUs para atender a uma variedade de faixas de desempenho e preço. 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. As TPUs 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 para veiculação
Para garantir o mais alto nível de disponibilidade, use o Cloud Storage FUSE com o Anywhere Cache e um bucket multirregional ou birregional. Essa configuração disponibiliza seus modelos de IA treinados em várias regiões. No entanto, em comparação com as instâncias gerenciadas do Lustre, o Cloud Storage FUSE pode ter uma taxa de transferência por VM menor. Para informações sobre como melhorar o desempenho com o Cloud Storage FUSE, consulte Usar o armazenamento em cache de arquivos do Cloud Storage FUSE.
O Google Cloud Hyperdisk ML é uma solução de armazenamento em blocos de alta performance projetada para acelerar cargas de trabalho de IA e ML em grande escala que exigem acesso somente leitura a grandes conjuntos de dados. O Hyperdisk ML pode ser provisionado com uma capacidade de processamento agregada um pouco maior com tamanhos de volume menores, mas alcança uma capacidade de processamento por VM menor em comparação com o Managed Lustre. Além disso, os volumes do Hyperdisk ML só podem ser acessados por VMs de GPU ou TPU que estejam na mesma zona. Portanto, para clusters regionais do GKE que atendem a várias zonas, é necessário provisionar volumes separados do Hyperdisk ML em cada zona. O provisionamento de vários volumes do Hyperdisk ML pode ser mais caro do que usar uma única instância regional gerenciada do Lustre.
Também é importante observar que o Hyperdisk ML foi projetado para que os dados não possam ser modificados depois de gravados. Essa abordagem de gravar uma vez, ler muitas (WORM) ajuda a evitar corrupção acidental ou modificações não autorizadas. No entanto, para atualizar um modelo de serviço, não é possível substituir o modelo atual. Em vez disso, crie uma nova instância do Hyperdisk ML. Para mais informações sobre como usar o Hyperdisk ML em cargas de trabalho de IA, consulte Acelerar o carregamento de dados de IA/ML com o Hyperdisk ML.
Considerações sobre o design
Para projetar uma implantação do Lustre gerenciado que otimize a segurança, a confiabilidade, o custo, as operações e o desempenho das suas cargas de trabalho de IA e ML no Google Cloud, use as diretrizes nas seções a seguir.
Ao criar uma arquitetura para sua carga de trabalho, considere as práticas recomendadas e as recomendações do Google Cloud Framework do Well-Architected: perspectiva de IA e ML.
segurança, privacidade e conformidade
Nesta seção, descrevemos considerações para suas cargas de trabalho de IA e ML em Google Cloud que atendem aos seus requisitos de segurança, privacidade e conformidade.
Segurança SSH
Para facilitar o controle de acesso aprimorado dos aplicativos executados no GKE, use o Identity-Aware Proxy (IAP). O IAP se integra ao recurso de entrada do GKE e ajuda a verificar se apenas usuários autenticados com o papel correto do Identity and Access Management (IAM) podem acessar os aplicativos. Para mais informações, consulte Como ativar o IAP para GKE e Controle de acesso com o IAM.
Criptografia de dados
Por padrão, os dados no GKE, incluindo os armazenados na instância gerenciada do Lustre, 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 GKE Standard, é possível usar os seguintes recursos extras de criptografia de dados:
- Criptografe dados em uso (ou seja, na memória) com nós confidenciais do Google Kubernetes Engine. Para mais informações sobre os recursos, a disponibilidade e as limitações dos Confidential GKE Nodes, consulte Criptografar dados de carga de trabalho em uso com Confidential GKE Nodes.
- Se você precisar de mais controle sobre as chaves de criptografia usadas para criptografar o tráfego de pods nos nós do GKE, criptografe os dados em trânsito usando as chaves que gerencia. Para mais informações, consulte Criptografar dados em trânsito no GKE com chaves de criptografia gerenciadas pelo usuário.
Isolamento de dados
Para aumentar a segurança e melhorar a proteção de dados, armazene os dados de treinamento em uma instância gerenciada do Lustre separada dos pontos de verificação e modelos treinados. O uso de instâncias de armazenamento separadas oferece isolamento de desempenho, aumenta a segurança ao isolar dados de treinamento e melhora a proteção de dados. Embora as listas de controle de acesso permitam gerenciar a segurança em uma única instância, o uso de instâncias separadas oferece um limite de segurança mais robusto.
Mais considerações sobre a segurança
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 mais informações, consulte Recursos de segurança do Autopilot do GKE e Migre para a segurança do Kubernetes com o Autopilot do GKE.
Para informações sobre como proteger a privacidade dos seus dados, consulte Visão geral da Proteção de Dados Sensíveis e Inspecionar armazenamento e bancos de dados em busca de dados sensíveis. Google Cloud
Para princípios e recomendações de segurança específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: segurança no framework bem arquitetado.
Confiabilidade
Nesta seção, descrevemos os fatores de design que você precisa considerar ao usar essa arquitetura de referência para criar e operar uma infraestrutura confiável para implantação multirregional no Google Cloud.
Robustez contra interrupções de infraestrutura
Com o modo de operação Autopilot usado nesta arquitetura, o GKE oferece os seguintes recursos integrados de confiabilidade:
- Sua carga de trabalho usa um cluster regional do GKE. O plano de controle e os nós de trabalho são distribuídos por três zonas diferentes em uma região. Suas cargas de trabalho são resistentes a interrupções de zona. Os clusters regionais do GKE têm um contrato de nível de serviço (SLA) de tempo de atividade mais alto do que os clusters zonais.
- Não é preciso criar nós ou gerenciar pools de nós. O GKE cria e escalona automaticamente os pools de nós com base nos requisitos das cargas de trabalho.
Para aumentar a disponibilidade do aplicativo, é possível veicular em várias zonas implantando uma instância do Managed Lustre em cada uma delas.
Planejamento de capacidade do cluster
Para garantir que uma capacidade de GPU suficiente esteja disponível quando necessário para o escalonamento automático do cluster do GKE, crie e use reservas. Uma reserva oferece capacidade garantida em uma zona específica para um recurso especificado. Uma reserva pode ser específica para um projeto ou compartilhada entre vários projetos. Você recebe cobranças por recursos reservados mesmo que eles não sejam provisionados ou usados. Para mais informações, consulte Como consumir recursos zonais reservados.
Durabilidade dos dados
Para fazer backup e restaurar cargas de trabalho no GKE, ative o Backup para GKE em cada cluster. O Backup para GKE é útil para recuperação de desastres, pipelines de CI/CD, clonagem de cargas de trabalho e cenários de upgrade.
É possível selecionar cargas de trabalho específicas ou todas as cargas de trabalho que você quer fazer backup e restaurar. Também é possível fazer backup de cargas de trabalho de um cluster e restaurá-las para outro. Para reduzir o tempo de inatividade da carga de trabalho, é possível programar a execução automática dos backups para que você possa recuperar rapidamente as cargas de trabalho no caso de um incidente.
Mais considerações sobre confiabilidade
Para princípios e recomendações de confiabilidade específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: confiabilidade no Well-Architected Framework.
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.
Níveis de desempenho do Managed Lustre
Ao criar uma instância do Managed Lustre, é necessário selecionar um nível de performance. Escolha um nível adequado com base nos requisitos de performance e custo da sua carga de trabalho.
Modelo de provisionamento de nós
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, você não precisa 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.
Gerenciamento de recursos
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 aceleradores de IA (GPUs e TPUs). O Dynamic Workload Scheduler programa todos os seus aceleradores simultaneamente e pode ser executado fora dos horários de pico com gerenciamento de capacidade de 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 otimizar os gastos com a nuvem.
Uso dos recursos
Para maximizar a utilização de recursos, use uma instância gerenciada do Lustre para treinamento e disponibilização. Ao consolidar as cargas de trabalho de treinamento e serviço em uma única instância gerenciada do Lustre, você minimiza os custos eliminando a infraestrutura redundante e simplificando o gerenciamento de recursos. No entanto, pode haver uma possível disputa de recursos se ambas as cargas de trabalho tiverem demandas de taxa de transferência altas. Se houver IOPS disponíveis após o treinamento, usar a mesma instância poderá acelerar o carregamento do modelo para disponibilização. Use o Cloud Monitoring para verificar se você aloca recursos suficientes para atender às demandas de capacidade.
Para minimizar os custos de armazenamento, exporte os dados da instância do Lustre gerenciado para uma classe do Cloud Storage de custo mais baixo após o treinamento e o checkpoint. A exportação dos dados para o Cloud Storage também permite destruir e recriar instâncias gerenciadas do Lustre conforme necessário para sua carga de trabalho.
Para controlar os custos do bucket do Cloud Storage, ative o gerenciamento do ciclo de vida de objetos ou a Classe automática. O gerenciamento do ciclo de vida de objetos move automaticamente dados mais antigos ou menos usados para classes de armazenamento mais baratas ou exclui os dados, com base nas regras definidas. A classe automática move dados entre classes de armazenamento com base nos seus padrões de acesso. Usar o gerenciamento do ciclo de vida de objetos ou a Classe automática ajuda a garantir a classe de armazenamento mais econômica para seu uso de dados, minimizando despesas e evitando taxas de recuperação inesperadas.
Mais considerações sobre custo
Para princípios e recomendações de otimização de custos específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: otimização de custos no Framework bem arquitetado e Práticas recomendadas para executar aplicativos do Kubernetes otimizados para custo no GKE.
Excelência operacional
Esta seção fornece orientações para ajudar você a projetar uma infraestrutura para seu fluxo de trabalho de IA e ML que possa ser operada com eficiência.
Gerenciamento de modelos
Para rastrear e gerenciar artefatos de modelo, incluindo binários e metadados, use o Vertex AI Model Registry, que permite armazenar, organizar e implantar versões de modelos sem problemas.
Para otimizar a confiabilidade do modelo, implemente o Vertex AI Model Monitoring para detectar desvios de dados, acompanhar o desempenho e identificar anomalias na produção.
Escalonamento automático cluster do GKE
Com os clusters do Autopilot, não é necessário provisionar nem gerenciar pools de nós. Os pools de nós são provisionados automaticamente usando o provisionamento automático de nós, e são escalonados automaticamente para atender aos requisitos das cargas de trabalho.
Para clusters Standard do GKE, o escalonador automático de cluster redimensiona automaticamente o número de nós em um pool de nós com base nas demandas de carga de trabalho. Para controlar o comportamento de escalonamento automático do escalonador automático de cluster, especifique um tamanho mínimo e máximo para o pool de nós.
Ao usar o escalonador automático de cluster do GKE, não ative o escalonamento automático do Compute Engine para grupos gerenciados de instâncias (MIGs) nos nós do cluster. O escalonador automático de cluster do GKE é separado do escalonador automático do Compute Engine. O escalonador automático de cluster do GKE foi projetado para escalonar sua carga de trabalho analisando a utilização de recursos no cluster do GKE, incluindo os MIGs subjacentes. Usar os dois autoescalonadores pode levar a decisões de escalonamento conflitantes. Para mais informações, consulte Sobre cluster do GKE GKE.
Monitoramento de métricas
Para identificar gargalos, monitore as principais métricas, como latência, taxa de erros e uso de recursos, usando o Cloud Monitoring. O Cloud Monitoring oferece visibilidade em tempo real para rastrear padrões de uso de recursos e identificar possíveis ineficiências.
Gerenciamento de armazenamento
Para automatizar o gerenciamento de dados com base no uso do bucket do Cloud Storage, ative o gerenciamento do ciclo de vida de objetos ou a Classe automática. O gerenciamento do ciclo de vida de objetos move automaticamente dados mais antigos ou menos usados para classes de armazenamento mais baratas ou exclui os dados, com base nas regras definidas. A classe automática move dados entre classes de armazenamento com base nos seus padrões de acesso. Usar o gerenciamento do ciclo de vida de objetos ou o Autoclass ajuda a garantir a aplicação consistente de políticas em toda a infraestrutura de armazenamento e a reduzir possíveis erros humanos, o que proporciona economia de custos e desempenho sem intervenção manual.
Mais considerações operacionais
Para conferir práticas recomendadas e recomendações de eficiência operacional específicas para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: excelência operacional no Framework bem arquitetado.
Otimização de desempenho
Nesta seção, fornecemos orientações para ajudar você a otimizar a performance do seu fluxo de trabalho de IA e ML no Google Cloud. As orientações desta seção não são completas. Para mais informações sobre como otimizar a performance do seu ambiente do Managed Lustre do Google Cloud, consulte Considerações sobre desempenho.
Considerações sobre o treinamento
Cada VM A3 ou A4 pode oferecer 20 GB/s, aproximadamente 2,5 GB/s por GPU, de uma instância gerenciada do Lustre. Antes do início do treinamento, os dados precisam ser pré-buscados do Cloud Storage e importados para o Lustre gerenciado para minimizar a latência durante o treinamento. Para maximizar a capacidade de processamento da sua carga de trabalho de treinamento, provisione a instância do Managed Lustre para atender às suas necessidades de capacidade de processamento e armazenamento. Por exemplo, uma instância gerenciada do Lustre de 20 TiB oferece um throughput agregado entre 2,5 GB/s e 20 GB/s em todos os clientes, dependendo do nível de desempenho selecionado. Se o treinamento exigir maior capacidade de processamento, aumente o tamanho da instância gerenciada do Lustre de acordo com a necessidade.
Considerações sobre o checkpoint
Para aproveitar a alta capacidade de gravação que o Lustre gerenciado oferece e minimizar o tempo de treinamento, use o Lustre gerenciado para treinamento e criação de pontos de verificação. Essa abordagem ajuda a alcançar uma utilização eficiente dos recursos e a reduzir o TCO dos recursos de GPU, mantendo o treinamento e o checkpointing o mais rápido possível. Para conseguir um checkpointing rápido, execute um checkpointing assíncrono distribuído. Como o Managed Lustre é persistente, é possível armazenar seus pontos de verificação na mesma instância. Para otimizar ainda mais os custos e ter armazenamento de longo prazo, exporte os pontos de verificação para um bucket do Cloud Storage.
Considerações sobre a veiculação
Para alcançar a performance ideal durante a veiculação, é necessário minimizar o tempo necessário para carregar modelos na memória. O Managed Lustre oferece alta capacidade de processamento por VM de mais de 20 GB/s, o que proporciona alta capacidade de processamento agregado do cluster. Isso ajuda a minimizar os tempos de carregamento do modelo em milhares de VMs. Para acompanhar as principais métricas que permitem identificar gargalos, use o Cloud Monitoring e verifique se você implanta capacidade suficiente à medida que o desempenho aumenta com a capacidade de armazenamento.
Posicionamento de recursos
Para minimizar a latência e maximizar o desempenho, crie sua instância do Lustre gerenciado em uma região geograficamente próxima aos clientes de computação de GPU ou TPU. Na arquitetura de referência descrita neste documento, os contêineres e o sistema de arquivos do GKE são colocados na mesma zona.
- Para treinamento e checkpointing: para resultados ideais, implante os clientes e as instâncias gerenciadas do Lustre na mesma zona. Essa colocalização minimiza os tempos de transferência de dados e maximiza a utilização da capacidade de gravação do Lustre gerenciado.
- Para veiculação:embora seja ideal alocar com clientes de computação na mesma zona, ter uma instância gerenciada do Lustre por região pode ser suficiente. Essa abordagem evita custos extras associados à implantação de várias instâncias e ajuda a maximizar o desempenho da computação. No entanto, se você precisar de mais capacidade ou capacidade de processamento, considere implantar mais de uma instância por região.
Para informações sobre os locais compatíveis com instâncias do Managed Lustre, consulte Locais compatíveis.
Mais considerações de desempenho
Para princípios e recomendações de otimização de performance específicos para cargas de trabalho de IA e ML, consulte Perspectiva de IA e ML: otimização de performance no Framework bem arquitetado.
Implantação
Para criar e montar uma instância gerenciada do Lustre, recomendamos que você use o módulo gerenciado do Lustre disponível no Cluster Toolkit. O Cluster Toolkit é um kit de ferramentas modular baseado no Terraform projetado para a implantação de ambientes de IA e ML repetíveis no Google Cloud.
Para informações sobre como implantar manualmente o Managed Lustre no GKE, consulte Criar uma instância do Managed Lustre e Conectar-se a uma instância do Managed Lustre no Google Kubernetes Engine.
Para saber como configurar uma rede VPC para o Managed Lustre, consulte Configurar uma rede VPC.
A seguir
- Saiba mais sobre como usar sistemas de arquivos paralelos para cargas de trabalho de HPC.
- Saiba mais sobre as práticas recomendadas para implementar machine learning em Google Cloud.
- Saiba como planejar armazenamento para cargas de trabalho de IA e ML em Google Cloud.
- Saiba como treinar um modelo do TensorFlow com o Keras no GKE.
- Para mais arquiteturas de referência, diagramas e práticas recomendadas, confira a Central de arquitetura do Cloud.
Colaboradores
Autora: Samantha He | Redatora técnica
Outros colaboradores:
- Dean Hildebrand | Diretor técnico, escritório do CTO
- Kumar Dhanagopal | Desenvolvedor de soluções para vários produtos
- Sean Derrington | Gerente de produtos externos do grupo, Armazenamento