Capítulo 5 — Desmistificando a Quantização
Quinto post do passeio capítulo a capítulo pelo LLM Primer VI: Escalando Sistemas de IA. O capítulo que explica por que um modelo de 70B sobrevive à quantização de 4 bits enquanto um de 1B não sobrevive — e como escolher a receita.
Por que este capítulo existe
A decodificação é limitada pela largura de banda de memória; a moeda dessa largura de banda são os bytes por peso. Um modelo de 70B em BF16 lê 140 GB por forward pass. O mesmo modelo em INT4 lê 35 GB. A aritmética é idêntica. O gargalo se desloca por um fator de quatro. Essa única observação é a razão pela qual a quantização deixou de ser uma curiosidade de pesquisa para se tornar o caminho de deployment padrão em inferência de produção. O Capítulo 5 percorre a mecânica — o que precisão realmente significa, por que a quantização agressiva não destrói um modelo grande do jeito que destrói um pequeno, o que AWQ, GPTQ, SmoothQuant e GGUF de fato fazem por baixo do capô, e onde a quantização deixa de ser segura e começa a degradar a qualidade silenciosamente.
5.1 Por que modelos grandes sobrevivem aos 4 bits e os pequenos não
Três observações sustentam a quantização de modelos grandes. Primeira, o conteúdo informacional de um peso individual em um transformer grande é baixo: o comportamento preditivo emerge da interação coletiva de bilhões de pesos cuja distribuição é acentuadamente concentrada perto de zero. Arredondar um peso de 0,0031 para 0,003 não muda nada que a próxima camada consiga detectar. Segunda, transformers treinados vivem dentro de uma região plana do espaço de parâmetros onde muitas configurações vizinhas produzem saídas quase idênticas, e para modelos acima de aproximadamente 30B essa região é larga o bastante para absorver a perturbação de 4 bits com degradação sub-ponto no MMLU. Terceira, a precisão mista permite que camadas sensíveis — scores de atenção, layer norms, os logits finais — permaneçam em BF16 enquanto o grosso das projeções lineares desce para INT4. Um modelo de 70B em INT4 é empiricamente quase indistinguível de sua versão em BF16; um modelo de 1B em INT4 é perceptivelmente pior, porque a região plana é menor e a perturbação o empurra para fora dela. A intuição ingênua — de que modelos menores deveriam quantizar mais facilmente — está exatamente ao contrário.
5.2 AWQ, GPTQ, SmoothQuant e GGUF fazem coisas diferentes
O GPTQ percorre a matriz de pesos coluna a coluna, escolhe níveis de quantização que minimizam o erro de saída contra um pequeno conjunto de calibração, e atualiza as colunas ainda não quantizadas para absorver o resíduo — uma compensação com aproximação de Hessiana que mantém a saída da camada próxima da original. O AWQ parte de uma observação diferente: outliers de ativação importam tanto quanto outliers de peso, então ele aumenta em escala os canais de peso salientes antes de quantizar (e reduz em escala as ativações para compensar), o que espalha os níveis de quantização sobre a faixa que aqueles pesos de fato ocupam. O SmoothQuant ataca o lado das ativações: LLMs têm um punhado de canais com magnitudes enormes que arruínam a quantização ingênua de ativações, então ele migra a magnitude dos outliers das ativações para os pesos por canal, permitindo que W8A8 chegue com perda desprezível. O GGUF é um formato de arquivo, não um único algoritmo — o escalonamento aninhado em super-blocos ao estilo Q4_K_M usado pelo llama.cpp para inferência em CPU e edge, ecologicamente importante mas raramente usado em GPUs de data center.
5.3 A escada de segurança e a disciplina de calibração
A escada empírica de segurança é limpa. BF16 → FP8 é quase sempre sem perdas e é o padrão de produção. BF16 → INT8 é sem perdas acima de aproximadamente 7B com um algoritmo competente. BF16 → INT4 é sem perdas acima de aproximadamente 30B com AWQ ou GPTQ; abaixo de 13B custa de um a três pontos de MMLU; abaixo de 7B custa cinco ou mais sem quantization-aware training. INT3 e abaixo é experimental. Duas disciplinas governam se a escada se sustenta em produção. A primeira é a calibração sobre a distribuição certa: 128 a 512 amostras representativas extraídas da mesma distribuição de onde a carga de produção virá, re-executada a cada seis ou doze meses à medida que a carga muda. A segunda é a avaliação do lado da tarefa: benchmarks padrão podem perder mudanças de qualidade na cauda longa da capacidade do modelo — fatos raros, raciocínio multi-etapa, código em línguas minoritárias — e a quantização agressiva deve ser validada contra uma fatia de tráfego real de produção, pontuada pelas dimensões que importam para a aplicação.
O que o Capítulo 5 prepara
A quantização encolhe os bytes por peso. O próximo capítulo encolhe diretamente a contagem de pesos. O Capítulo 6 percorre a poda — incluindo a esparsidade estruturada 2:4 que a Hopper acelera nativamente — e a destilação de conhecimento, em que o comportamento de um professor grande é transferido para um aluno menor que roda mais barato de ponta a ponta. Juntas, as três compressões (quantizar, podar, destilar) formam o toolkit do lado do modelo para reduzir a carga de largura de banda que o Capítulo 1 nomeou. O Capítulo 7 então se volta para a alavanca do lado do runtime — o batching — que converte a folga recém-criada em throughput concorrente de usuários.
Próximo — Capítulo 6: Poda e Destilação de Conhecimento. As duas compressões do lado do modelo que atacam a contagem de pesos diretamente em vez da largura de cada peso.
llm-compressor, a receita da NVIDIA ModelOpt para FP8 e NVFP4, o código executável para GPTQ W4A16 e os quadros "In Plain English" sobre quantização por votação em comitê e o duelo FP8 versus INT4 em produção. Veja o LLM Primer VI na Amazon →