Este documento fornece uma arquitetura de referência que mostra como pode usar o Google Cloud Managed Lustre para otimizar o desempenho das cargas de trabalho de IA e ML implementadas no Google Kubernetes Engine (GKE). O público-alvo deste documento inclui arquitetos e profissionais técnicos que concebem, aprovisionam e gerem o armazenamento para as respetivas cargas de trabalho de IA no Google Cloud. O documento pressupõe que tem conhecimentos sobre o ciclo de vida, os processos e as capacidades de ML.
O Managed Lustre é um sistema de ficheiros paralelo (PFS) persistente e totalmente Google Cloudgerido, baseado no EXAScaler Lustre da DDN. O Lustre gerido é a solução principal recomendada para cargas de trabalho de preparação e verificação da IA. É particularmente eficaz para migrar cargas de trabalho existentes do Lustre ou de outras soluções de PFS. Para maximizar a utilização de recursos, as cargas de trabalho que usam o Lustre gerido para o treino também devem usar a mesma instância para a publicação e a inferência.
O Managed Lustre é a solução recomendada para cargas de trabalho de IA que cumprem os seguintes critérios:
- Exigir uma capacidade de armazenamento à escala de PiB.
- Oferecer acesso de latência ultrabaixa (inferior a um milissegundo) com um débito elevado, até 1 TB/s.
- Oferecer um elevado número de operações de entrada/saída por segundo (IOPS).
O Managed Lustre oferece estas vantagens para cargas de trabalho de IA:
- Custo total de propriedade (TCO) mais baixo para a preparação: O Lustre gerido reduz o tempo de preparação ao fornecer dados de forma eficiente aos nós de computação. Esta funcionalidade ajuda a reduzir o custo total de propriedade da preparação de modelos de IA e ML.
- TCO mais baixo para publicação: o Lustre gerido oferece capacidades de alto desempenho que permitem um carregamento mais rápido do modelo e uma publicação de inferências otimizada. Estas capacidades ajudam a reduzir os custos de computação e melhorar a utilização de recursos.
- Utilização eficiente de recursos: o Lustre gerido permite-lhe combinar a criação de pontos de verificação e a preparação numa única instância. Esta partilha de recursos ajuda a maximizar a utilização eficiente da taxa de transferência de leitura e escrita num único sistema de armazenamento de elevado desempenho.
Arquitetura
O diagrama seguinte mostra uma arquitetura de exemplo para usar o Lustre gerido para otimizar o desempenho de uma carga de trabalho de preparação de modelos e uma carga de trabalho de publicação:
As cargas de trabalho apresentadas na arquitetura anterior são descritas em detalhe nas secções posteriores. Esta arquitetura inclui os seguintes componentes:
- Cluster do Google Kubernetes Engine: o GKE gere os anfitriões de computação nos quais os processos de preparação e apresentação de modelos de IA e ML são executados. O GKE gere a infraestrutura subjacente dos clusters, incluindo o plano de controlo, os nós e todos os componentes do sistema.
- Programador do Kubernetes: O painel de controlo do GKE agenda cargas de trabalho e gere o respetivo ciclo de vida, escalabilidade e atualizações.
- Rede da nuvem virtual privada (VPC): Todos os Google Cloud recursos que estão na arquitetura usam uma única rede VPC.
- Cloud Load Balancing: nesta arquitetura, o Cloud Load Balancing distribui eficientemente os pedidos de inferência recebidos dos utilizadores da aplicação para os contentores de publicação no cluster do GKE. A utilização do Cloud Load Balancing ajuda a garantir a elevada disponibilidade, a escalabilidade e o desempenho ideal para a aplicação de IA e ML. Para mais informações, consulte o artigo Compreender o balanceamento de carga do GKE.
- Unidades de processamento de gráficos (GPUs) ou Unidades de processamento de tensores (TPUs): as GPUs e as TPUs são aceleradores de máquinas especializados que melhoram o desempenho da sua carga de trabalho de IA e ML. Para ajudar a garantir a eficiência e a compatibilidade ideais, use o mesmo tipo de acelerador para toda a sua carga de trabalho de IA e ML. Para mais informações sobre como escolher um tipo de processador adequado, consulte as opções de acelerador mais adiante neste documento.
- Lustre gerido: O Lustre gerido acelera a preparação e a publicação de IA e ML, oferecendo um PFS persistente de alto desempenho otimizado para baixa latência e elevado débito. Em comparação com a utilização do Cloud Storage isoladamente, a utilização do Lustre gerido reduz significativamente o tempo de preparação e melhora a capacidade de resposta dos seus modelos durante a publicação. Estas melhorias são especialmente visíveis em cargas de trabalho exigentes que requerem acesso rápido e consistente a dados partilhados.
- Cloud Storage FUSE: O Cloud Storage FUSE oferece armazenamento persistente e económico para as suas cargas de trabalho de IA e ML. O Cloud Storage funciona como o repositório central dos seus conjuntos de dados de preparação não processados, pontos de verificação e cópias de segurança de modelos. A utilização do Cloud Storage ajuda a garantir a durabilidade dos dados, a disponibilidade a longo prazo e a rentabilidade dos dados que não estão a ser usados ativamente em cálculos.
Carga de trabalho de preparação
Na arquitetura anterior, seguem-se os passos no fluxo de dados durante a preparação do modelo:
- Carregue dados de preparação para o Cloud Storage: carregue dados de preparação para um contentor do Cloud Storage, que serve como um repositório central seguro e escalável, bem como uma fonte de verdade.
- Copiar dados para o Lustre gerido: o conjunto de dados de preparação é transferido através da importação de dados para uma instância do Lustre gerido a partir do Cloud Storage. A transferência dos dados de preparação permite-lhe tirar partido das capacidades do sistema de ficheiros de alto desempenho do Lustre gerido para otimizar as velocidades de carregamento e processamento de dados durante a preparação do modelo.
- Executar tarefas de preparação no GKE: o processo de preparação de modelos é executado em nós do GKE. Ao usar o Lustre gerido como a origem de dados em vez de carregar dados diretamente do Cloud Storage, os nós do GKE podem aceder e carregar dados de preparação com uma velocidade significativamente maior e uma latência inferior. O Lustre gerido também permite um tempo mais curto para o início da transferência do primeiro byte, medido pelo tempo até ao primeiro byte (TTFB). A utilização do Lustre gerido ajuda a reduzir os tempos de carregamento de dados e a acelerar o processo de preparação geral, especialmente para conjuntos de dados grandes que tenham ficheiros de leitura pequenos e modelos complexos. Consoante os requisitos da sua carga de trabalho, pode usar GPUs ou TPUs. Para obter informações sobre como escolher um tipo de processador adequado, consulte Opções de acelerador mais adiante neste documento.
- Guarde pontos de verificação de formação no Lustre gerido: durante o processo de formação, os pontos de verificação são guardados no Lustre gerido com base nas métricas ou nos intervalos que definir. Os pontos de verificação capturam o estado do modelo a intervalos frequentes. Os pontos de verificação podem ser exportados seletivamente para o Cloud Storage para armazenamento a longo prazo.
Carga de trabalho de publicação
Na arquitetura anterior, seguem-se os passos no fluxo de dados durante a publicação do modelo:
- Carregar modelo para publicação: quando o modelo está pronto para implementação, os pods do GKE carregam o modelo preparado a partir da instância do Lustre gerido para os nós de publicação. Se a instância do Lustre gerido que usou durante a preparação tiver capacidade de IOPS suficiente e estiver na mesma zona que os seus aceleradores, pode usar a mesma instância do Lustre gerido para publicar o seu modelo. A reutilização da instância do Lustre gerido permite uma partilha eficiente de recursos entre a preparação e a publicação. Para manter o desempenho e a compatibilidade ideais, use o mesmo tipo de processador de GPU ou TPU que selecionou para os nós GKE de publicação.
- Pedido de inferência: os utilizadores da aplicação enviam pedidos de inferência através dos pontos finais de publicação. Estes pedidos são direcionados para o serviço Cloud Load Balancing. O Cloud Load Balancing distribui os pedidos recebidos pelos contentores de publicação no cluster do GKE. Esta distribuição garante que nenhum contentor individual fica sobrecarregado e que os pedidos são processados de forma eficiente.
- Publicar pedidos de inferência: quando é recebido um pedido de inferência, os nós de computação acedem ao modelo pré-carregado para realizar os cálculos necessários e gerar uma previsão.
- Entrega de respostas: os contentores de publicação enviam as respostas de volta através do Cloud Load Balancing. O Cloud Load Balancing encaminha as respostas de volta para os utilizadores da aplicação adequados, o que conclui o ciclo de pedidos de inferência.
Produtos usados
Esta arquitetura de referência usa os seguintes produtos Google Cloud :
- Nuvem virtual privada (VPC): um sistema virtual que oferece funcionalidade de rede global e escalável para as suas Google Cloud cargas de trabalho. A VPC inclui o intercâmbio da rede da VPC, o Private Service Connect, o acesso a serviços privados e a VPC partilhada.
- Cloud Load Balancing: um portefólio de balanceadores de carga globais, escaláveis e de elevado desempenho, bem como balanceadores de carga regionais.
- Google Kubernetes Engine (GKE): um serviço Kubernetes que pode usar para implementar e operar aplicações em contentores em grande escala através da infraestrutura da Google.
- Cloud Storage: um serviço de armazenamento de objetos de baixo custo e sem limite para diversos tipos de dados. Os dados podem ser acedidos a partir do interior e do exterior Google Cloud, e são replicados em várias localizações para redundância.
- Google Cloud Managed Lustre: um sistema de ficheiros paralelo totalmente gerido para IA, computação de alto desempenho (HPC) e aplicações com grande volume de dados.
Exemplos de utilização
O Lustre gerido é ideal para cargas de trabalho de IA que precisam de uma capacidade de armazenamento à escala de PiB e que precisam de fornecer acesso de baixa latência (inferior a um milissegundo) com elevado débito e IOPSs elevados. Esta secção apresenta exemplos de utilização para os quais pode usar o Lustre gerido.
Processamento e geração de texto
Os MDIs/CEs são modelos de IA especializados concebidos especificamente para compreender e processar dados baseados em texto. Os GMLs são preparados em conjuntos de dados de texto massivos, o que lhes permite realizar uma variedade de tarefas, incluindo tradução automática, resposta a perguntas e resumo de texto. Para facilitar a preparação eficiente e o processamento em lote, o seu MDG precisa de acesso de baixa latência aos conjuntos de dados. O Lustre gerido destaca-se em aplicações com grande volume de dados, oferecendo o elevado débito e a baixa latência necessários para a preparação e a inferência, o que resulta em aplicações mais reativas com tecnologia de MDIs.
Processamento de imagens ou vídeos de alta resolução
As aplicações tradicionais de IA e ML ou os modelos generativos multimodais que processam imagens ou vídeos de alta resolução, como a análise de imagens médicas ou sistemas de condução autónoma, requerem uma grande capacidade de armazenamento e um acesso rápido aos dados. O Lustre gerido oferece um sistema de ficheiros persistente de elevado desempenho que permite um carregamento rápido de dados para acelerar o desempenho da aplicação. Por exemplo, o Managed Lustre pode armazenar grandes volumes de dados de pacientes, como ressonâncias magnéticas e tomografias computorizadas, e pode facilitar o carregamento rápido de dados para calcular nós para o treino de modelos. Esta funcionalidade permite que os modelos de IA e ML analisem rapidamente os dados para diagnóstico e tratamento.
Alternativas de design
Esta secção apresenta abordagens de design alternativas que pode considerar para a sua aplicação de IA e ML no Google Cloud.
Alternativa à infraestrutura de computação
A arquitetura de referência neste documento usa o GKE para as cargas de trabalho de IA e ML. Em alternativa, consoante os requisitos da sua carga de trabalho, pode implementar instâncias do Lustre geridas no Compute Engine com o Slurm. Recomendamos esta abordagem se precisar de integrar propriedade intelectual (PI) de IA proprietária num ambiente escalável e se precisar de flexibilidade e controlo para otimizar o desempenho para cargas de trabalho especializadas.
O Compute Engine permite-lhe ter um controlo mais detalhado ao nível do sistema operativo em comparação com o GKE. Quando usa o Compute Engine, pode fazer o seguinte:
- Selecionar, configurar e gerir o ambiente do SO nas respetivas máquinas virtuais para cumprir requisitos específicos da carga de trabalho.
- Adapte a sua infraestrutura às suas necessidades exatas, incluindo a seleção de tipos de máquinas de VMs específicos.
- Use a família de máquinas otimizada para aceleradores para um desempenho melhorado com as suas cargas de trabalho de IA.
O Slurm é um gestor de recursos e cargas de trabalho de código aberto altamente configurável. O Slurm oferece uma opção avançada para gerir cargas de trabalho de IA e permite-lhe controlar a configuração e a gestão dos recursos de computação. Para usar esta abordagem, precisa de conhecimentos especializados em administração do Slurm e gestão de sistemas Linux. O GKE oferece um ambiente Kubernetes gerido que automatiza a gestão de clusters.
Para obter informações sobre a implementação do Slurm, consulte o artigo Implemente um cluster de HPC com o Slurm. Também pode fazer a implementação através do Cluster Toolkit com o projeto inicial do Lustre gerido.
Opções do acelerador
Os aceleradores de máquinas são processadores especializados concebidos para acelerar os cálculos necessários para cargas de trabalho de IA e ML. Pode escolher GPUs ou TPUs.
- Os aceleradores de GPU oferecem um excelente desempenho para uma ampla gama de tarefas, incluindo renderização gráfica, preparação de aprendizagem avançada e computação científica. Google Cloud tem uma ampla seleção de GPUs para corresponder a uma variedade de pontos de preço e desempenho. Para informações sobre os modelos de GPU e os preços, consulte o artigo Preços das GPUs.
- As TPUs são aceleradores de IA de design personalizado, otimizados para a preparação e a inferência de grandes modelos de IA. As TPUs são ideais para uma variedade de exemplos de utilização, como chatbots, geração de código, geração de conteúdo multimédia, voz sintética, serviços de visão, motores de recomendações e modelos de personalização. Para mais informações sobre os modelos de TPUs e os preços, consulte os preços das TPUs.
Alternativas de armazenamento
O Cloud Storage FUSE com a cache em qualquer lugar pode ser usado para cargas de trabalho de preparação, criação de pontos de verificação e publicação. O Cloud Storage FUSE com a cache em qualquer lugar é a solução de armazenamento recomendada para publicação e inferência devido ao seu custo mais baixo e facilidade de inferência multirregional em comparação com o Lustre gerido. Para ajudar a garantir o nível de disponibilidade mais elevado, use o Cloud Storage FUSE com a cache em qualquer lugar e um contentor multirregional ou em duas regiões. Esta configuração disponibiliza os seus modelos de IA preparados em várias regiões. No entanto, em comparação com as instâncias do Lustre geridas, o FUSE do Cloud Storage pode ter um débito por VM inferior. Para mais informações, consulte o artigo Otimize as cargas de trabalho de IA e ML com o FUSE do Cloud Storage.
Considerações de design
Para criar uma implementação do Lustre gerido que otimize a segurança, a fiabilidade, o custo, as operações e o desempenho das suas cargas de trabalho de IA e ML no Google Cloud, use as diretrizes nas secções seguintes.
Para uma vista geral dos princípios e recomendações de arquitetura específicos das cargas de trabalho de IA e ML no Google Cloud, consulte aperspetiva de IA e ML no Well-Architected Framework.
Segurança, privacidade e conformidade
Esta secção descreve as considerações para as suas cargas de trabalho de IA e ML que Google Cloud cumprem os seus requisitos de segurança, privacidade e conformidade.
Segurança SSH
Para facilitar o controlo de acesso melhorado para as suas aplicações que são executadas no GKE, pode usar o Identity-Aware Proxy (IAP). O IAP integra-se com o recurso GKE Ingress e ajuda a verificar se apenas os utilizadores autenticados com a função de gestão de identidade e de acesso (IAM) correta podem aceder às aplicações. Para mais informações, consulte os artigos Ativar o IAP para o GKE e Controlo de acesso com a IAM.
Encriptação de dados
Por predefinição, os seus dados no GKE, incluindo os dados armazenados na sua instância do Lustre gerido, são encriptados em repouso e em trânsito através da utilização de Google-owned and Google-managed encryption keys. Como camada adicional de segurança para dados confidenciais, pode encriptar dados na camada de aplicação através de uma chave que detém e gere com o Cloud Key Management Service (Cloud KMS). Para mais informações, consulte Encriptar segredos na camada de aplicação.
Se usar um cluster padrão do GKE, pode usar as seguintes capacidades de encriptação de dados adicionais:
- Encriptar os dados em utilização (ou seja, na memória) através de nós do Google Kubernetes Engine confidenciais. Para mais informações sobre as funcionalidades, a disponibilidade e as limitações dos Confidential GKE Nodes, consulte o artigo Encriptar dados de cargas de trabalho em utilização com Confidential GKE Nodes.
- Se precisar de mais controlo sobre as chaves de encriptação usadas para encriptar o tráfego de pods nos nós do GKE, pode encriptar os dados em trânsito usando chaves que gere. Para mais informações, consulte Encriptar os seus dados em trânsito no GKE com chaves de encriptação geridas pelo utilizador.
Isolamento de dados
Para melhorar a segurança e a proteção de dados, armazene os dados de preparação numa instância do Lustre gerida separada dos pontos de verificação e dos modelos preparados. A utilização de instâncias de armazenamento separadas oferece isolamento do desempenho, melhora a segurança através do isolamento dos dados de preparação e melhora a proteção de dados. Embora as listas de controlo de acesso lhe permitam gerir a segurança numa única instância, a utilização de instâncias separadas oferece um limite de segurança mais robusto.
Mais considerações de segurança
No modo de funcionamento do Autopilot, o GKE pré-configura o cluster e gere os nós de acordo com as práticas recomendadas de segurança, o que lhe permite focar-se na segurança específica da carga de trabalho. Para mais informações, consulte os recursos de segurança do GKE Autopilot e segurança do Kubernetes pronta a usar com o GKE Autopilot.
Para ver informações sobre como proteger a privacidade dos seus dados, consulte a vista geral da proteção de dados confidenciais e inspecione o Google Cloud armazenamento e as bases de dados para ver dados confidenciais.
Para ver princípios e recomendações de segurança específicos das cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: segurança no Well-Architected Framework.
Fiabilidade
Esta secção descreve os fatores de design que deve considerar quando usa esta arquitetura de referência para criar e operar uma infraestrutura fiável para a sua implementação regional em Google Cloud.
Robustez contra interrupções de infraestruturas
Com o modo de funcionamento do piloto automático usado nesta arquitetura, o GKE oferece as seguintes capacidades de fiabilidade incorporadas:
- A sua carga de trabalho usa um cluster do GKE regional. O painel de controlo e os nós de trabalho estão distribuídos por três zonas diferentes numa região. As suas cargas de trabalho são robustas contra falhas de zonas. Os clusters do GKE regionais têm um tempo de atividade superior ao dos clusters zonais, de acordo com o contrato de nível de serviço (SLA).
- Não precisa de criar nós nem gerir node pools. O GKE cria automaticamente os conjuntos de nós e dimensiona-os automaticamente com base nos requisitos das suas cargas de trabalho.
Para aumentar a disponibilidade da sua aplicação, pode publicá-la a partir de várias zonas implementando uma instância do Lustre gerida em cada zona.
Planeamento de capacidade do cluster
Para ajudar a garantir que existe capacidade de GPU suficiente quando é necessária para o ajuste automático da escala do cluster do GKE, pode criar e usar reservas. Uma reserva oferece capacidade garantida numa zona específica para um recurso especificado. Uma reserva pode ser específica de um projeto ou partilhada por vários projetos. Tem custos relativos a recursos reservados, mesmo que os recursos não sejam aprovisionados nem usados. Para mais informações, consulte o artigo Usar recursos zonais reservados.
Durabilidade dos dados
Para fazer uma cópia de segurança e restaurar cargas de trabalho no GKE, ative a cópia de segurança do GKE em cada cluster. A Cópia de segurança do GKE é útil para a recuperação de desastres, pipelines de CI/CD, clonagem de cargas de trabalho e cenários de atualização.
Pode selecionar cargas de trabalho específicas ou todas as cargas de trabalho das quais quer fazer uma cópia de segurança e restaurar. Também pode fazer uma cópia de segurança das cargas de trabalho de um cluster e restaurá-las noutro cluster. Para reduzir o tempo de inatividade da carga de trabalho, pode agendar a execução automática das cópias de segurança para poder recuperar rapidamente as cargas de trabalho em caso de incidente.
Mais considerações de fiabilidade
Para ver princípios e recomendações de fiabilidade específicos das cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: fiabilidade no Well-Architected Framework.
Otimização de custos
Esta secção fornece orientações para ajudar a otimizar o custo de configuração e funcionamento do seu fluxo de trabalho de IA e ML no Google Cloud.
Níveis de desempenho do Managed Lustre
Quando cria uma instância do Lustre gerida, tem de selecionar um nível de desempenho. Escolha um nível adequado com base nos requisitos de desempenho e custo da sua carga de trabalho.
Modelo de aprovisionamento de nós
No modo Autopilot, o GKE otimiza a eficiência da infraestrutura do seu cluster com base nos requisitos da carga de trabalho. Para controlar os custos, não precisa de monitorizar constantemente a utilização de recursos nem gerir a capacidade.
Se conseguir prever a utilização da CPU, da memória e do armazenamento efémero do seu cluster do Autopilot, pode receber descontos por utilização garantida. Para reduzir o custo de execução da sua aplicação, pode usar VMs de capacidade instantânea para os seus nós do GKE. As VMs de capacidade instantânea têm um preço inferior ao das VMs padrão, mas não oferecem uma garantia de disponibilidade.
Gestão de recursos
Para otimizar o custo e o desempenho através de uma gestão eficiente, use o programador de carga de trabalho dinâmico. O Dynamic Workload Scheduler é um agendador de tarefas e gestão de recursos que ajuda a melhorar o acesso aos aceleradores de IA (GPUs e TPUs). O Dynamic Workload Scheduler agenda todos os seus aceleradores em simultâneo e pode ser executado durante as horas de menor atividade com a gestão da capacidade do acelerador definida. Ao agendar tarefas estrategicamente, o Dynamic Workload Scheduler ajuda a maximizar a utilização do acelerador, reduzir o tempo de inatividade e otimizar os seus gastos na nuvem.
Utilização de recursos
Para maximizar a utilização de recursos, use uma instância do Lustre gerido para a preparação e a publicação. A consolidação das cargas de trabalho de preparação e publicação numa única instância do Lustre gerido minimiza os custos através da eliminação da infraestrutura redundante e da simplificação da gestão de recursos. No entanto, pode haver uma potencial contenção de recursos se ambas as cargas de trabalho tiverem exigências de débito elevadas. Se estiverem disponíveis IOPS adicionais após a preparação, a utilização da mesma instância pode acelerar o carregamento do modelo para publicação. Use o Cloud Monitoring para ajudar a verificar se atribui recursos suficientes para satisfazer as suas exigências de débito.
Para minimizar os custos de armazenamento, exporte os dados da sua instância do Lustre gerido para uma classe do Cloud Storage de custo inferior após a preparação e a criação de pontos de verificação. A exportação dos seus dados para o Cloud Storage também lhe permite destruir e recriar instâncias do Lustre gerido conforme necessário para a sua carga de trabalho.
Para ajudar a controlar os custos do seu contentor do Cloud Storage, ative a gestão do ciclo de vida de objetos ou o Autoclass. A gestão do ciclo de vida de objetos move automaticamente os dados mais antigos ou menos usados para classes de armazenamento menos dispendiosas ou elimina os dados, com base nas regras que definir. O Autoclass move os dados entre classes de armazenamento com base nos seus padrões de acesso. A utilização da gestão do ciclo de vida de objetos ou da classe automática ajuda a garantir a classe de armazenamento mais rentável para a sua utilização de dados, minimizando as despesas e ajudando a evitar taxas de obtenção inesperadas.
Mais considerações sobre o custo
Para ver princípios e recomendações de otimização de custos específicos das cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: otimização de custos no Well-Architected Framework. Para obter informações sobre a otimização de custos no GKE, consulte o artigo Práticas recomendadas para executar aplicações Kubernetes otimizadas em termos de custos no GKE.
Excelência operacional
Esta secção fornece orientações para ajudar a criar uma infraestrutura para o seu fluxo de trabalho de IA e ML que possa operar de forma eficiente.
Gestão de modelos
Para monitorizar e gerir artefactos de modelos, incluindo ficheiros binários e metadados, use o Registo de modelos do Vertex AI, que lhe permite armazenar, organizar e implementar versões de modelos de forma integrada.
Para otimizar a fiabilidade do modelo, implemente o Vertex AI Model Monitoring para detetar a deriva dos dados, monitorizar o desempenho e identificar anomalias na produção.
Escala automática do cluster do GKE
Com os clusters do Autopilot, não tem de aprovisionar nem gerir conjuntos de nós. Os conjuntos de nós são aprovisionados automaticamente através do aprovisionamento automático de nós e são dimensionados automaticamente para satisfazer os requisitos das suas cargas de trabalho.
Para clusters padrão do GKE, o redimensionador automático de clusters redimensiona automaticamente o número de nós num conjunto de nós com base nas exigências da carga de trabalho. Para controlar o comportamento de dimensionamento automático do dimensionador automático de clusters, pode especificar um tamanho mínimo e máximo para o conjunto de nós.
Quando usar o redimensionador automático de clusters do GKE, não ative a escala automática do Compute Engine para grupos de instâncias geridas (GIGs) para os nós do cluster. O redimensionador automático de clusters do GKE é independente do redimensionador automático do Compute Engine. O redimensionador automático de clusters do GKE foi concebido para dimensionar a sua carga de trabalho através da análise da utilização de recursos no seu cluster do GKE, incluindo os GIGs subjacentes. A utilização de ambos os escaladores automáticos pode levar a decisões de escalabilidade em conflito. Para mais informações, consulte o artigo Acerca do redimensionamento automático de clusters do GKE.
Monitorização de métricas
Para identificar gargalos, monitorize métricas importantes, como a latência, a taxa de erros e a utilização de recursos, através do Cloud Monitoring. O Cloud Monitoring oferece visibilidade em tempo real para acompanhar os padrões de utilização de recursos e identificar potenciais ineficiências.
Gestão do armazenamento
Para automatizar a gestão de dados com base na utilização do seu contentor do Cloud Storage, ative a gestão do ciclo de vida de objetos ou o Autoclass. A gestão do ciclo de vida de objetos move automaticamente os dados mais antigos ou menos usados para classes de armazenamento menos caras ou elimina os dados, com base nas regras que definir. O Autoclass move os dados entre classes de armazenamento com base nos seus padrões de acesso. A utilização da gestão do ciclo de vida dos objetos ou da classe automática ajuda a garantir uma aplicação consistente das políticas na sua infraestrutura de armazenamento e ajuda a reduzir potenciais erros humanos, o que proporciona poupanças de desempenho e custos sem intervenção manual.
Mais considerações operacionais
Para ver princípios e recomendações de excelência operacional específicos para cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: excelência operacional no Well-Architected Framework.
Otimização do desempenho
Esta secção fornece orientações para ajudar a otimizar o desempenho do seu fluxo de trabalho de IA e ML no Google Cloud. As orientações nesta secção não são exaustivas. Para mais informações sobre a otimização do desempenho do seu ambiente do Google Cloud Managed Lustre, consulte as Considerações sobre o desempenho.
Considerações sobre a preparação
Cada VM A3 ou A4 pode fornecer 20 GB/s, aproximadamente 2,5 GB/s por GPU, a partir de uma instância do Lustre gerida. Antes de começar a preparação, os dados de preparação têm de ser pré-obtidos do Cloud Storage e importados para o Lustre gerido para minimizar a latência durante a preparação. Para maximizar o débito da sua carga de trabalho de preparação, aprovisione a instância do Lustre gerido de acordo com as suas necessidades de débito e capacidade de armazenamento. Por exemplo, uma instância do Lustre gerida de 20 TiB oferece um débito agregado entre 2,5 GB/s e 20 GB/s em todos os clientes, consoante o nível de desempenho selecionado. Se a preparação exigir um débito mais elevado, tem de aumentar o tamanho da instância do Lustre gerido em conformidade.
Considerações sobre a criação de pontos de verificação
Para tirar partido do elevado débito de escrita que o Lustre gerido oferece e para minimizar o tempo de preparação, use o Lustre gerido para a preparação e a criação de pontos de verificação. Esta abordagem ajuda a alcançar uma utilização eficiente dos recursos e ajuda a reduzir o CTP dos seus recursos de GPU, mantendo a formação e a criação de pontos de verificação o mais rápidas possível. Para alcançar a criação de pontos de verificação rápida, pode executar a criação de pontos de verificação distribuída e assíncrona. Como o Lustre gerido é persistente, pode armazenar os seus pontos de verificação na mesma instância. Para uma otimização de custos adicional e armazenamento a longo prazo, pondere exportar pontos de verificação para um contentor do Cloud Storage.
Considerações sobre a publicação
Para alcançar um desempenho ideal durante a publicação, tem de minimizar o tempo necessário para carregar os modelos na memória. O Lustre gerido oferece um débito elevado por VM de mais de 20 GB/s, o que proporciona um débito agregado elevado do cluster. Esta capacidade pode ajudar a minimizar os tempos de carregamento dos modelos em milhares de VMs. Para acompanhar as principais métricas que lhe permitem identificar gargalos, use o Cloud Monitoring e verifique se implementa 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 a sua instância do Lustre gerida numa região geograficamente próxima dos seus clientes de computação de GPU ou TPU. Na arquitetura de referência que este documento descreve, os contentores do GKE e o sistema de ficheiros estão localizados na mesma zona.
- Para a preparação e a validação: para obter resultados ideais, implemente os clientes e as instâncias do Lustre geridas na mesma zona. Esta colocação minimiza os tempos de transferência de dados e maximiza a utilização da taxa de débito de gravação do Lustre gerido.
- Para publicação: embora a colocação conjunta com clientes de computação na mesma zona seja ideal, ter uma instância do Lustre gerida por região pode ser suficiente. Esta abordagem evita custos adicionais associados à implementação de várias instâncias e ajuda a maximizar o desempenho de computação. No entanto, se precisar de capacidade ou débito adicionais, pode considerar implementar mais do que uma instância por região.
Para obter informações sobre as regiões e as zonas suportadas para instâncias do Lustre gerido, consulte o artigo Localizações suportadas.
Mais considerações sobre o desempenho
Para ver princípios e recomendações de otimização do desempenho específicos das cargas de trabalho de IA e ML, consulte o artigo Perspetiva de IA e ML: otimização do desempenho no Well-Architected Framework.
Implementação
Para criar e montar uma instância do Lustre gerido, recomendamos que use o módulo Lustre gerido disponível no Cluster Toolkit. O Cluster Toolkit é um conjunto de ferramentas modular baseado no Terraform que foi concebido para a implementação de ambientes de IA e ML repetíveis noGoogle Cloud.
Para obter informações sobre como implementar manualmente o Managed Lustre no GKE, consulte os artigos Criar uma instância do Managed Lustre e Ligar-se a uma instância do Managed Lustre existente a partir do Google Kubernetes Engine.
Para obter informações sobre como configurar uma rede VPC para o Managed Lustre, consulte o artigo Configure uma rede VPC.
O que se segue?
- Saiba como usar os sistemas de ficheiros paralelos para cargas de trabalho de HPC.
- Saiba mais acerca das práticas recomendadas para implementar a aprendizagem automática no Google Cloud.
- Saiba como conceber armazenamento para cargas de trabalho de IA e ML no Google Cloud.
- Saiba como preparar um modelo do TensorFlow com o Keras no GKE.
- Para ver mais arquiteturas de referência, diagramas e práticas recomendadas, explore o Centro de arquitetura na nuvem.
Colaboradores
Autor: Samantha He | Redator técnico
Outros colaboradores:
- Dean Hildebrand | Technical Director, Office of the CTO
- Kumar Dhanagopal | Cross-Product Solution Developer
- Sean Derrington | Group Product Manager, Storage