Phase 17 - Lesson 11
Serviço de LLM Multi-Região e Localidade de KV Cache
O balanceamento de carga por round-robin é ativamente prejudicial para inferência de LLM com cache. Uma requisição que não caia no nó que contém seu prefixo paga o custo total de prefill — cerca de 800 ms em P50 em um prompt longo versus ~80 ms com um acerto (hit) de cache. Em 2026, o padrão de produção é um roteador ciente de cache (vLLM Router em Rust, roteador llm-d) que consome eventos do KV cache e faz o roteamento com base na correspondência do hash do prefixo. Pesquisas recentes (GORGO) tornam a latência de rede entre regiões um termo explícito no objetivo do roteamento. Ofertas comerciais de "inferência entre regiões" (Bedrock cross-region inference, GKE multi-cluster gateways) tratam a inferência como opaca — lidam com a disponibilidade, não com o TTFT. O JPMorgan e a Mayo Clinic executaram um failover no us-east-1 em novembro de 2024 com duração de ~22 minutos. A realidade do DR (Disaster Recovery): 32% das falhas de DR em LLM ocorrem porque as equipes fizeram backup dos pesos, mas esqueceram arquivos do tokenizador ou configurações de quantização.
Tipo: Learn Idiomas: Python (stdlib, simulador simples de roteador ciente de cache de prefixo) Pré-requisitos: Phase 17 · 04 (vLLM Serving), Phase 17 · 06 (SGLang RadixAttention) Tempo: ~60 minutos
Objetivos de Aprendizado
- Explicar por que o balanceamento de carga por round-robin quebra a inferência com cache e quantificar a penalidade no TTFT.
- Diagramar um roteador ciente de cache: entradas (eventos de KV-cache), algoritmo (correspondência do hash de prefixo), desempate (utilização da GPU).
- Identificar a causa de 32% das falhas de DR para LLMs (falta de arquivos do tokenizador / configurações de quantização) e listar um checklist mínimo de três arquivos para DR.
- Distinguir as ofertas comerciais entre regiões (Bedrock CRI, GKE Multi-Cluster Gateway) do roteamento ciente de KV.
O Problema
Seu serviço roda no us-east-1, us-west-2 e eu-west-1. Você posiciona um balanceador de carga de aplicação (ALB) na frente com round-robin. A taxa de acerto de cache de prefixo (prefix cache hit rate) em produção cai para 8%. O TTFT P50 triplica. Os logs do vLLM mostram que cada requisição está pagando o custo total de prefill.
O round-robin é ideal para serviços sem estado (stateless). A inferência de LLM é persistente por projeto (stateful) — o KV cache codifica tudo o que o modelo já processou. Roteamento cego é roteamento direcionado ao cache errado.
À parte, sua equipe possui um plano de DR. Você faz o backup dos pesos do modelo para um bucket S3 em outra região. Uma falha regional ocorre; você tenta o failover; a réplica se recusa a iniciar. Você esqueceu que o tokenizer.json, a configuração de quantização e a configuração de escala RoPE estavam em um bucket separado que você não sincronizou.
O serviço de LLM multi-região é um problema de cache, de roteamento e de higiene de DR — não um problema de balanceador de carga comum.
O Conceito
Roteamento ciente de cache
A requisição chega com um prompt. O roteador gera o hash do prefixo (por exemplo, os primeiros 512 tokens) e pergunta a cada réplica: "você tem esse prefixo em cache?". As réplicas publicam eventos do KV cache em um canal pub/sub à medida que alocam e descartam blocos. O roteador escolhe a réplica com a correspondência ideal, recorrendo ao desempate baseado na utilização de GPU caso nenhuma corresponda.
vLLM Router (Rust, stack de produção de 2026): assina eventos kv.cache.block_added, mantém um mapeamento hash de prefixo → índice de réplica e realiza rotas com busca O(1). Recorre à menor profundidade de fila (least queue depth) se não houver correspondência.
roteador llm-d: mesmo padrão, nativo para Kubernetes. Publica eventos pela API ControlPlane.
SGLang RadixAttention (Phase 17 · 06) é o equivalente de nível intra-réplica. O roteamento entre réplicas ocorre estritamente a montante (upstream).
Os Números
TTFT P50 em um prompt de 2K tokens, Llama 3.3 70B FP8, H100:
- Acerto de cache (cache hit, mesma réplica, prefixo presente): ~80 ms.
- Erro de cache (cache miss, prefill frio): ~800 ms.
Uma diferença de 10x. Se o seu roteador atinge de 60 a 80% de cache de prefixo entre as réplicas, você aproxima o desempenho de uma única réplica na capacidade de N réplicas. Se atingir 10%, você obtém um desempenho equivalente ao escalonamento simples comum.
Multi-região possui uma nova restrição — a latência de rede
Tempo de ida e volta (RTT) entre regiões:
- us-east-1 ↔ us-west-2: ~65 ms.
- us-east-1 ↔ eu-west-1: ~75 ms.
- us-east-1 ↔ ap-southeast-1: ~220 ms.
Se o roteamento enviar uma requisição do us-east-1 para um prefixo quente no ap-southeast-1, a economia no prefill (800 → 80 ms) é anulada pelos 440 ms de ida e volta do tráfego físico. O projeto GORGO (pesquisa de 2026) aborda isso diretamente — minimizando a soma conjunta de prefill_time + network_latency, e não apenas o prefill isoladamente. Comumente, a melhor decisão é manter o roteamento regional, exceto em prefixos muito grandes de múltiplos megabytes onde o prefill domina o tempo total.
Ofertas comerciais de "inferência entre regiões" não auxiliam aqui
O AWS Bedrock cross-region inference direciona requisições automaticamente para outras regiões em situações de sobrecarga de capacidade. Ele otimiza a disponibilidade do serviço, não o TTFT, tratando a inferência de forma opaca. O GKE Multi-Cluster Gateway segue a mesma premissa — failover em nível de serviço, sem conhecimento sobre o KV cache.
Você ainda precisa de um roteador ciente de cache na camada de aplicação mesmo ao usar essas ofertas. Elas gerenciam cenários críticos de indisponibilidade regional (como quando o "us-east-1 parou de funcionar"). O roteamento ciente de cache soluciona a latência no TTFT.
Higiene de DR — o problema de 32% de arquivos ausentes
Uma estatística bastante citada em 2026: 32% das falhas de DR de LLM acontecem porque as equipes fizeram o backup dos pesos, mas esqueceram de:
tokenizer.jsonoutokenizer.model- Configurações de quantização (
quantize_config.json, escalas AWQ, zero-points do GPTQ) - Configurações específicas do modelo (escala RoPE, máscaras de atenção, templates de chat)
- Configurações de engine (
vllm_config.yaml, padrões de amostragem, manifestos de adaptadores LoRA)
A solução é adotar um manifesto de DR mínimo contendo três arquivos cruciais:
- Todos os arquivos do repositório do modelo no HF (pesos + configurações + tokenizador).
- A configuração de serviço específica da engine.
- O manifesto de implantação (Kubernetes YAML, Dockerfile, arquivos de bloqueio de dependências).
Além disso: execute simulações de DR trimestralmente. O drill de recuperação do us-east-1 do JPMorgan, que atingiu 22 minutos em novembro de 2024, só foi possível porque os procedimentos eram regularmente treinados.
A residência de dados é uma questão independente
Informações protegidas de clientes da UE (PHI) não podem deixar a região europeia. Se o seu roteador ciente de cache enviar uma requisição originada em Paris para o us-east-1 em função de um prefix hit, você violou as diretrizes do GDPR, independente do ganho no TTFT. Particione seus roteadores por limites legais de residência antes de aplicar otimizações de cache.
Números que você deve memorizar
- Diferença no TTFT entre cache hit e miss: ~10x (80 ms vs 800 ms em prompts de 2K).
- RTT entre regiões US-EU: ~75 ms.
- Falhas de DR: 32% com falta do tokenizador/configurações de quantização.
- Failover do us-east-1 pelo JPMorgan em Nov 2024: 22 minutos (SLA de 30 minutos).
Use-o
O code/main.py simula três estratégias de roteamento (round-robin, roteamento regional ciente de cache e roteamento global ciente de cache) em uma carga de trabalho multi-região. Ele reporta a taxa de acerto de cache, o TTFT P50/P99 e a fatura do tráfego entre regiões.
Entregue-o
Esta lição gera o documento outputs/skill-multi-region-router.md. Dadas as regiões de tráfego, limites legais de residência de dados e regras de SLA, o planejador projeta o plano de roteamento ideal.
Exercícios
- Execute
code/main.py. A partir de qual comprimento de prompt o roteamento entre regiões passa a superar o roteamento estritamente local, considerando um RTT de 75 ms? - Sua taxa de acerto de cache cai de 70% para 12%. Diagnostique três causas possíveis para essa queda e as métricas observáveis que confirmariam cada uma delas.
- Desenhe um manifesto de DR para um modelo de 70B quantizado em AWQ e servido no vLLM com 5 adaptadores LoRA. Indique detalhadamente cada arquivo e arquivo de configuração necessário.
- Argumente se o recurso Bedrock cross-region inference é "suficiente" para uma empresa de tecnologia financeira (fintech) operando sob SLAs rígidos de TTFT. Cite comportamentos de rede específicos do serviço.
- Uma requisição originada em Paris atinge um prefix hit no us-east-1. Você deve encaminhar essa rota? Escreva os termos da política de decisão.
Termos-Chave
| Termo | O que as pessoas dizem | O que realmente significa |
|---|---|---|
| Roteamento ciente de cache | "LB inteligente" | Roteamento baseado em hash de prefixo para a réplica que detém o respectivo KV cache |
| Eventos de KV-cache | "pub-sub de cache" | Notificações emitidas pelas réplicas ao alocar ou descartar blocos de cache, mapeadas pelo roteador |
| Hash de prefixo | "chave do cache" | Valor hash dos primeiros N tokens usado para consulta de cache pelo roteador |
| GORGO | "pesquisa de roteamento entre regiões" | arXiv 2602.11688; projeto acadêmico que insere latência física como termo do roteamento |
| Cross-region inference | "Bedrock CRI" | Produto da AWS; recurso de failover de disponibilidade do serviço, sem monitoramento de KV cache |
| Manifesto de DR | "lista de backup" | Lista completa de arquivos e dependências exigidos para restauração rápida — além dos pesos |
| Residência de dados | "barreira do GDPR" | Restrições legais que impedem que dados de usuários acessem regiões externas sem autorização |
| RTT | "tempo de ida e volta" | Latência física de tráfego de dados na rede; ~75 ms entre US-EU, ~220 ms entre US-APAC |
| LLM-aware LB | "LB com cache-hit" | Categoria de mercado para roteadores especializados cientes de cache para LLMs |
Leituras Adicionais
- BentoML — Multi-cloud and cross-region inference
- arXiv — GORGO (2602.11688) — Reuso de KV cache entre regiões com termo de latência de rede.
- TianPan — Multi-Region LLM Serving Cache Locality
- AWS Bedrock Cross-Region Inference — Documentação oficial do recurso de failover.
- vLLM Production Stack Router — Repositório do código fonte do roteador ciente de cache.