A Amazon Web Services (AWS) anunciou uma novidade importante para usuários do Amazon SageMaker AI: a introdução do recurso capacity aware instance pool, que permite a configuração de uma lista priorizada de tipos de instâncias para endpoints de inferência. Com essa funcionalidade, o SageMaker AI gerencia automaticamente a alocação de instâncias, alternando para instâncias alternativas quando a capacidade do tipo preferido estiver limitada, garantindo alta disponibilidade e escalabilidade sem intervenção manual.
\n\n
Desafios anteriores na criação e escalabilidade de endpoints
\n
Antes do lançamento, a criação de um endpoint de inferência no SageMaker exigia a escolha de um único tipo de instância. Caso essa instância não tivesse capacidade disponível, o endpoint simplesmente falhava na criação, forçando o usuário a alterar manualmente a configuração e tentar novamente — um processo que consumia tempo e recursos. Além disso, durante eventos de auto scaling, se a instância preferida estivesse indisponível, o escalonamento não ocorria, comprometendo a capacidade de atendimento do endpoint. Na redução de escala, não havia distinção entre instâncias preferenciais e fallback, o que dificultava a otimização do uso dos recursos. Por fim, as métricas do Amazon CloudWatch eram agregadas, sem detalhamento por tipo de instância, limitando a análise precisa do desempenho.
\n\n
Como funciona o pool de instâncias com fallback automático
\n
Com o novo recurso, o usuário define uma lista ordenada de tipos de instâncias, chamada de instance pools, onde cada tipo recebe uma prioridade. O SageMaker AI tenta provisionar o endpoint utilizando o tipo de instância com prioridade mais alta. Se não houver capacidade, ele automaticamente tenta o próximo tipo da lista, e assim por diante, até encontrar uma instância disponível. Esse processo ocorre tanto na criação do endpoint quanto durante eventos de escala para cima e para baixo.
\n
- \n
- Provisionamento rápido: o endpoint alcança o estado InService em minutos, sem necessidade de intervenção manual.
- Escalabilidade contínua: o auto scaling escala para o próximo tipo disponível caso a instância preferida esteja indisponível, mantendo o atendimento.
- Otimização de escala para baixo: instâncias de menor prioridade são removidas primeiro, mantendo preferencialmente as melhores instâncias em operação.
- Métricas detalhadas: todos os indicadores do CloudWatch agora incluem a dimensão
InstanceType, facilitando o monitoramento individualizado por tipo de instância.
\n
\n
\n
\n
\n\n
Modelos otimizados para diferentes instâncias
\n
Como os tipos de instância podem variar em memória, capacidade computacional e arquitetura, modelos otimizados para uma instância de alta performance podem não funcionar eficientemente em instâncias fallback. Para resolver isso, o SageMaker AI oferece duas abordagens:
\n
- \n
- Modelos otimizados pelo usuário: você pode preparar diferentes artefatos de modelo, cada um ajustado para um tipo específico de instância, e referenciá-los na configuração do endpoint usando
ModelNameOverride. - Recomendações automáticas do SageMaker AI: usando o recurso de inference recommendations, o SageMaker gera otimizações específicas para cada instância, incluindo técnicas como decodificação especulativa e quantização.
\n
\n
\n\n
Auto scaling e métricas ponderadas para frota heterogênea
\n
Para frotas compostas por diferentes tipos de instâncias, o SageMaker AI permite criar métricas ponderadas no CloudWatch que consideram a capacidade máxima de cada tipo. Isso evita distorções no monitoramento, garantindo que o auto scaling responda adequadamente ao uso real da frota.
\n
aas.put_scaling_policy(\n PolicyName="weighted-utilization-scaling",\n ServiceNamespace="sagemaker",\n ResourceId="endpoint/my-heterog-endpoint/variant/primary",\n ScalableDimension="sagemaker:variant:DesiredInstanceCount",\n PolicyType="TargetTrackingScaling",\n TargetTrackingScalingPolicyConfiguration={\n "TargetValue": 0.7, // escala acima de 70% da capacidade ponderada\n "CustomizedMetricSpecification": {\n "Metrics": [\n // Definição das métricas por tipo de instância\n ]\n },\n },\n)\n
\n
Esse método torna o dimensionamento automático mais eficiente em ambientes com hardware variado.
\n\n
Configuração e migração para pools de instâncias
\n
Para criar um endpoint novo com pools de instâncias, o usuário deve:
\n
- \n
- Escolher os tipos de instâncias e definir a prioridade.
- Preparar modelos otimizados para cada tipo ou usar as recomendações do SageMaker AI.
- Criar a configuração do endpoint usando o campo
InstancePoolsno lugar doInstanceType. - Criar o endpoint, que será provisionado automaticamente conforme a capacidade disponível.
- Configurar o monitoramento detalhado via CloudWatch.
\n
\n
\n
\n
\n
\n
Para migrar um endpoint existente, basta criar uma nova configuração substituindo o campo único InstanceType por uma lista InstancePools que inclua o tipo atual com prioridade 1 e as opções fallback com prioridades inferiores. A atualização do endpoint é feita via API, mantendo o serviço disponível durante o processo.
\n
# Exemplo de migração com boto3\nsm.create_endpoint_config(\n EndpointConfigName="my-config-v2",\n ProductionVariants=[{\n "VariantName": "primary",\n "ModelName": "my-llm",\n "InitialInstanceCount": 2,\n "InstancePools": [\n {"InstanceType": "ml.g6e.48xlarge", "Priority": 1},\n {"InstanceType": "ml.g6.48xlarge", "Priority": 2},\n {"InstanceType": "ml.p4d.24xlarge", "Priority": 3}\n ],\n }],\n)\nsm.update_endpoint(\n EndpointName="my-endpoint",\n EndpointConfigName="my-config-v2",\n)\n
\n\n
Recomendações para roteamento e atualizações
\n
Para otimizar o balanceamento de carga entre instâncias com diferentes capacidades, recomenda-se ativar o roteamento Least Outstanding Requests (LOR). Essa estratégia direciona as requisições para a instância com menor número de pedidos em andamento, aproveitando melhor a capacidade dos nós mais potentes.
\n
Além disso, o SageMaker AI suporta implantações blue/green e rolling com fallback automático, garantindo alta disponibilidade e segurança durante atualizações e rollbacks.
\n\n
Disponibilidade e acesso
\n
O suporte a pools de instâncias para endpoints de inferência do SageMaker AI está disponível em todas as regiões comerciais da AWS. Para começar, basta ter uma conta AWS com permissões adequadas (sagemaker:CreateEndpointConfig, sagemaker:CreateEndpoint e sagemaker:UpdateEndpoint), além de modelos armazenados no Amazon S3.
\n
O recurso pode ser acessado via Console AWS, AWS CLI ou SDKs, incluindo o Boto3 (versão 1.43.1 ou superior).
\n\n
Impacto prático para os usuários
\n
Essa inovação reduz significativamente o tempo e esforço para provisionar e escalar endpoints de inferência, especialmente para workloads de IA generativa que demandam GPUs específicas. A capacidade de fallback automático minimiza falhas por indisponibilidade de hardware, melhora a eficiência do uso da infraestrutura e proporciona maior visibilidade operacional.
\n\n
Links úteis
\n
