Quantização e decodificação especulativa
Para modelos hospedados por você: quantização int8/int4 para economizar memória e decodificação especulativa para aumentar a vazão.
Quantização e decodificação especulativa é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Otimizações para modelos hospedados localmente
Para modelos abertos hospedados localmente, há dois grandes ganhos de velocidade e custo:
- Quantização — pesos menores, menos RAM/VRAM e inferência mais rápida
- Decodificação especulativa — gere vários tokens por etapa
Noções básicas de quantização
Normalmente, os modelos são armazenados como FP16 (16 bits por peso). A quantização reduz esse número para menos bits:
- FP16 — linha de base
- INT8 — duas vezes menor, com perda de qualidade quase insignificante
- INT4 / Q4_K_M — quatro vezes menor, com pequena perda de qualidade
- INT2 / 1.58-bit — oito vezes ou mais menor, com perda real de qualidade
GGUF e níveis de quantização
GGUF é o formato usado pelo llama.cpp. Níveis comuns:
- Q4_K_M — melhor equilíbrio entre qualidade e tamanho
- Q5_K_M — ligeiramente maior e ligeiramente melhor
- Q8_0 — qualidade próxima à de FP16, com compressão de 2 vezes
Quantise With llama.cpp
./llama-quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4_k_m.gguf Q4_K_M
# Or download pre-quantised from TheBloke / unsloth on HuggingFaceImpacto no hardware
Um modelo 8B FP16 precisa de aproximadamente 16 GB de VRAM. O mesmo modelo em Q4 cabe em aproximadamente 5 GB de VRAM e pode ser executado em uma GPU muito mais barata.
Decodificação especulativa
O truque é usar um modelo pequeno de "rascunho" para propor tokens e depois verificá-los com o modelo grande de "destino" em uma única passagem direta. Muitas vezes, isso acelera o processo em 2 a 3 vezes.
from transformers import AutoModelForCausalLM
target = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-70B')
draft = AutoModelForCausalLM.from_pretrained('meta-llama/Llama-3.1-8B')
outputs = target.generate(
input_ids,
assistant_model=draft, # speculative decoding
max_new_tokens=200
)Por que funciona
O modelo de rascunho propõe K tokens. O modelo de destino processa todos eles em PARALLEL (uma única passagem direta). Cada token aceito é "gratuito". Uma rejeição desfaz a alteração; normalmente, a maior parte é aceita.
Outros aceleradores de decodificação
- Decodificação com antecipação — vários rascunhos por etapa
- Medusa — várias cabeças de decodificação treinadas em conjunto
- EAGLE — especulação rápida baseada em árvores
Ferramentas que implementam esses recursos
- vLLM — oferece tanto quantização (AWQ, GPTQ, FP8) quanto decodificação especulativa
- llama.cpp — quantização e especulação por meio de --draft-model
- TensorRT-LLM — servidor de produção da NVIDIA
- SGLang — servidor rápido, compatível com processamento em lotes, com processamento contínuo em lotes
Processamento contínuo em lotes
O principal recurso do vLLM: processar várias solicitações com comprimentos diferentes na mesma passagem direta. Isso proporciona um enorme ganho de produtividade para servidores de produção.
Escolha do nível de quantização
Teste cada nível candidato em SUA avaliação. Q4_K_M é o ponto de partida padrão; use um nível mais alto se a qualidade ficar abaixo do limiar.
Latência por token versus produtividade
Otimizações diferentes ajudam métricas diferentes:
- Latência de uma única solicitação: decodificação especulativa
- Produtividade para vários usuários: processamento contínuo em lotes
- Custo de memória: quantização
Efeito da quantização
Qual é o principal efeito da quantização int4?
Recapitulação
Faça a quantização para Q4 para obter ganhos de memória e velocidade. Use decodificação especulativa para reduzir a latência. Use processamento contínuo em lotes para aumentar a produtividade. vLLM e llama.cpp implementam os três recursos.
Perguntas Frequentes
A aula “Quantização e decodificação especulativa” é grátis?
Sim — o texto completo de “Quantização e decodificação especulativa” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Quantização e decodificação especulativa”?
Para modelos hospedados por você: quantização int8/int4 para economizar memória e decodificação especulativa para aumentar a vazão. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Quantização e decodificação especulativa”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Orçamentos de tokens por etapa
- Roteamento de modelos (barato -> caro)
- Armazenamento em cache de instruções e resultados (Anthropic, Vertex)
- Quantização e decodificação especulativa