Por que Servir LLMs de Forma Eficiente é Crucial

Modelos abertos de fronteira como as séries Kimi K e GLM são poderosos, mas também muito exigentes. Eles são grandes, têm contexto longo e usam arquitetura de mistura de especialistas. Em GPUs, a memória enche rápido—muitas vezes o cache KV, não os pesos, é o gargalo. O Workers AI da Cloudflare resolve isso com três técnicas: quantizar o cache KV, comprimir os pesos do modelo e proteger o cache compartilhado. Vamos explorar cada uma delas!

Se você está construindo infraestrutura de IA, entender essas otimizações é essencial. Para uma visão mais ampla sobre resiliência de infraestrutura, veja nosso Relatório de Disrupções da Internet do Q1 2026.

GPU server rack with multiple accelerators for high-performance AI inference Software Concept Art

Técnica 1: Quantização do Cache KV

O cache KV armazena as chaves e valores de atenção para cada token processado, permitindo conversas longas. Por padrão, é 16-bit (BF16). A Cloudflare armazena em 8-bit (FP8), reduzindo o uso de memória pela metade. Para Kimi K2.6, a capacidade de contexto salta de ~686K para ~1.37M tokens.

Trade-offs de Performance:

  • Em qualquer nível de concorrência, BF16 é alguns por cento mais rápido por token.
  • BF16 fica sem memória com 32 requisições concorrentes; FP8 continua até 64, atingindo 2.192 tokens/seg—41% acima do pico de BF16, com ~30% menos custo por token.

Impacto na Precisão: Nos benchmarks (GSM8K, ARC, MMLU), FP8 e BF16 são indistinguíveis—diferenças estão dentro do ruído.

Exemplo de Código (Conceitual):

# Exemplo: Configurando quantização do cache KV no SGLang para produção
import sglang as sgl

llm = sgl.Engine(
    model_path="/models/kimi-k2.6",
    kv_cache_dtype="fp8_e4m3",  # Use FP8 para cache e economizar memória
    mem_fraction_static=0.8,     # Aloque 80% da memória GPU para cache/pesos
    enable_mixed_dtype=True,     # Permite dtypes diferentes para prefill/decode
)

# Prefill usa BF16 para fase de computação intensiva, decode usa FP8 para economia de memória
llm.set_cache_dtype(phase="prefill", dtype="bf16")
llm.set_cache_dtype(phase="decode", dtype="fp8_e4m3")

Developer monitoring KV cache usage and model performance on a dashboard Dev Environment Setup

Técnica 2: Compressão dos Pesos do Modelo

Para GLM 5.2, os pesos são comprimidos de FP8 para INT4, reduzindo o checkpoint de 705GB para 421GB (40% menor). Isso reduz a memória por GPU de ~88GB para ~52GB, liberando espaço para ~1.18M tokens de cache KV.

Ganhos de Velocidade:

  • Decode fica mais rápido porque é limitado por largura de banda; INT4 reduz movimento de dados.
  • Com 1 requisição concorrente, decode do GLM vai de 60 para 92 tokens/seg (+55%).
  • Prefill é limitado por computação; INT4 requer expansão, tornando-o mais lento (8.660 vs 10.160 tok/s). A Cloudflare usa pools separados para aplicar INT4 no decode e FP8 no prefill.

Precisão: INT4 e FP8 são indistinguíveis em todos os benchmarks, com diferenças abaixo de 0.8 pontos.

Network diagram showing distributed inference nodes and cache sharing Development Concept Image

Técnica 3: Protegendo um Cache KV Compartilhado

Com mais requisições compartilhando a mesma GPU, a integridade do cache é crítica. A Cloudflare implementa um sistema de tags: cada página física do cache recebe uma tag que muda quando é realocada, e as requisições verificam suas páginas esperadas antes de ler. Se houver divergência, a requisição é abortada para evitar corrupção de dados.

Overhead:

  • Impacto no throughput: menos de 1% em todos os níveis de concorrência.
  • Impacto na latência p95: menos de 1%.
  • A checagem roda em lote separado, evitando corridas na GPU.

Limitações e Cuidados

  • Trade-offs da quantização: Embora a precisão se mantenha nos benchmarks testados, casos extremos podem revelar diferenças sutis. Sempre valide em seus próprios dados.
  • Dependência de hardware: Suporte a FP8 e INT4 varia por arquitetura; Blackwell introduz NVFP4, que pode melhorar ainda mais a eficiência.
  • Complexidade: Essas técnicas exigem conhecimento profundo de frameworks como SGLang e podem não ser necessárias para modelos menores.

Próximos Passos para Aprender

  • Mergulhe no código-fonte do SGLang para entender atenção paginada e gerenciamento de cache.
  • Experimente diferentes níveis de quantização (FP8, INT4, NVFP4) e meça o impacto em seus workloads.
  • Explore arquiteturas de prefill/decode separados para otimizar seu stack de inferência.

Conclusão

Servir LLMs eficientemente é sobre fazer trade-offs inteligentes entre memória, velocidade e precisão. Ao quantizar o cache KV e os pesos, e garantir segurança do cache, a Cloudflare entrega inferência de alta performance a custo menor. Essa mentalidade de engenharia—medir, validar e iterar—é chave para construir infraestrutura de IA escalável.

Para mais sobre construção de sistemas de IA com privacidade, veja nosso guia sobre classificação de dados nativa de IA.

Este conteúdo foi elaborado com o auxílio de ferramentas de IA, com base em fontes confiáveis, e revisado pela nossa equipe editorial antes da publicação. Não substitui o aconselhamento de um profissional especializado.