Apresentando escalonamento automático no Amazon SageMaker HyperPod com Karpenter
Sources: https://aws.amazon.com/blogs/machine-learning/introducing-auto-scaling-on-amazon-sagemaker-hyperpod, https://aws.amazon.com/blogs/machine-learning/introducing-auto-scaling-on-amazon-sagemaker-hyperpod/, AWS ML Blog
TL;DR
- O SageMaker HyperPod passa a oferecer escalonamento automático de nós gerenciado com Karpenter para seus clusters EKS.
- A solução é gerenciada pelo serviço, eliminando a necessidade de instalar ou manter controladores Karpenter por conta própria, com suporte a escala para zero.
- Integrando provisionamento contínuo e a opção KEDA, você obtém uma arquitetura de escalonamento em dois níveis que ajusta pods e nós conforme a demanda em tempo real.
- A abordagem enfatiza resiliência, resposta rápida a picos de tráfego e eficiência de custos para cargas de ML em grande escala.
- Pré-requisitos incluem quotas, uma função IAM para o Karpenter e a habilitação do provisionamento contínuo em um cluster SageMaker HyperPod EKS.
Contexto e antecedentes
O Amazon SageMaker HyperPod oferece uma infraestrutura de alto desempenho, resiliente e moldada para cargas de ML em grande escala, incluindo treinamentos e implantações em escala. À medida que mais clientes passam de treinar modelos de base para inferência em escala, há necessidade de adaptar recursos de GPU automaticamente ao tráfego de produção, mantendo SLAs e controlando custos. O Karpenter é um gerente de ciclo de vida de nós de Kubernetes de código aberto criado pela AWS e é uma escolha popular para escalonamento de clusters, devido à sua capacidade de provisionar e desprovisionar nós rapidamente e otimizar a capacidade. Historicamente, clientes que utilizavam Karpenter de forma independente enfrentavam sobrecarga operacional para instalação, configuração e manutenção dos componentes. O SageMaker HyperPod agora oferece uma experiência de escalonamento automático baseada em Karpenter gerenciada, eliminando esse trabalho pesado, ao mesmo tempo em que oferece integração mais estreita com a resiliência e observabilidade do HyperPod. Uma capacidade-chave desta versão é o suporte a escala para zero, que reduz a necessidade de manter um controlador Karpenter dedicado quando não há demanda de compute, melhorando a eficiência de custos. A combinação da infraestrutura especializada em ML do HyperPod com a gestão de ciclo de vida de nós do Karpenter oferece uma plataforma resiliente e escalável para cargas de ML em grande escala. Clientes como Perplexity, HippocraticAI, H.AI e Articul8 já utilizam o SageMaker HyperPod para treinar e implantar modelos; à medida que o tráfego cresce, o escalonamento automático torna-se essencial para atender às demandas reais de produção.
O que há de novo
Este lançamento introduz uma solução de escalonamento automático baseada em Karpenter totalmente gerenciada, instalada e mantida pelo SageMaker HyperPod. Ela permite o escalonamento automático de clusters do SageMaker HyperPod de capacidade estática para uma infraestrutura dinâmica e otimizada em termos de custos que cresce com a demanda. Os componentes-chave incluem:
- Uma implantação gerenciada do Karpenter integrada aos clusters SageMaker HyperPod EKS, eliminando a necessidade de configuração e manutenção do Karpenter por parte do cliente.
- Capacidades de provisionamento contínuo que permitem ao HyperPod provisionar automaticamente a capacidade restante em segundo plano, enquanto as cargas começam em instâncias disponíveis.
- Repetições automáticas para falhas de provisionamento devido a limites de capacidade, mantendo as operações de escalonamento resilientes e não bloqueantes.
- HyperpodNodeClass, um recurso personalizado que mapeia para grupos de instâncias pré-criados no SageMaker HyperPod, definindo restrições sobre quais tipos de instâncias e zonas de disponibilidade são suportados para as decisões de escalonamento do Karpenter.
- NodePool que define o hardware (tipos de instância) e a colocação (Zona de Disponibilidade) para pods, permitindo controle preciso sobre quais nós são criados e onde executam.
- Integração opcional com Kubernetes Event-driven Autoscaling (KEDA) para escalonamento de nível de pod com base em métricas. Quando integrado com o KEDA, o Karpenter provisiona ou elimina nós conforme necessário, mantendo o desempenho ideal e o controle de custos. Para implementar uma solução completa de escalonamento automático de ponta a ponta, você pode combinar KEDA com Karpenter no SageMaker HyperPod. Essa abordagem em dois níveis garante que os pods escalem com base em sinais de demanda, enquanto o Karpenter provisiona ou desprovisiona nós de acordo com as necessidades de recursos.
Por que isso importa (impacto para desenvolvedores/empresas)
Para cargas de inferência que enfrentam tráfego em tempo real, o escalonamento automático é essencial para cumprir SLAs de latência, mantendo a eficiência de custos. A abordagem gerenciada pelo Karpenter reduz a sobrecarga operacional, acelera as decisões de escalonamento e permite o escalonamento para zero quando não há demanda, minimizando o uso de recursos ociosos. Desenvolvedores e empresas se beneficiam de:
- Resposta mais rápida a picos de tráfego e tempos de resposta mais estáveis durante a demanda máxima.
- Menor carga operacional, já que o SageMaker HyperPod gerencia a instalação, configuração e manutenção do Karpenter.
- Melhor eficiência de custos ao escalar para zero quando ociosos e ao alinhar recursos à demanda real.
- Uma infraestrutura de ML resiliente com observabilidade e ferramentas otimizadas para treinamento e implantação em grande escala.
Detalhes técnicos ou Implementação
Pré-requisitos e configuração inicial
- Verifique quotas para os tipos de instância que você planeja criar no cluster SageMaker HyperPod por meio do console de Quotas de Serviço (por exemplo, g5.12xlarge).
- Crie uma função IAM para autoscaling do HyperPod com Karpenter, seguindo as instruções para habilitar as permissões necessárias.
- Lançar e configurar seu cluster SageMaker HyperPod EKS com o modo de provisionamento contínuo ativado na criação do cluster. Se preferir, você pode usar um cluster EKS existente em vez de criar um novo. A configuração completa normalmente leva cerca de 20 minutos.
- Certifique-se de que cada InstanceGroup esteja limitado a uma única zona usando OverrideVpcConfig e selecionando apenas uma sub-rede por InstanceGroup. Habilitando o Karpenter no seu cluster HyperPod
- Após a criação do cluster, atualize o cluster para habilitar o Karpenter. Isso pode ser feito via AWS CLI (comando UpdateCluster) ou programaticamente com Boto3 (Python). Você configurará suas credenciais da AWS e executará a chamada apropriada para aplicar as alterações, em seguida, verificará se o Karpenter está habilitado com DescribeCluster.
- A verificação inclui confirmar que o Karpenter está ativo no cluster e que os controladores necessários estão instalados e em execução no ambiente EKS do HyperPod. Configuração de HyperpodNodeClass e NodePool
- HyperpodNodeClass é um recurso personalizado que mapeia para grupos de instâncias pré-criados no SageMaker HyperPod. Ele define restrições sobre quais tipos de instâncias e zonas de disponibilidade podem ser usados pelas decisões de escalonamento do Karpenter para pods.
- Para usar HyperpodNodeClass, basta referenciar os nomes dos InstanceGroups que você deseja usar como fonte de recursos de computação da AWS para escalar os nós. O nome do HyperpodNodeClass que você especificar será levado para o NodePool no próximo passo, onde ele será utilizado.
- O NodePool especifica o hardware (tipo de instância) e a colocação (Zona de Disponibilidade) para os pods. O NodePool atua como uma ponte entre o controlador Karpenter e os grupos de instâncias subjacentes do SageMaker HyperPod, garantindo que os pods sejam programados nos nós apropriados.
- Um exemplo de configuração de NodePool demonstra incluir ml.g6.xlarge como tipo de instância e limitar a zona a uma única região. Os pods podem ser implantados via deployments do Kubernetes e acionarão o Karpenter para provisionar nós conforme necessário. Observabilidade, autoscaling baseado em eventos e limpeza
- Para uma solução completa e observável, você pode introduzir o Kubernetes Event-driven Autoscaling (KEDA). O KEDA escala pods com base em métricas (CloudWatch, filas SQS, Prometheus e padrões de utilização de recursos). Quando o KEDA escala os pods, o Karpenter provisiona ou desprovisiona nós para acompanhar a demanda de recursos.
- Um objeto de exemplo do KEDA ScaledObject pode ajustar a quantidade de pods de inferência com base em métricas do CloudWatch, como o contador de requisições do Application Load Balancer (ALB).
- Quando não for mais necessário, exclua seu cluster SageMaker HyperPod para evitar cobranças contínuas. Notas de implementação
- Com o lançamento do escalonamento baseado em Karpenter no SageMaker HyperPod, cargas de ML podem se adaptar automaticamente a alterações na demanda, otimizando a utilização de recursos e ajudando a controlar custos ao escalar exatamente quando necessário.
- Você também pode integrá-lo a solucionadores de pods baseados em eventos, como o KEDA, para dimensionamento com base em métricas personalizadas.
Principais conclusões
- O SageMaker HyperPod agora inclui escalonamento automático gerenciado com base no Karpenter para clusters EKS.
- Há suporte a scale-to-zero, reduzindo custos mantendo prontidão para escalonar conforme demanda.
- O provisionamento contínuo e as tentativas em segundo plano ajudam a manter o escalonamento sem bloquear workloads.
- HyperPodNodeClass e NodePool permitem controle fino sobre tipos de instâncias, zonas e colocação de pods.
- A integração opcional com o KEDA oferece um escalonamento em dois níveis para atender a métricas em tempo real.
FAQ
-
O que faz o novo escalonamento automático com Karpenter no SageMaker HyperPod?
Fornece uma solução de escalonamento automático baseada em Karpenter, gerenciada pelo HyperPod, para ajustar clusters conforme a demanda, com suporte a escala para zero e provisionamento contínuo.
-
O que preciso configurar antes de habilitar o escalonamento com Karpenter?
Verifique quotas para as instâncias alvo, crie uma função IAM para autoscaling com Karpenter e ative o provisionamento contínuo no cluster HyperPod EKS.
-
Como habilito o Karpenter no meu cluster HyperPod?
tualize o cluster para habilitar o Karpenter (via AWS CLI UpdateCluster ou via Boto3) e verifique com DescribeCluster se o Karpenter está ativo.
-
O que são HyperpodNodeClass e NodePool e para que servem?
HyperpodNodeClass mapeia para grupos de instâncias do HyperPod para restringir tipos de instâncias e zonas; NodePool define o hardware e a colocação para os pods.
-
Posso combinar KEDA com Karpenter no HyperPod?
Sim. O KEDA escala pods com base em métricas, e o Karpenter provisiona ou remove nós conforme necessário.
Referências
More news
Levar agentes de IA do conceito à produção com Amazon Bedrock AgentCore
Análise detalhada de como o Amazon Bedrock AgentCore ajuda a transformar aplicações de IA baseadas em agentes de conceito em sistemas de produção de nível empresarial, mantendo memória, segurança, observabilidade e gerenciamento de ferramentas escalável.
Monitorar Bedrock batch inference da Amazon usando métricas do CloudWatch
Saiba como monitorar e otimizar trabalhos de bedrock batch inference com métricas do CloudWatch, alarmes e painéis para melhorar desempenho, custo e governança.
Prompting para precisão com Stability AI Image Services no Amazon Bedrock
O Bedrock now oferece Stability AI Image Services com nove ferramentas para criar e editar imagens com maior precisão. Veja técnicas de prompting para uso empresarial.
Aumente a produção visual com Stability AI Image Services no Amazon Bedrock
Stability AI Image Services já estão disponíveis no Amazon Bedrock, oferecendo capacidades de edição de mídia prontas para uso via Bedrock API, ampliando os modelos Stable Diffusion 3.5 e Stable Image Core/Ultra já existentes no Bedrock.
Use AWS Deep Learning Containers com o SageMaker AI gerenciado MLflow
Explore como os AWS Deep Learning Containers (DLCs) se integram ao SageMaker AI gerenciado pelo MLflow para equilibrar controle de infraestrutura e governança robusta de ML. Um fluxo de trabalho de predição de idade de ostra com TensorFlow demonstra rastreamento de ponta a ponta, governança de model
Construir Fluxos de Trabalho Agenticos com GPT OSS da OpenAI no SageMaker AI e no Bedrock AgentCore
Visão geral de ponta a ponta para implantar modelos GPT OSS da OpenAI no SageMaker AI e no Bedrock AgentCore, alimentando um analisador de ações com múltiplos agentes usando LangGraph, incluindo quantização MXFP4 de 4 bits e orquestração serverless.