Como reservar capacidade GPU para endpoints de inferência no SageMaker usando planos de treinamento

Introdução à reserva de capacidade GPU para inferência no SageMaker
Executar inferência com grandes modelos de linguagem (LLMs) exige capacidade GPU confiável, especialmente durante períodos críticos de avaliação, testes temporários de produção ou picos de demanda. A disponibilidade imprevisível de instâncias sob demanda pode atrasar implantações e prejudicar a performance das aplicações.
Para resolver isso, o Amazon SageMaker AI oferece planos de treinamento que permitem reservar capacidade computacional para janelas de tempo específicas. Embora originalmente criados para cargas de treinamento, esses planos agora suportam endpoints de inferência, garantindo GPU da família p para workloads temporários de inferência com disponibilidade previsível.
Visão geral do fluxo para reservar e usar capacidade GPU com planos de treinamento
O processo consiste em quatro fases principais:
- Identificar requisitos de capacidade: definir tipo e quantidade de instância, além da duração necessária.
- Buscar ofertas disponíveis: consultar capacidade disponível para o período desejado.
- Criar a reserva do plano de treinamento: selecionar a oferta e gerar o ARN de reserva.
- Implantar e gerenciar o endpoint: configurar o endpoint SageMaker para usar a capacidade reservada e controlar seu ciclo de vida.
Pré-requisitos para seguir o tutorial
- Função IAM com permissões para execução no SageMaker AI.
- Modelo treinado e armazenado no Amazon S3.
- CLI da AWS instalado e configurado, ou acesso ao console SageMaker AI.
- Conta AWS ativa e configurada para usar SageMaker AI.
Passo 1: Buscar capacidade GPU disponível e criar reserva
Suponha que uma equipe precise de uma instância ml.p5.48xlarge por uma semana para avaliação de modelos a partir de uma data específica. Usando o CLI da AWS, execute o comando abaixo para buscar ofertas:
aws sagemaker search-training-plan-offerings \
--target-resources "endpoint" \
--instance-type "ml.p5.48xlarge" \
--instance-count 1 \
--duration-hours 168 \
--start-time-after "2025-01-27T15:48:14-04:00" \
--end-time-before "2025-01-31T14:48:14-05:00"
O resultado traz detalhes como ID da oferta, zona de disponibilidade, preço e janela de reserva. Após escolher, crie a reserva:
aws sagemaker create-training-plan \
--training-plan-offering-id "tpo-SHA-256-hash-value" \
--training-plan-name "p4-for-inference-endpoint"
O comando retorna o ARN do plano de treinamento, que será usado para vincular o endpoint à capacidade reservada.
Alternativamente, é possível realizar essa busca e reserva diretamente pelo console SageMaker AI, navegando até Model training & customization > Training plans e seguindo o fluxo visual para pesquisa, detalhamento e compra.
Passo 2: Configurar o endpoint com a reserva do plano de treinamento
Ao criar a configuração do endpoint, inclua o objeto CapacityReservationConfig na seção ProductionVariants, apontando para o ARN da reserva:
--endpoint-config-name "ftp-ep-config" \
--production-variants '[{
"VariantName": "AllTraffic",
"ModelName": "my-model",
"InitialInstanceCount": 1,
"InstanceType": "ml.p5.48xlarge",
"InitialVariantWeight": 1.0,
"CapacityReservationConfig": {
"CapacityReservationPreference": "capacity-reservations-only",
"MlReservationArn": "arn:aws:sagemaker:us-east-1:123456789123:training-plan/p4-for-inference-endpoint"
}
}]'
O parâmetro CapacityReservationPreference com valor capacity-reservations-only garante que o endpoint utilize somente a capacidade reservada e será desativado ao término da reserva, evitando cobranças inesperadas.
Passo 3: Implantar o endpoint na capacidade reservada
Com a configuração pronta, crie o endpoint:
aws sagemaker create-endpoint \
--endpoint-name "my-endpoint" \
--endpoint-config-name "ftp-ep-config"
Após alguns minutos, o endpoint estará ativo e pronto para receber requisições de inferência usando a capacidade garantida pela reserva.
Passo 4: Invocar o endpoint durante o período ativo
Use o comando abaixo para enviar dados para inferência e receber respostas:
aws sagemaker-runtime invoke-endpoint \
--endpoint-name "my-endpoint" \
--body fileb://input.json \
--content-type "application/json" \
output.json
Durante o período da reserva, o endpoint opera com capacidade garantida, assegurando desempenho estável para testes e benchmarks.
Passo 5: Comportamento do endpoint após expiração da reserva
Se a reserva expirar enquanto o endpoint ainda estiver ativo, e com a configuração capacity-reservations-only, as invocações falharão com erro de capacidade:
{
"Error": {
"Code": "ModelError",
"Message": "Endpoint capacity reservation has expired. Please update endpoint configuration."
}
}
Para retomar o serviço, é necessário criar nova reserva e atualizar a configuração do endpoint ou migrar para capacidade sob demanda, conforme o passo a seguir.
Passo 6: Atualizar e migrar o endpoint
- Atualizar modelo na reserva: crie uma nova configuração com o modelo atualizado e o mesmo ARN da reserva, depois atualize o endpoint.
- Migrar para capacidade sob demanda: crie configuração sem referência ao plano de treinamento e atualize o endpoint para continuar o serviço após o fim da reserva.
Passo 7: Escalar endpoint dentro dos limites da reserva
Se a reserva contemplar mais instâncias do que as inicialmente implantadas, é possível aumentar a contagem durante o período ativo:
aws sagemaker create-endpoint-config \
--endpoint-config-name "ftp-ep-config-scaled" \
--production-variants '[{
"VariantName": "AllTraffic",
"ModelName": "my-model",
"InitialInstanceCount": 2,
"InstanceType": "ml.p5.48xlarge",
"InitialVariantWeight": 1.0,
"CapacityReservationConfig": {
"CapacityReservationPreference": "capacity-reservations-only",
"MlReservationArn": "arn:aws:sagemaker:us-east-1:123456789123:training-plan/p4-for-inference-endpoint"
}
}]'
aws sagemaker update-endpoint \
--endpoint-name "my-endpoint" \
--endpoint-config-name "ftp-ep-config-scaled"
Tentar ultrapassar a capacidade reservada gerará erro de validação.
Passo 8: Encerrar e limpar o endpoint após uso
Finalizada a avaliação, delete o endpoint para liberar recursos e evitar cobranças adicionais.