Seu roadmap de IA morre onde a memória começa. As manchetes não estão blefando: vários relatórios apontam que o suprimento de RAM e HBM continuará apertado, e análises de imagens de satélite indicam atrasos de meses na nova capacidade de data centers. Se o seu plano assume memória de GPU elástica, você passará 2026 no purgatório de compras enquanto concorrentes entregam experiências on-device, quantizadas e conscientes de memória.
Isto não é uma história de escassez de GPU. É pior: é uma história de gargalo de memória. FLOPS às vezes você aluga. Memória, muitas vezes, não. A boa notícia: dá para projetar em torno disso. Aqui vai um playbook prático, orientado por números, para entregar funcionalidades de IA sob restrições duras de RAM.
A restrição a respeitar: memória vence FLOPS
A maioria das falhas de LLM em produção se explica por memória, não por computação bruta. Inferência vive e morre em duas coisas:
- Memória de pesos: parâmetros do modelo (mais overhead de runtime/fragmentação)
- Memória do cache de KV: o histórico de atenção que você armazena por token, por camada, por sequência
Um cálculo de guardanapo transforma debates de design em decisões. Use a geometria ao estilo Llama como guia:
- Pesos: FP16 ≈ 2 bytes/parâmetro. 7B ≈ 14 GB; INT8 ≈ 7 GB; INT4 ≈ 3,5 GB
- Cache de KV por token ≈ 2 × hidden_size × n_layers × bytes_per_element
Para um modelo da classe 7B (hidden≈4096, layers≈32):
- KV em FP16 por token: 2 × 4096 × 32 × 2 bytes ≈ 524 KB/token
- Em contexto 4K: ≈ 2,0 GB por sequência ativa
- Com KV a 8 bits: ≈ 1,0 GB; com KV a 4 bits: ≈ 0,5 GB
Checagem de realidade: um modelo 7B INT4 (≈3,5 GB de pesos) com uma única sequência 4K e KV em FP16 já consome ≈5,5–6,5 GB no total após overhead. A concorrência explode a memória de KV linearmente. Dezesseis sequências 4K concorrentes? Você está olhando para ≈32 GB só de cache de KV, antes dos pesos. É por isso que sua placa de 24 GB engasga enquanto o profiler diz que os SMs estão ociosos.
Um framework de orçamentação de memória para você passar ao seu time
Antes de discutir famílias de modelos, faça isto para cada workload:
- Defina SLOs alvo de qualidade e latência (por exemplo, p95 de TTFB ≤ 300 ms, p95 de latência ≤ 2,5 s, saída média de 200 tokens).
- Estime sequências concorrentes de pico por GPU para esse SLO (seja honesto quanto a picos/intermitência).
- Escolha uma variante de modelo e um plano de quantização (pesos INT4/8, KV em 8/4 bits).
- Calcule memória de pesos + memória de KV + 15–25% de folga para runtime/fragmentação.
- Se não couber: reduza o contexto, quantize o KV, troque o runtime ou reduza a concorrência.
Monte uma única planilha com linhas por endpoint e colunas para os itens acima. Se o seu orçamento não fecha, seu roadmap também não.
Exemplo prático: endpoint de chat 7B
- Modelo: 7B INT4 (≈3,5 GB)
- Contexto: 4K; KV a 8 bits (≈1,0 GB por sequência ativa)
- Meta de concorrência por GPU: 12
- Subtotal de KV: ≈12 GB; pesos: ≈3,5 GB; overhead de 20%: ≈3,1 GB
- Total: ≈18,6 GB
Isto pode caber em uma placa de 24 GB com um runtime cuidadoso (KV paginado, baixa fragmentação). A mesma configuração com KV em FP16 ficaria em ≈30+ GB e não caberia. Esse único ajuste (quantização do KV) é a diferença entre entregar agora e esperar seis meses por GPUs maiores.
Exemplo prático: sumarizador 13B com RAG
- Modelo: 13B INT4 (≈6,5–7,0 GB)
- Contexto: 8K; KV a 4 bits (≈0,8 MB/token) → ≈3,2 GB por sequência
- Concorrência: 6
- Subtotal de KV: ≈19,2 GB; pesos: ≈7 GB; overhead de 20%: ≈5,2 GB
- Total: ≈31,4 GB
Agora você está no território de 40 GB+. Opções: reduzir o contexto para 4K (≈16 GB de KV), usar retrieval para manter prompts enxutos ou dividir em duas GPUs menores com paralelismo de tensores/sequências (aceitando sobrecarga de rede e jitter).
Alavancas de engenharia para cortar memória sem matar a qualidade
Não há bala de prata; há um stack. Seu objetivo é combinar ganhos de 1,2–2,0x suficientes para abrir a folga necessária.
Quantize as coisas certas do jeito certo
- Pesos: INT4 (AWQ/GPTQ/SpQR) reduz memória em 3–4x com perda mínima de qualidade em 7B/13B. Valide no seu harness de avaliação, não só em screenshots do MT-Bench.
- Cache de KV: 8 bits costuma ser visualmente sem perdas; 4 bits pode ser ok para assistentes/chat, mas pode degradar código ou matemática. Teste por endpoint.
- Ativações (treino/fine-tuning): FP8/INT8 + checkpointing de ativações são mandatórios se você não está em placas de 80 GB+.
Controle o contexto, não o idolatre
- KV domina a memória em contextos longos. Se você raramente usa 32K, limite por padrão a 4–8K e exija intenção explícita do usuário para ir além.
- Use RAG para manter curto: retrieval e sumarização antes da geração é melhor do que despejar 100K tokens de documentos brutos no prompt.
- Streaming de resposta não economiza memória; ele apenas melhora a latência percebida. Faça, mas não confunda isso com correção.
Use runtimes implacáveis com memória
- vLLM ou SGLang: paged attention e batching contínuo aumentam o throughput e limitam a fragmentação de KV; equipes no mundo real relatam 1,5–3x tokens/s/GPU versus inferência ingênua em PyTorch.
- TensorRT-LLM ou MLC/llama.cpp para alvos quantizados/Metal/WebGPU quando aplicável.
- Monitore o comportamento do alocador. Um custo de fragmentação de 20% é comum; >30% é bug para corrigir, não custo do negócio.
Decodificação especulativa e destilação
- Decodificação especulativa com um modelo "draft" menor frequentemente gera acelerações de 1,3–1,8x no tempo real (wall-clock) sem aumentar muito a memória. Emparelhe um draft de 3B com seu alvo de 7–13B.
- Destile variantes específicas de tarefa: para classificação/extração, um modelo de 1–3B é mais que suficiente e reduz drasticamente pesos e KV.
Faça fine-tuning de adapters, não de modelos completos
- Memória de fine-tuning completo = pesos + gradientes + estados do otimizador + ativações. Com Adam, só os estados do otimizador adicionam 2x os parâmetros. Somando tudo, você está vendo 12–20x bytes por parâmetro em trânsito. Isso dá 160–280 GB para um passo de treino de um 7B em FP16.
- LoRA/QLoRA reduz isso para adições de poucos GB e permite manter os pesos base quantizados.
Movimentos de arquitetura de sistema que destravam capacidade
Explore inferência on-device e no navegador
Os apps de IA estão indo para o seu PC por um motivo: a memória do cliente é gratuita para você e abundante. Use isso.
- Apple Silicon (M3/M4) com Metal e WebGPU consegue rodar modelos de 1–3B em velocidades utilizáveis; demos recentes mostram inferência de GPU zero-copy a partir de WebAssembly no Apple Silicon, o que remove toda uma classe de cópias host-dispositivo desperdiçadas.
- Entregue níveis de "assistência" que por padrão usam um modelo pequeno on-device e só delegam ao servidor por confiança/roteamento. De 30–50% das consultas podem ficar locais se você projetar para isso.
- WebLLM/MLC + modelos quantizados no navegador são pré-requisitos para UX de baixa latência em que privacidade é um bônus, não uma restrição.
Amplie seu alvo de hardware
- Não espere por um único SKU de GPU. Dê suporte a NVIDIA (A100/H100/L40S), AMD (MI300/Strix Halo iGPU para edge) e Apple Silicon via runtimes portáteis.
- ROCm amadureceu; para a escala de 7–13B, é viável em produção. Valide os kernels de que você depende (FlashAttention, ops fundidas) antes de se comprometer.
Fatie com inteligência, não heroicamente
- Paralelismo de tensores/sequências em duas GPUs médias é melhor do que esperar meses por placas de 80 GB. Preveja perda de 10–20% de throughput por sobrecarga de interconexão.
- Paginar KV para RAM de CPU pode elevar o teto de concorrência a um custo de latência. Use isso para endpoints de background/batch, não para chat.
Aquisição: assuma 6–9 meses para capacidade "fácil"
- GPUs de memória grande on-demand na nuvem são elásticas, mas pouco confiáveis em escala. Reserve capacidade ou diversifique regiões/provedores.
- Instâncias spot/marketplaces parecem baratas no papel; modele taxas de preempção nos seus SLOs e construa caminhos de checkpoint/resume.
- Os prazos de colo podem exceder dois trimestres. Compre priorizando densidade de energia (kW/rack), depois I/O de rede e só então GPUs. Memória só é útil se você conseguir mantê-la alimentada.
Como sanidade, modele seu custo efetivo por milhão de tokens de saída em SLOs de p95 em três cenários: nuvem on-demand, nuvem reservada e híbrido (edge + GPUs de nuvem menores). Muitas equipes encontram economias de 20–40% no híbrido simplesmente ao descarregar consultas "fáceis" para edge/on-device e dimensionar corretamente o contexto no servidor.
Observabilidade: torne a memória um SLI de primeira classe
Seus dashboards não devem parar em tokens/s e latência. Acompanhe memória onde importa:
- Bytes de KV de pico por requisição e residência dos pesos
- Fragmentação do alocador e RSS de pico
- Tamanho de batch, concorrência efetiva e distribuições de comprimento de contexto
- Tokens/s por GPU e time-to-first-token (TTFB) em p50/p95
Padronize unidades para evitar "sopa de dashboard". Requisições por segundo (r/s), tokens por segundo (tok/s), bytes; evite abreviações customizadas. Seus SREs e o time de finanças vão agradecer.
Governança: entregue funcionalidades que caibam no orçamento
- Introduza "orçamentos de contexto" por endpoint: ex., 4K padrão, 8K com justificativa, 32K só para admins/planos enterprise.
- Implemente controle de admissão na concorrência por GPU. Se seu orçamento é 12 sequências/GPU, corte em 12, não em 20. Latência aos solavancos é pior do que um 429 com retry-after.
- Torne as degradações explícitas: fallback para modelo pequeno, "resumir e depois gerar" ou delegar ao servidor.
Um plano de 90 dias para reduzir o risco do seu roadmap de IA
Semanas 1–2: Inventário e baselines
- Liste todo endpoint e job batch de IA. Para cada um: modelo, quantização, contexto, concorrência, SLOs.
- Instrumente memória de pico e uso de KV por requisição em staging. Não adivinhe.
Semanas 3–4: Prototipe a stack de memória
- Construa dois pipelines de referência por classe de workload: (a) vLLM + pesos INT4 + KV a 8 bits; (b) llama.cpp/MLC para on-device/web com um modelo destilado de 1–3B.
- Compare qualidade e latência nos seus conjuntos de avaliação. Escolha os padrões.
Semanas 5–6: Controles de contexto e roteamento
- Faça cumprir os orçamentos de contexto, adicione pré-processamento de retrieval e conecte roteamento baseado em confiança para modelos pequenos on-device.
- Implemente decodificação especulativa no endpoint de chat de maior tráfego. Valide que não há regressão de qualidade.
Semanas 7–10: Coloque em produção
- Faça o rollout de vLLM/SGLang com paged attention para endpoints de servidor. Mantenha a fragmentação do alocador abaixo de 25%.
- Defina limites de concorrência e limiares de autoscaling pela memória medida, não só pela utilização de CPU/GPU.
- Publique os SLOs e treine o suporte na política de degradação.
Semanas 11–12: Diversificação de fornecedores e regiões
- Reserve capacidade onde necessário; valide caminhos em AMD/Apple Silicon para reduzir risco de fornecedor.
- Rode um game day de failover. Meça o custo de preempção e recuperação. Corrija o que quebrar.
O que esperar de um parceiro nearshore em um mundo com restrições de memória
Se você trouxer um parceiro, faça do domínio de memória um requisito. Concretamente, peça por:
- Implantações comprovadas com pesos INT4/8 e KV em 8/4 bits sem colapso de qualidade
- Experiência com vLLM/SGLang, TensorRT-LLM e WebGPU/Metal para on-device
- Um harness de avaliação de verdade (métricas específicas de tarefa, não apenas leaderboards genéricos)
- Playbooks operacionais para limites de concorrência, degradação e observabilidade
Uma equipe baseada no Brazil com forte familiaridade com Apple Silicon pode avançar rápido em caminhos on-device/navegador — muitos devs sêniores já entregam workloads em Metal/WebGPU e testam em laptops da série M por padrão. A vantagem agora não é só custo — é tempo de ciclo. Você quer um time que trate memória como uma restrição de produto, não um ticket para abrir com infra.
No fim das contas
A escassez de HBM/RAM e os atrasos em data centers não vão sumir nos seus prazos. As empresas que vencerem em 2026 vão agir como engenheiras de sistemas: vão medir memória, orçamentá-la e projetar funcionalidades em torno disso. Se você fizer isso, não precisa de um milagre de GPUs para entregar. Você precisa de uma planilha, um runtime implacável e vontade de cortar contexto onde não compensa.
Pontos-chave
- Memória, não computação, é sua principal restrição em produção. Orce pesos + KV + overhead por endpoint antes de discutir famílias de modelos.
- Quantize tanto os pesos (INT4/8) quanto o KV (8/4 bits). Esses dois ajustes sozinhos podem transformar "não cabe" em "entrega neste trimestre".
- Limite o contexto por padrão e use retrieval para manter curto. Prompts longos são um hábito caro, não uma exigência.
- Adote runtimes implacáveis com memória (vLLM/SGLang) e vigie a fragmentação do alocador como um falcão.
- Descarregue para on-device/web onde puder. A memória do cliente é gratuita para você e abundante.
- Assuma 6–9 meses para adicionar capacidade confiável; diversifique fornecedores e regiões agora.
- Torne a memória um SLI de primeira classe: acompanhe bytes de KV, fragmentação e p95 de TTFB/tokens/s.
- Escolha parceiros que já entregaram sistemas quantizados e conscientes de memória — não apenas slideware.