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
Conclua o teach-back e acerte o quiz para finalizar a aula.
Fontes
- Elias Frantar et al. (2022). GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers.
- Ji Lin et al. (2023). AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration.
- Zechun Liu et al. (2023). LLM-QAT: Data-Free Quantization Aware Training for Large Language Models.