Curso / Lição 04  ·  English →
Lição 04 · Qualidade

Quantização & qualidade

A lição 02 mostrou que cada bit a menos por peso encolhe o modelo na memória. Mas encolher tem um preço: em algum ponto a inteligência começa a desmoronar — e ela não desmorona por igual. Esta lição mostra a escada de qualidade bit a bit, o que quebra primeiro quando você aperta demais, e a receita assimétrica que deixa um modelo enorme caber em 2 bits sem perder a capacidade de usar ferramentas.

Q4
o ponto-doce do consumidor (qualidade × tamanho)
Q8
quase sem perda (near-lossless)
2 bits
só os experts roteados do MoE (a maioria do modelo)
Q8
o que fica intocado: shared experts, projeções, roteamento

01 · A escada de qualidade

Quantizar é trocar precisão numérica por espaço. No topo, FP16/BF16 é a linha de base — a qualidade plena com que o modelo foi treinado. Cada degrau abaixo corta bits e, com eles, um pouco de fidelidade. O segredo é que a perda não é linear: os primeiros degraus quase não custam nada; os últimos custam a inteligência inteira. O diagrama abaixo desenha a curva real e marca o penhasco.

Qualidade retida (%) × bits por peso — a perda não é linear 100% 85% 70% qualidade retida FP16 Q8 Q6 Q5 Q4 Q3 Q2 ← mais bits · menos bits → ★ ponto-doce ⚠ o penhasco math / código tool-use quebram near-lossless forte meio-termo

De FP16 a Q4 a curva quase não cai — a qualidade é "barata" de manter. Abaixo de Q4 ela despenca: cada bit a menos custa cada vez mais inteligência. É por isso que Q3/Q2 são último recurso, não escolha padrão.

Um modelo menor numa precisão maior pode vencer um modelo maior esmagado em poucos bits demais.— Ahmad Osman, "LLMs 101 (2026)"

02 · A escada nomeada, degrau a degrau

Cada nível tem um caráter próprio. Esta é a leitura prática — combinada com o custo em GB por bilhão de parâmetros que derivamos na lição 02.

A escada — do melhor (topo) ao último recurso (base) · GB por 1B de parâmetros FP16 / BF16 linha de base · qualidade plena ~2,0 GB/1B Q8 / INT8 quase sem perda (near-lossless) ~1,0 GB/1B Q6 / Q5 excelente · forte meio-termo ~0,7 GB/1B ★ Q4 ponto-doce do consumidor ~0,5 GB/1B Q3 / Q2 último recurso · só p/ caber um modelo maior ~0,3 GB/1B menor na memória menos inteligente A largura de cada degrau insinua a qualidade retida; o número à direita é o custo de memória da lição 02. Regra: desça só o necessário para caber + folga. Nunca desça "por desporto".
NívelCaráter~GB / 1BQuando escolher
FP16 / BF16linha de base · qualidade plena~2,0Referência / treino. Raramente para inferência local.
Q8 / INT8quase sem perda~1,0Quando cabe e você quer o teto de qualidade local.
Q6 / Q5excelente · forte meio-termo~0,7Equilíbrio quando Q8 não cabe mas você não quer arriscar.
Q4ponto-doce do consumidor~0,5Default geral. Melhor qualidade × tamanho na prática.
Q3 / Q2último recurso~0,3Só para encaixar um modelo maior que de outra forma não caberia.
A regra-mãe: a escolha entre "modelo maior em poucos bits" e "modelo menor em mais bits" não é óbvia — e o default vence a intuição. Em geral, mais bits num modelo menor ganha de poucos bits num modelo grande. A exceção (seção 05) exige uma receita especial.

03 · O que quebra primeiro

Quando você aperta a quantização, a degradação não aparece em tudo de uma vez. Ela ataca por ordem — as capacidades mais frágeis caem antes. Saber essa ordem é o sinal de alarme: se o seu modelo começa a errar contas e a desobedecer ao esquema JSON, você apertou bits demais.

