Key Takeaways
- Trocar para um motor de inferência mais rápido (vLLM, llama.cpp com Metal/CUDA) dá a maior melhoria: 1,5–2× de aumento de velocidade.
- Quantização Q4_K_M vs. Q8_0 aumenta a velocidade em 1,3–1,5× com perda mínima de qualidade.
- Aumentar a taxa de utilização de KV cache (context_size, batch_size) dá 1,2–1,4× de melhoria.
- Desabilitar logging e telemetria desnecessários dá 1,1–1,2× — pequeno mas gratuito.
- Combinar todas as técnicas: melhoria realista de 2–3× vs. configuração padrão.
Como o uso de memória GPU afeta a velocidade de inferência?
Uso de memória GPU ≥ 90% é o ponto ideal para tokens/segundo máximo. Abaixo de 80%, você está deixando largura de banda de memória na mesa.
- Regra: Carregue o maior modelo que caiba na sua VRAM. Um modelo de 13B em 12 GB VRAM é mais rápido que um modelo de 7B em 4 GB VRAM.
- Quantização: Q4_K_M usa ~4 GB para 7B (vs. 14 GB para FP16). Se couber na VRAM, use Q4_K_M — mais rápido que offloading para RAM.
- Offloading: Quando o modelo não cabe na VRAM, parte vai para RAM. Offloading para RAM desacelera a inferência em 5–10× — evite se possível.
- Monitoramento: Use `nvidia-smi` (NVIDIA) ou `sudo powermetrics` (Apple) para verificar a utilização de VRAM em tempo real.
Qual batch size maximiza o throughput?
Para inferência interativa (chat), batch_size=1 é o ideal. Para processamento de múltiplas solicitações (servidores de produção), batch_size=8–16 maximiza o throughput.
- Batch size 1 (interativo): Minimiza a latência da primeira resposta. Ideal para uso pessoal e chat.
- Batch size 8–16 (servidor): Maximiza o throughput total para múltiplos usuários simultâneos.
- Context size: Aumente context_length apenas se precisar de conversas longas. Contextos grandes usam mais memória e desaceleram a inferência.
Qual motor de inferência é o mais rápido?
Para hardware NVIDIA, vLLM é 1,5–2× mais rápido que Ollama para cargas de trabalho de servidor. Para uso pessoal, Ollama com configuração padrão é suficiente.
- llama.cpp (base do Ollama): Melhor compatibilidade, funciona em CPU+GPU. Padrão para uso pessoal.
- vLLM: Melhor throughput para servidores. Requer GPU NVIDIA com CUDA. 1,5–2× mais rápido para múltiplos usuários.
- ExLlamaV2: Mais rápido para hardware NVIDIA com modelos quantizados. Mais difícil de configurar.
- Apple Silicon (Metal): Ollama com suporte Metal está otimizado. Não troque de motor no Mac — Metal já é eficiente.
A quantização acelera a inferência local?
Sim — Q4_K_M é 1,3–1,5× mais rápido que Q8_0 para a maioria dos modelos, com apenas 5–10% de queda de qualidade.
- FP16 (sem quantização): Qualidade máxima, velocidade mais lenta, requer 2× a VRAM.
- Q8_0: Qualidade quase máxima (99%), velocidade moderada. Use quando a qualidade importa mais.
- Q4_K_M: Melhor equilíbrio velocidade/qualidade. Recomendado para a maioria dos casos.
- Q2_K: Mais rápido, mas perda de qualidade perceptível. Evite exceto para testes de velocidade.
Quanto de velocidade você pode ganhar de forma realista?
Expectativas realistas: 1,5–2× de melhoria de velocidade com esforço médio. 2–3× requer ajuste profundo.
- Troca de motor (Ollama → vLLM): +50–100% de velocidade para cargas de servidor.
- Quantização (Q8_0 → Q4_K_M): +30–50% de velocidade.
- Ajuste de GPU (utilização de memória): +20–40% de velocidade.
- Desabilitar logging: +10–20% de velocidade.
Erros comuns ao otimizar LLMs locais
- Usar quantização Q2_K para velocidade. A perda de qualidade é perceptível. Q4_K_M oferece melhor equilíbrio.
- Aumentar o context_size sem necessidade. Contextos grandes usam mais VRAM e desaceleram a inferência. Use apenas o contexto que precisa.
- Ignorar o bottleneck de RAM. Se o modelo não cabe na VRAM e usa RAM, a otimização de GPU tem impacto limitado. Resolva o bottleneck de memória primeiro.
- Trocar de motor sem testar. Cada motor tem trade-offs. Meça antes e depois com os mesmos prompts.
Perguntas frequentes sobre otimização de velocidade de LLM
Quanto mais rápido ficará meu LLM local com otimização?
Na maioria dos casos, 1,5–2× de melhoria de velocidade com ajuste básico. Combinar mudança de motor + quantização + ajuste de GPU pode chegar a 2–3×.
A quantização muda a qualidade das respostas?
Q4_K_M é 5–10% de queda de qualidade vs. FP16. Imperceptível na maioria das tarefas. Q2_K é notável — evite exceto para testes de velocidade.
Preciso de uma GPU para alcançar 2× de velocidade?
Não — você pode obter melhorias de velocidade significativas com quantização e ajuste de motor mesmo em CPU. Mas uma GPU discreta é a melhoria de velocidade mais impactante.