13 de maio de 20265 min de leitura

Escalabilidade e Eficiência: Otimizando o Autoscaling de Inferência de LLMs no AKS

Banner - Escalabilidade e Eficiência: Otimizando o Autoscaling de Inferência de LLMs no AKS

TLD;DR: Escalabilidade em LLMs

Este artigo explora os desafios práticos de escalar a inferência de LLMs no Azure Kubernetes Service (AKS), focando em como evitar o superdimensionamento e reduzir a latência. A conclusão principal é que métricas padrão (como CPU/memória) são insuficientes; o uso do NVIDIA Dynamo combinado com KEDA, orquestrando métricas específicas de LLM (como TTFT), permite um escalonamento inteligente que melhora a experiência do usuário e otimiza custos operacionais em ambientes de alta demanda.

A transição de modelos de linguagem (LLMs) da fase experimental para produção traz desafios técnicos que muitas equipes ainda subestimam. Enquanto o treinamento ganha holofotes, a inferência em escala revela uma complexidade operacional real: como equilibrar performance (SLA), custo e experiência do usuário sob tráfego imprevisível?

Neste artigo, analisamos como o uso do Azure Kubernetes Service (AKS) em conjunto com o NVIDIA Dynamo permite construir uma plataforma de inferência pronta para o mercado, focando em estratégias de autoscaling que vão além do óbvio.

Por que o autoscaling de inferência de LLMs é um desafio complexo?

O oversized (superdimensionamento) em GPUs gera desperdício severo de custos, enquanto o undersizing degrada drasticamente a latência percebida.

1. Métricas não-lineares

O custo de processamento de um request em uma LLM varia drasticamente dependendo de:

  • Tamanho e precisão do modelo.
  • Comprimento dos tokens de entrada e saída.
  • KV cache hit rate.

Monitorar apenas CPU ou memória é um "tiro no escuro". O uso de recursos de GPU não traduz fielmente a pressão real da carga de trabalho.

2. Defasagem na esteira (Pipeline Multi-Fase)

A inferência de LLM é um processo sequencial composto por:

  • Prefill (context processing).
  • Routing.
  • Decode (geração de tokens).

Cada fase possui requisitos de recursos distintos. Tentar escalar tudo como um bloco único é ineficiente.

3. As limitações do autoscaling em GPU

Ao contrário de instâncias tradicionais, GPUs:

  • Têm provisioning mais lento.
  • São menos elásticas.
  • Apresentam restrições de disponibilidade e custos elevados.

Para times de engenharia, a estratégia vencedora foca em packing eficiente e a manutenção de capacidade "quente" de forma orquestrada.

Otimizando a infraestrutura no Azure

O portfólio de VMs otimizadas para IA no Azure exige uma curadoria baseada em requisitos claros: throughput, latência (SLOs) e custos. O AKS provê a base necessária através de node pools com autoscaling nativo, permitindo que a infraestrutura se molde à demanda atual.

Arquitetura de alocação no AKS

O que compõe o ecossistema NVIDIA Dynamo no AKS?

O NVIDIA Dynamo não é apenas mais uma ferramenta; ele orquestra a inferência como um sistema único:

  • Smart Routing: Distribuição inteligente entre workers.
  • KV Cache Management: Otimiza a eficiência de memória.
  • Low-Latency Communication: Otimização crítica de GPU-to-GPU.
  • GPU Planner: Coordenador de decisões de escala.

A "mágica" do autoscaling: Integrando Dynamo e AKS

O diferencial está na integração nativa com o ecossistema Kubernetes. O Dynamo expõe subresources que se comunicam perfeitamente com:

  • Kubernetes HPA (Horizontal Pod Autoscaler).
  • KEDA (Event-Driven Autoscaling).
  • Dynamo Planner.
  • Observability: Através do Azure Managed Prometheus e Grafana, obtemos visibilidade em tempo real sobre queue depth, latência de tokens e decisões de scaling baseadas em dados.

Dashboard de monitoramento de inferência

Quatro estratégias para fazer o autoscaling funcionar

  1. Kubernetes HPA: Ideal para serviços frontend leves.
  2. KEDA: Perfeito para métricas externas, scale-to-zero e limites fixos.
  3. Dynamo Planner: O padrão ouro para inferência, permitindo escalonamento desagregado (Prefill vs. Decode) focado em SLAs como TTFT (Time to First Token).
  4. Custom Controllers: Para lógica de negócio complexa ou necessidades de nicho.

Alinhamento de métricas: O segredo da estabilidade

A lição de casa em produção é garantir que o sinal de scaling reflita o gargalo real:

  • Frontend: CPU e Request Rate.
  • Prefill Workers: Queue depth e TTFT.
  • Decode Workers: KV cache utilization e ITL (Inter-token latency).

Melhores práticas para evitar o retrabalho

  • Evite conflitos: Não coloque múltiplos autoscalers brigando pelo mesmo workload.
  • Estabilização é vital: Configure janelas de estabilização adequadas para evitar o thrashing (escala-sobe-e-desce contínuo).
  • Limites conservadores: Evite min/max replicas arbitrários; entenda seus padrões de tráfego antes de definir os limites.

Análise de caso: TTFT Driven com KEDA

Ao rodar um workload com tráfego constante de 36 RPS, o uso de TTFT p95 como sinal de escala provou ser muito superior a métricas de utilização de hardware.

Gráfico de comportamento de latência

Lições aprendidas na timeline:

  • Cold Start: A subida inicial leva cerca de 8 minutos para provisão de nós e carregamento do modelo.
  • Warm Scaling: Segundas e terceiras instâncias de scale-up são quase imediatas enquanto os nós permanecem "quentes" (drivers e modelos carregados).
  • Cooldown: Definir um tempo de cooldown de 120 segundos foi essencial para evitar que a redução de escala matasse instâncias que continuavam sendo necessárias para manter o SLA sob carga constante.

Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset