Boas práticas para executar inferência no Amazon SageMaker HyperPod

Introdução

Implantar e escalar modelos de fundação para inferência de IA generativa apresenta desafios significativos para as organizações. Equipes frequentemente enfrentam dificuldades com configuração complexa de infraestrutura, padrões de tráfego imprevisíveis que levam ao excesso de provisionamento ou gargalos de desempenho, e overhead operacional ao gerenciar recursos de GPU de forma eficiente. Esses pontos críticos resultam em atraso no time-to-market, desempenho subótimo dos modelos e custos inflados que podem comprometer a viabilidade de iniciativas de IA em escala.

O Amazon SageMaker HyperPod oferece uma solução abrangente para esses desafios, fornecendo uma plataforma dedicada para cargas de trabalho de inferência. O serviço integra escalabilidade dinâmica, implantação simplificada e gerenciamento inteligente de recursos. As organizações que adotam essas práticas recomendadas podem reduzir o custo total de propriedade em até 40% enquanto aceleram a implantação de IA generativa da concepção à produção.

Criação de cluster com um clique

O HyperPod simplifica significativamente o processo de criação de infraestrutura. Para criar um cluster HyperPod com orquestração via Amazon Elastic Kubernetes Service (Amazon EKS), acesse o console da Amazon SageMaker AI e navegue até a página de gerenciamento de clusters.

O processo ocorre em etapas bem definidas:

  • Passo 1: Selecione a opção “Criar cluster HyperPod” e escolha o modelo “Orquestrado pelo Amazon EKS”.
  • Passo 2: Escolha entre configuração rápida ou personalizada. A configuração rápida cria recursos padrão, enquanto a personalizada permite integração com recursos existentes ou customização conforme necessidades específicas.
  • Passo 3: Configure controladores Kubernetes e complementos (add-ons) conforme seu caso de uso, habilitando ou desabilitando cada um de acordo com os requisitos.
  • Passo 4: Revise a arquitetura de alto nível que mostra como o SageMaker HyperPod funciona com o plano de controle do orquestrador Amazon EKS.
Arquitetura de alto nível do SageMaker HyperPod — fonte: Aws

Opções de implantação

O Amazon SageMaker HyperPod agora oferece uma plataforma de inferência abrangente que combina a flexibilidade do Kubernetes com serviços gerenciados da AWS. A solução permite implantar, escalar e otimizar modelos de aprendizado de máquina com confiabilidade de produção em todo seu ciclo de vida.

A plataforma fornece interfaces de implantação flexíveis, dimensionamento automático avançado e recursos abrangentes de monitoramento. Utilizando o operador de implantação de inferência, é possível implantar modelos a partir de buckets do S3, FSx para Lustre e JumpStart sem escrever código.

  • Implantação a partir do SageMaker JumpStart: Acesse exemplos de código e notebooks de amostra para começar rapidamente.
  • Implantação de modelos personalizados ou ajustados do S3: Use notebooks de amostra para guiar o processo de implantação.
  • Implantação a partir do FSx Lustre: Consulte os notebooks de amostra para otimizar o desempenho com armazenamento em alta velocidade.

Escalabilidade automática com KEDA e Karpenter

O Amazon SageMaker HyperPod oferece uma arquitetura de escalabilidade automática que combina KEDA (Kubernetes Event-Driven Autoscaling — Escalabilidade Automática Acionada por Eventos no Kubernetes) para escalabilidade em nível de pod e Karpenter para escalabilidade em nível de nó. Essa abordagem em duas camadas ativa uma infraestrutura dinâmica e eficiente em custos que se expande de zero para cargas de trabalho em produção conforme a demanda em tempo real.

Arquitetura de escalabilidade automática com KEDA e Karpenter — fonte: Aws

Escalabilidade em nível de pod com KEDA

KEDA é um projeto de código aberto da Cloud Native Computing Foundation (CNCF) que estende o Kubernetes com recursos de escalabilidade automática acionados por eventos. O KEDA é instalado automaticamente como parte do operador de inferência do HyperPod, fornecendo escalabilidade automática de pods pronta para uso sem necessidade de instalação ou configuração separada.

Ele escala o número de pods de inferência baseado em métricas como comprimento da fila de requisições, métricas do Amazon CloudWatch (como invocações de endpoint do SageMaker), latência ou métricas customizadas do Prometheus. O KEDA pode escalar implantações para zero pods quando não há tráfego, eliminando custos durante períodos de inatividade.

Escalabilidade em nível de nó com Karpenter

Karpenter é um escalonador automático de cluster Kubernetes que provisiona ou remove nós de computação baseado em requisitos de pods pendentes. Ele funciona no plano de controle do Amazon EKS, o que significa que não há custos computacionais adicionais para executar o escalonador. Essa implantação no plano de controle gerenciado permite verdadeiras capacidades de escalabilidade para zero.

