Avançado

Quantização II: GPTQ, AWQ, GGUF e QAT

Algoritmos escolhem aproximações; formatos empacotam tensores; runtimes e kernels decidem se o artefato executa com eficiência.

Atualizada em

1

Conceito

Discussões de quantização misturam três camadas: um algoritmo escolhe valores aproximados, um formato guarda tensores e metadata, e um runtime implementa kernels. GPTQ, AWQ, GGUF e QAT ocupam camadas diferentes. A comparação começa separando suas funções.

GPTQ é post-training weight quantization. A partir de um modelo treinado em precisão maior e entradas de calibração, quantiza pesos usando informação aproximada de segunda ordem para compensar reconstruction error numa camada. Ordem de processamento e atualizações dos pesos restantes tentam preservar as saídas melhor que arredondamento independente. Implementações expõem group size, bits, ordenação e packing.

AWQ, ou Activation-aware Weight Quantization, observa ativações de calibração para encontrar canais salientes. A premissa é que pesos não contribuem igualmente para as saídas. Proteger um subconjunto importante por scaling reduz erro mantendo execução weight-only. Dados de ativação orientam o tratamento dos pesos; AWQ não é apenas quantização dinâmica das ativações.

Ambos são post-training quantization (PTQ): partem de checkpoint treinado e não repetem treinamento completo. Calibração e implementação importam. Um quantizer ajustado em prompts curtos em inglês talvez não preserve código, outros idiomas ou long context. Avalie o artefato, não apenas reconstrução de camada.

Quantization-aware training (QAT) coloca quantização simulada no forward pass. Fake quantization arredonda e corta como no deploy, enquanto parâmetros de maior precisão recebem gradients aproximados. O otimizador afasta valores de limites frágeis e compensa entre camadas. QAT custa compute e precisa corresponder ao formato do runtime, mas recupera qualidade quando PTQ simples falha.

GGUF é formato de container e ecossistema de representações associado a GGML e llama.cpp. Empacota metadata, tokenizer e tensores que podem usar tipos quantizados distintos. Dizer “modelo GGUF” não especifica qualidade nem bits. Tensor type, ferramenta de quantização, checkpoint de origem, conversão e runtime são essenciais.

Conversão não é mágica. Converter pesos de alta precisão diretamente oferece a melhor fonte. Converter uma quantização lossy em outra parte de valores já arredondados e costuma acumular erro. Troca de container pode reempacotar bytes, mas não inferir precisão descartada. Preserve proveniência e hashes de cada artefato.

Acoplamento ao kernel é decisivo. Artefatos GPTQ e AWQ variam em packing, scales, zero points e group sizes. Um servidor pode carregar o arquivo e fazer fallback para multiplicação dequantizada. Tipos GGUF também variam por backend. Meça memória real, kernels, TTFT, throughput e qualidade no hardware-alvo.

Comparações mantêm checkpoint, prompts, contextos, decoding e precisão dos demais tensores. Informe disk size separado de resident memory e KV cache. Inclua fatos, código, idiomas, structured output, segurança e long context; erro pode alterar escolhas de baixa margem sem mexer muito na perplexity média.

Antes de distribuir o artefato, valide a conversão de ponta a ponta com prompts determinísticos e confira a metadata do tokenizer. Um tensor correto empacotado ao lado de tokens especiais errados ainda produz um modelo defeituoso. Registre também a ferramenta e a linha de comando responsáveis pela derivação.

O mapa durável é: GPTQ usa reconstrução pós-treino guiada por erro, AWQ usa ativações para proteger pesos, QAT adapta pesos sob erro simulado e GGUF transporta tensores. Algoritmos criam aproximações; formatos as carregam; kernels as transformam em velocidade real.

2

Como explicar para uma criança de cinco anos

Preparar quadros para uma exposição itinerante tem três trabalhos. Uma conservadora escolhe como reduzir detalhes de cor protegendo regiões importantes; um caixote etiqueta e empacota cada tela; o museu de destino precisa de suportes compatíveis. GPTQ, AWQ e QAT são estratégias de conservação, GGUF é embalagem com metadata e encodings, e o runtime é o museu. Chamar tudo de “quatro bits” esconde as interfaces decisivas.

3

Ensine de volta

Diferencie GPTQ, AWQ, GGUF e QAT pelo papel e explique por que converter formatos não recupera informação descartada.

Mínimo: 80 caracteres e 15 palavras. Seu texto fica somente neste navegador.

Salvo somente neste dispositivo.

Ver uma resposta-modelo

GPTQ é post-training weight quantization com informação aproximada de segunda ordem para controlar reconstruction error. AWQ observa ativações para proteger pesos salientes. GGUF é um formato e ecossistema usado por runtimes do tipo llama.cpp e aceita vários tipos de tensor; não é um algoritmo. QAT expõe o modelo à quantização simulada durante treinamento para os pesos se adaptarem. Reempacotar códigos muda layout, mas não recupera valores arredondados ou cortados sem os pesos originais.

4

Teste seu entendimento

1. Qual item é principalmente formato de container, não algoritmo de treinamento?
Resposta e explicação

GGUF — GGUF empacota tensores e metadata e aceita tipos diversos.

2. O que diferencia QAT de post-training quantization comum?
Resposta e explicação

O treinamento inclui efeitos simulados de quantização para os parâmetros se adaptarem — Fake quantization representa efeitos discretos no forward pass enquanto a otimização atualiza parâmetros.

Conclua o teach-back e acerte o quiz para finalizar a aula.

Fontes

  1. Elias Frantar et al. (2022). GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers.
  2. Ji Lin et al. (2023). AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration.
  3. Zechun Liu et al. (2023). LLM-QAT: Data-Free Quantization Aware Training for Large Language Models.