Conforme a quantização aperta → estas capacidades caem NESTA ordem fragilidade → aperta os bits → 1 · Matemática aritmética exata é o canário — erra primeiro ✗ quebra cedo 2 · Raciocínio multi-passo cadeias longas perdem o fio 3 · Correção de código sintaxe sobrevive; lógica e bordas falham 4 · Aderência a JSON / schema campos faltando, tipos errados 5 · Confiabilidade de tool-use chama a ferramenta errada / argumentos malformados 6 · Retrieval de contexto longo esquece detalhes lá no início da janela ▼ Prosa fluida · conversa casual resiste por último — por isso "parece bom" engana ✓ resiste

A ordem é o seu painel de diagnóstico. Conversa fluida e prosa genérica resistem muito — por isso "parece bom" engana. A falha real aparece em math, raciocínio, código, schema e tool-use, exatamente o que um agente precisa.

Q3/Q2: matemática, código, saída estruturada e uso de ferramentas degradam PRIMEIRO.— Ahmad Osman, "LLMs 101 (2026)"

04 · O KV cache é uma quantização à parte

Atenção a uma armadilha: quantizar os pesos e quantizar o KV cache são dois botões diferentes. O KV cache (lição 03) tem a sua própria escada — e ela é muito mais curta. Mexer aqui sem saber é onde o contexto longo "apodrece" silenciosamente.

Quantização do KV cache — uma escada à parte, e bem mais curta FP16 linha de base seguro · sem perda ✓ use por padrão footprint do cache: 1× FP8 / INT8 piso prático dobra a janela útil ○ aceitável com cuidado ≈ ½× · mesma janela em metade da RAM sub-8-bit território de pesquisa KIVI · KVQuant ⚠ não é um toggle casual 1 2 3 < ½× mas qualidade incerta mais agressivo · mais frágil → botão independente dos pesos
Não confunda os botões: você pode rodar pesos em Q4 e KV cache em FP16 — são independentes. Para o KV, FP16 é o padrão seguro e FP8/INT8 é o piso prático. Abaixo de 8 bits é pesquisa pesada (KIVI, KVQuant), não um toggle para ligar sem teste.

05 · A receita assimétrica — a resolução

Até aqui a conclusão parece desanimadora: Q2 quebra tool-use, logo modelos grandes em 2 bits estão fora. Mas há uma saída elegante, e ela é o coração desta lição. Em vez de esmagar tudo a 2 bits, você esmaga só a parte que aguenta — e deixa intactas as partes sensíveis. O diagrama abaixo é à escala: a área de cada bloco é proporcional à fatia do modelo.

Anatomia assimétrica (à escala) — o que vira 2 bits vs. o que fica em Q8 0% 25 50 75 100% do modelo Experts roteados do MoE — a MAIORIA do espaço → 2 bits · up/gate em IQ2_XXS · down em Q2_K ≈ 78% dos bytes ↑ up/gate · IQ2_XXS ↓ down · Q2_K Shared experts + projeções + roteamento → INTOCADOS · Q8 · ≈22% comprime aqui (rende quase todos os GB economizados) preserva aqui (garante a qualidade) Por que funciona • Os experts são imensos mas redundantes — toleram 2 bits sem ruir. • Projeções e roteamento são minúsculos mas decidem QUAL expert chamar. • Mantê-los em Q8 custa ~poucos bytes e mantém a decisão certa.

O truque: os experts roteados são a maioria dos bytes, então comprimi-los rende quase toda a economia de memória. As partes que orquestram (shared, projeções, roteamento) são pequenas — mantê-las em Q8 custa pouco espaço e salva a inteligência.

Ingênuo vs. assimétrico, lado a lado

A diferença entre um Q2 que falha e um Q2 que funciona é onde os 2 bits caem. À esquerda, o jeito ingênuo (tudo a 2 bits) — exatamente o cenário em que o Ahmad está certo. À direita, o jeito assimétrico — onde a receita do antirez vence.