Quando o KEDA reduz pods para zero devido à falta de tráfego, o Karpenter pode remover todos os nós de trabalho, garantindo que você não incorra em custos de infraestrutura durante períodos de inatividade.

Integração entre KEDA e Karpenter

A integração entre KEDA e Karpenter cria uma experiência de escalabilidade automática eficiente. O Coletor ADOT (AWS Distro for OpenTelemetry — Distribuição AWS para OpenTelemetry) coleta métricas de pods de inferência e as envia para Amazon Managed Service para Prometheus ou CloudWatch, que o operador KEDA (instalado com o operador de inferência) consulta periodicamente e avalia em relação aos limites de gatilho configurados em seu YAML de JumpStartModel ou InferenceEndpointConfig.

Quando as métricas excedem os limites, o KEDA dispara o Horizontal Pod Autoscaler (HPA) para criar novos pods de inferência. Se esses pods permanecerem pendentes devido à capacidade insuficiente de nós, o Karpenter (executando no plano de controle) detecta essa situação e provisiona novos nós com os tipos de instância e configurações de GPU apropriadas. O agendador do Kubernetes então implanta os pods pendentes nos nós recém-provisionados, distribuindo o tráfego de inferência pela infraestrutura escalada.

Quando a demanda diminui, o KEDA reduz os pods com base nas mesmas métricas. O Karpenter consolida cargas de trabalho e remove nós subutilizados para reduzir custos de infraestrutura. Durante períodos sem tráfego, o KEDA pode reduzir para zero pods e o Karpenter remove todos os nós de trabalho, resultando em zero custos computacionais enquanto mantém a capacidade de escalar rapidamente quando o tráfego retoma. Essa arquitetura garante que você pague apenas pelos recursos computacionais enquanto servem ativamente requisições de inferência, sem custos adicionais para a infraestrutura de escalabilidade automática, já que o Karpenter funciona no plano de controle gerenciado.

Habilitando o Karpenter

Para habilitar a escalabilidade automática, verifique se a função de execução do cluster HyperPod possui as seguintes políticas: sagemaker:BatchAddClusterNodes, sagemaker:BatchDeleteClusterNodes e sagemaker:BatchPutMetrics nos recursos apropriados.

Execute o seguinte comando:

aws sagemaker update-cluster --cluster-name 'ml-cluster' --auto-scaling '{ "Mode": "Enable", "AutoScalerType": "Karpenter" }' --cluster-role 'arn:aws:iam::XXXXXXXXXXXX:role/sagemaker-ml-cluster-e3cb1e31ExecRole' --region us-east-1

Após executar este comando, você receberá uma resposta de sucesso com o ARN do cluster. Para verificar se o Karpenter foi habilitado, execute a API DescribeCluster:

aws sagemaker describe-cluster --cluster-name ml-cluster --query AutoScaling --region us-east-1

A resposta confirmará que o modo está habilitado e o tipo de escalonador automático é Karpenter.

Cache KV em camadas e roteamento inteligente

O Amazon SageMaker HyperPod agora oferece suporte a cache KV (pares chave-valor) gerenciado em camadas e roteamento inteligente para otimizar o desempenho da inferência de modelos de linguagem grande (LLM), particularmente para prompts de contexto longo e conversas multi-volta.

Roteamento inteligente e cache KV em camadas — fonte: Aws

Cache KV gerenciado em camadas

O recurso de cache KV gerenciado em camadas aborda restrições de memória durante a inferência implementando uma estratégia de cache multi-camada. O cache de pares chave-valor é essencial para a eficiência da inferência em LLM. Ele armazena computações de atenção intermediárias de tokens anteriores, evitando recálculos redundantes e reduzindo significativamente a latência. Ao gerenciar cache em múltiplas camadas de armazenamento, o HyperPod viabiliza:

  • Redução da pressão de memória nos recursos de GPU
  • Suporte a janelas de contexto mais longas sem degradação de desempenho
  • Gerenciamento automático de cache sem intervenção manual

Roteamento inteligente

O roteamento inteligente otimiza a inferência direcionando requisições com prefixos de prompt compartilhados para a mesma instância de inferência, maximizando a reutilização do cache KV. Essa abordagem:

  • Roteia requisições estrategicamente para instâncias que já processaram prefixos similares
  • Acelera o processamento reutilizando dados de KV em cache
  • Reduz latência para conversas multi-volta e requisições em lote com contextos comuns

Benefícios de desempenho

Juntos, esses recursos oferecem melhorias substanciais:

  • Até 40% de redução em latência para requisições de inferência
  • 25% de melhoria em throughput no processamento de requisições
  • 25% de economia de custos em comparação com configurações baseline sem essas otimizações

Esses recursos estão disponíveis através do operador de inferência do HyperPod, fornecendo capacidades gerenciadas prontas para uso para implantações de LLM em produção. Para mais detalhes sobre esse recurso, consulte Cache KV em camadas gerenciado e roteamento inteligente para Amazon SageMaker HyperPod.

Suporte a GPU com Multi-Instance GPU (MIG)

