Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Gerenciar recursos computacionais acelerados para workloads de IA/ML no Amazon EKS
dica
Registre-se
Esta seção aborda como comprar e provisionar instâncias de computação acelerada do EC2 para workloads de treinamento e inferência de IA/ML com o Amazon EKS. Esteja você treinando modelos de grande escala, executando inferência em tempo real ou implantando aplicações de IA generativa, usar a GPU da NVIDIA ou a capacidade do AWS Trainium correta é fundamental para o desempenho de suas workloads.
Escolher entre os tipos de instância do EC2
Consulte as especificações das instâncias com computação acelerada do Amazon EC2 para obter detalhes sobre as instâncias com computação acelerada disponíveis do Amazon EC2. Isso inclui instâncias de GPU da NVIDIA das famílias P e G, bem como aceleradores projetados pelo AWS Trainium e Inferentia.
Entender as opções de compra do EC2
Depois de saber as instâncias aceleradas necessárias para suas workloads, a próxima etapa é entender as opções de compra disponíveis para adquirir esses tipos de instância acelerada. A AWS oferece quatro opções de compra de capacidade computacional: instâncias sob demanda, instâncias spot, Blocos de Capacidade para ML e reservas de capacidade sob demanda (ODCRs). Cada opção atende a diferentes padrões de workload, perfis de custo e requisitos de disponibilidade. A documentação das opções de compra de instâncias do Amazon EC2 explica como cada opção funciona, seu modelo de preços e quando usá-la.
-
Instâncias sob demanda: pague por segundo sem compromisso e com disponibilidade imediata quando houver capacidade. Ideal para desenvolvimento, prototipagem, escalabilidade de inferência imprevisível e qualquer workload que precise de computação imediata sem risco de interrupção.
-
Instâncias spot: economia de até 90% em relação a sob demanda usando a capacidade extra do EC2, com um aviso de interrupção de dois minutos. Ideal para workloads tolerantes a falhas que fazem ponto de verificação em armazenamento durável: ajuste de hiperparâmetros, treinamento distribuído com pontos de verificação periódicos, inferência em lote e offline e pipelines de pré-processamento de dados.
-
Blocos de Capacidade para ML: reserve instâncias Trainium e da família P por um período fixo (24 horas, até 6 meses), reservado com até oito semanas de antecedência. Use Blocos de Capacidade para execuções de treinamentos planejados em grande escala, experimentos de ajuste fino com prazos definidos e projetos de pesquisa com cronogramas conhecidos que precisam de acesso previsível a um cluster de GPU.
-
Reservas de capacidade sob demanda (ODCRs): reserve capacidade acelerada em uma zona de disponibilidade específica sem um compromisso de longo prazo, faturada de acordo com as taxas padrão de sob demanda, independentemente de a capacidade ser usada ou não. Ideal para inferência de produção, serviços vinculados a SLA e aplicações essenciais para os negócios em que atrasos no agendamento ou indisponibilidade de capacidade são inaceitáveis. Diferentemente dos Blocos de Capacidade, os ODCRs são compatíveis com as instâncias das famílias P e G.
Combinar as opções de compra com os requisitos de workloads
Agora que você conhece os tipos de instâncias aceleradas e as opções de compra, a próxima etapa é combinar a opção de compra certa com os requisitos específicos de sua workload. As workloads com maior flexibilidade em todos os tipos de instância, regiões e prazos se qualificam para mais opções de compra e preços mais baixos.
Baseie sua decisão em fatores como:
-
Importância estratégica e compromissos de SLA
-
Previsibilidade de demanda e flexibilidade de agendamento
-
Disposição para se comprometer com capacidade reservada com antecedência
-
Flexibilidade entre tipos de instância, regiões e prazos
-
Tolerância a interrupções versus economia de custos
Na prática, as equipes adotam uma abordagem híbrida que combina várias opções de compra para equilibrar custo, disponibilidade e confiabilidade em todo o portfólio de workloads. O artigo How to Get GPU Capacity on AWS
Verificar suas cotas de serviço do EC2
Antes de implementar qualquer opção de compra de capacidade em seu cluster do EKS, verifique se sua conta da AWS tem cota de vCPU suficiente para as famílias de instâncias de GPU que você planeja usar. Sem cotas adequadas, os NodePools do Karpenter, o provisionamento do Modo Automático do EKS e os grupos de nós do EKS falharão ao iniciar nós de computação acelerada, independentemente da opção de compra selecionada.
A AWS impõe cotas de vCPU separadas por família de instâncias e modelo de compra. Analise as cotas de tipos de instâncias do Amazon EC2 para entender as cotas padrão para instâncias com computação acelerada.
Essas cotas são baseadas na contagem de vCPUs, não na contagem de instâncias. Por exemplo, lançar dez instâncias p6-b300.48xlarge requer 1.920 vCPUs (10 × 192). As cotas de GPU padrão geralmente são definidas como 0 para novas contas, portanto, solicite aumentos antes de tentar implantar instâncias.
Se você encontrar limitações de cota ao criar reservas de Bloco de Capacidade, iniciar instâncias sob demanda ou enviar requisições de instâncias spot, entre em contato com o AWS Support ou com sua equipe de conta da AWS para discutir seus requisitos e explorar as opções para garantir a capacidade de computação acelerada que melhor atenda às suas necessidades.
Usar as opções de compra do EC2 com o Amazon EKS
Depois de selecionar uma opção de compra de computação acelerada do EC2, configure seu cluster do Amazon EKS para usar a capacidade. O Amazon EKS fornece três métodos de provisionamento, cada um com um equilíbrio diferente entre controle e automação:
-
Modo Automático do Amazon EKS: computação gerenciada pela AWS que provisiona, escala e corrige nós automaticamente. Usa o Karpenter integrado para provisionamento e o sistema operacional do Bottlerocket com drivers e plug-ins de dispositivos da NVIDIA incluídos. Ideal quando você deseja uma infraestrutura gerenciada com despesas operacionais mínimas. Oferece suporte ao provisionamento de capacidade estática e dinâmica.
-
Karpenter (autogerenciado): projeto upstream de código aberto que você instala e opera em seu cluster do Amazon EKS. Fornece o mesmo modelo de provisionamento do Modo Automático do EKS e você tem controle total sobre o sistema operacional, as AMIs, o ajuste do kernel e o ciclo de vida do nó. Ideal para equipes de plataforma com requisitos que o Modo Automático do EKS não oferece prontos para uso.
-
Grupos de nós (gerenciados e autogerenciados): apoiados pelos grupos do Auto Scaling (ASG) do EC2, a capacidade é definida antecipadamente por meio de um modelo de lançamento do EC2. Ideal para equipes de plataforma com grupos de nós gerenciados pelo EKS ou autogerenciados existentes e workloads de treinamento com dimensionamento previsível com uma capacidade computacional acelerada estática conhecida.
As páginas abaixo abordam cada opção de provisionamento em detalhes.
Estratégia mista: combinar opções de compra
É comum combinar várias opções de compra de capacidade em um único cluster do Amazon EKS. Essa abordagem otimiza o custo, a disponibilidade e a confiabilidade simultaneamente ao rotear diferentes workloads para a fonte de capacidade mais adequada. Os clientes implementam essa estratégia híbrida usando qualquer uma das três abordagens de gerenciamento de computação do EKS (Modo Automático do EKS, Karpenter ou grupos de nós) ou as combinam no mesmo cluster.
O Modo Automático do EKS e o Karpenter sempre provisionam primeiro a capacidade reservada (ODCRs e Blocos de Capacidade), seguida por spot ou sob demanda. Você pode combinar essa prioridade de provisionamento de instâncias programando suas workloads críticas em capacidade reservada e suas workloads flexíveis em instâncias spot ou sob demanda. Você controla o roteamento das workloads por meio de primitivas de agendamento nativas do Kubernetes: nodeSelector visa um tipo de capacidade específico, taints e tolerations isolam os nós de GPU da NVIDIA ou do AWS Trainium e topologySpreadConstraints distribui as workloads pelas zonas de disponibilidade para alta disponibilidade.
Um cluster do Amazon EKS bem projetado organiza NodePools ou grupos de nós de computação acelerada em duas categorias, Reservados e Intermitentes, cada uma alinhada aos padrões de workloads mais adequados à estratégia de capacidade. Um exemplo é descrito abaixo.
-
Capacidade reservada: um NodePool
gpu-reservedou um grupo de nós executa inferência de produção e treinamento programado em grande escala na capacidade reservada (ODCRs e Blocos de Capacidade) para serviços vinculados a SLA e trabalhos planejados com uso intensivo de computação. Esse NodePool ou grupo de nós atende a workloads de inferência e produção: endpoints de inferência em tempo real, fornecimento de modelos de produção e aplicações essenciais para os negócios que exigem disponibilidade de GPU sempre ativa com desempenho previsível. Ele também oferece suporte a trabalhos programados com uso intensivo de computação: treinamento distribuído planejado, experimentos de ajuste fino em grande escala, projetos de pesquisa com limite de tempo e qualquer workload em que você saiba a hora de início e a duração com antecedência. -
Capacidade de expansão: um NodePool
gpu-burstou grupo de nós lida com experimentação, workloads ad hoc e processamento em lote. Ele usa instâncias spot como o tipo de capacidade primária com fallback sob demanda. Essa combinação maximiza a economia de custos para workloads tolerantes a falhas e garante capacidade quando as instâncias spot não estão disponíveis. Esse NodePool ou grupo de nós atende à inferência off-line em lote, a pipelines de pré-processamento de dados, a trabalhos de avaliação de modelos, ao desenvolvimento e prototipagem, à escalabilidade de inferência imprevisível, a sessões de depuração de curta duração e a qualquer workload que implemente pontos de verificação e possa lidar com interrupções das instâncias spot ou que não justifique uma reserva, mas que não possa esperar por janelas reservadas. As workloads nesse NodePool ou grupo de nós implementam pontos de verificação e desligamento controlado para lidar com a perda de nós dentro da janela de dois minutos de interrupção spot.
Especifique o tipo de capacidade desejada para workloads usando nodeSelector: karpenter.sh/capacity-type: [spot, on-demand, reserved]. O provisionamento baseado em peso escala o cluster de forma eficiente em todos os grupos de capacidade. Com essa arquitetura, você pode executar diversas workloads de IA/ML, desde notebooks experimentais até inferência de produção, em um único cluster do Amazon EKS e, ao mesmo tempo, otimizar os custos.