Q2 ingênuo tudo esmagado a 2 bits experts roteados2b shared experts2b projeções2b roteamento2b ✗ tool-use falha math / código / schema também caem a decisão de QUAL expert vira ruído Q2 assimétrico só os experts roteados a 2 bits experts roteados (a maioria)2b shared experts ✓Q8 projeções ✓Q8 roteamento ✓Q8 ✓ tool-use confiável ~mesmo tamanho · qualidade preservada a decisão fica intacta em Q8 vs

Os dois ocupam quase o mesmo espaço — porque os experts roteados (a maioria dos bytes) estão a 2 bits nos dois. A diferença é cirúrgica: o assimétrico paga uns poucos GB a mais para deixar as partes que decidem em Q8, e é isso que salva o tool-use.

antirez · "não são piada" — a receita do DeepSeek-V4-Flash
Os quants de 2 bits não são piada: eles se comportam bem, funcionam sob agentes de coding, chamam ferramentas de forma confiável. Só os experts roteados do MoE são quantizados — up/gate em IQ2_XXS, down em Q2_K — eles são a MAIORIA do espaço do modelo; shared experts, projeções e roteamento ficam INTOCADOS (Q8) para garantir a qualidade.— antirez, README do DeepSeek-V4-Flash (DS4)

E há um segundo ingrediente: o próprio modelo. O DeepSeek-V4-Flash "resiste muito bem à quantização de 2 bits". Receita assimétrica + modelo Q2-resistente = o raro caso em que 2 bits servem para produção.

06 · A síntese — quem está certo?

Os dois. Não é contradição, é contexto. O Ahmad fala do caso geral; o antirez, de um caso construído de propósito para escapar dele.

Não é contradição — é a regra geral e a exceção construída A REGRA A EXCEÇÃO Ahmad — certo no GERAL Q2 ingênuo (tudo a 2 bits) → math / código / tool-use quebram → default: prefira mais bits condição: quant ingênuo em modelo qualquer antirez — certo AQUI Q2 assimétrico + modelo resistente → partes sensíveis em Q8 → tool-use preservado condição: receita cirúrgica + modelo Q2-resistente + as duas juntas → 2 bits em produção Plano B: se o q2 decepcionar em math/código difícil → suba para q2-q4-imatrix (98 GB)
A leitura unificada: a heurística do Ahmad ("desconfie de poucos bits") continua sendo o seu default — vale para quase todo modelo e todo quant ingênuo. O caso do antirez é a exceção engenheirada: quantização assimétrica aplicada a um modelo que resiste a 2 bits. Quando os dois se combinam, 2 bits viram produção. Fora disso, suba a precisão.
o plano B concreto

Se na prática o q2 decepcionar em matemática ou código difícil, o degrau seguinte é o q2-q4-imatrix (98 GB) — as últimas camadas sobem para q4 e recuperam o gume nos casos duros. É a aplicação direta da escada: subiu um degrau de precisão onde dói. (O custo de memória dessa escolha é o tema da lição 08.)

1. Conforme você aperta a quantização, qual capacidade tende a degradar PRIMEIRO?
Correto: b. Prosa fluida resiste muito (por isso "parece bom" engana); a falha real aparece primeiro em math, raciocínio, código, schema e tool-use. Velocidade e footprint são governados pelo tamanho/banda, não pela degradação de qualidade.
2. Por que a receita assimétrica do antirez deixa um Q2 chamar ferramentas de forma confiável?
Correto: c. Comprimir os experts (imensos e redundantes) rende quase toda a economia; manter as partes pequenas que orquestram em Q8 custa pouco espaço e salva a inteligência. Some a isso um modelo que "resiste muito bem a 2 bits" e o resultado funciona sob agentes de coding. O KV cache é um botão separado (seção 04).