O SageMaker HyperPod Inference agora oferece suporte a implantações de modelos em aceleradores que foram particionados usando a tecnologia NVIDIA Multi Instance GPU (MIG). Implantar modelos pequenos em GPUs grandes pode desperdiçar recursos. Para resolver isso, o SageMaker HyperPod permite usar uma fração de GPUs que funcionam isoladamente uma da outra.

Se a GPU já foi particionada, é possível implantar diretamente o JumpStartModel ou InferenceEndpointConfig usando a solução SageMaker HyperPod Inference.

Para JumpStartModels, use spec.server.acceleratorPartitionType para definir o perfil MIG de sua escolha:

apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name: deepseek
spec:
  sageMakerEndpoint:
    name: deepseek
  model:
    modelHubName: SageMakerPublicHub
    modelId: deepseek-llm-r1-distill-qwen-1-5b
  server:
    acceleratorPartitionType: mig-7g.40gb
    instanceType: ml.p4d.24xlarge

O JumpStartModel também conduz validação interna antes da implantação do modelo. É possível desativar essa validação usando o campo spec.server.validations.acceleratorPartitionValidation no YAML e configurando-o como false.

Para InferenceEndpointConfig, implante o modelo no perfil MIG de sua escolha usando os campos spec.worker.resources.requests e spec.worker.resources.limits:

apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
....
spec:
  worker:
    resources:
      requests:
        cpu: 5600m
        memory: 10Gi
        nvidia.com/mig-4g.71gb: 1
      limits:
        nvidia.com/mig-4g.71gb: 1

Com essas configurações, é possível usar outras tecnologias suportadas pelo SageMaker HyperPod Inference juntamente com a implantação do modelo em MIG. Para informações adicionais, consulte HyperPod agora oferece suporte a GPU Multi-Instance para maximizar utilização de GPU para tarefas de IA generativa.

Observabilidade

É possível monitorar métricas do HyperPod Inference através dos recursos de observabilidade do SageMaker HyperPod. Para habilitar esses recursos, siga as instruções em Acelere desenvolvimento de modelos de fundação com observabilidade com um clique no Amazon SageMaker HyperPod.

A observabilidade do HyperPod fornece dashboards integrados no Grafana. Por exemplo, o dashboard de Inferência oferece visibilidade em métricas relacionadas à inferência como Taxa de Requisições Recebidas, Latência e Tempo até Primeiro Byte (TTFB).

Dashboard Grafana de monitoramento — fonte: Aws

Executar notebooks em clusters HyperPod

Clusters HyperPod com orquestração Amazon EKS agora oferecem suporte à criação e gerenciamento de ambientes de desenvolvimento interativos como JupyterLab e Visual Studio Code de código aberto, simplificando o ciclo de vida de desenvolvimento de ML ao fornecer ambientes gerenciados para ferramentas familiares aos cientistas de dados.

Esse recurso introduz um novo complemento chamado Amazon SageMaker Spaces que permite aos desenvolvedores de IA criar e gerenciar ambientes autocontidos para executar notebooks. Agora é possível maximizar investimentos em GPU executando tanto cargas de trabalho interativas quanto seus trabalhos de treinamento na mesma infraestrutura, com suporte a alocações fracionais de GPU para melhorar eficiência de custos.

Arquitetura de notebook Jupyter em cluster HyperPod — fonte: Aws

A AWS está introduzindo uma nova capacidade para clusters do SageMaker HyperPod EKS que permite aos desenvolvedores de IA executar cargas de trabalho interativas de aprendizado de máquina diretamente no cluster HyperPod EKS. Esse recurso apresenta um novo complemento chamado Amazon SageMaker Spaces que possibilita aos desenvolvedores de IA criar e gerenciar ambientes autocontidos para execução de notebooks.

Conclusão

O Amazon SageMaker HyperPod oferece uma infraestrutura escalável e eficiente em custos para executar cargas de trabalho de inferência. Seguindo as práticas recomendadas apresentadas neste artigo, é possível utilizar as capacidades do HyperPod para implantar modelos de fundação usando integração com JumpStart em um clique, S3 e FSx para Lustre, escalabilidade automática gerenciada com Karpenter e infraestrutura unificada que se expande dinamicamente de zero para produção.

Com recursos como cache KV, roteamento inteligente e suporte a GPU Multi-Instance, é possível otimizar cargas de trabalho de inferência, reduzindo latência, aumentando throughput e diminuindo custos usando Spot Instances. Ao adotar essas práticas recomendadas, as organizações podem acelerar fluxos de trabalho de aprendizado de máquina, melhorar desempenho de modelos e atingir reduções significativas no custo total de propriedade, permitindo escalar IA generativa de forma responsável e eficiente em ambientes de produção.

Fonte

Best practices to run inference on Amazon SageMaker HyperPod (https://aws.amazon.com/blogs/machine-learning/best-practices-to-run-inference-on-amazon-sagemaker-hyperpod/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *