Inovação

Quantização: como a IA ficou leve para rodar no seu PC

Chip de memória de computador em close, representando a redução de RAM obtida com a quantização de modelos
Sergei Starostin

Quantização é a técnica que reduz a precisão numérica dos pesos de um modelo de linguagem para que ele caiba na memória do seu computador. Ela guarda os pesos do modelo em precisão numérica menor, com representações inteiras como int8 ou int4, para reduzir a memória necessária para carregar e rodar o modelo. É uma troca consciente: um pouco de qualidade em exchange por muito espaço. Se você já se perguntou como um modelo que não caberia na RAM do seu notebook consegue rodar nele, a resposta está quase toda nessa técnica. Este guia explica o mecanismo, mostra onde a qualidade se perde e dá critérios práticos para escolher o nível certo.

O que é quantização

Todo modelo de linguagem é, no fundo, uma coleção imensa de números: os pesos aprendidos durante o treino. Esses pesos costumam ser gravados em ponto flutuante de precisão total (fp32) ou de meia precisão (fp16 ou bf16), formatos que consomem bastante espaço. A quantização converte esses números para inteiros com menos bits, tentando preservar o máximo possível da precisão original.

No ecossistema do llama.cpp, o arquivo GGUF é o formato que carrega os pesos e os metadados do modelo, e o nome do arquivo já revela a escolha: um mesmo modelo aparece em versões como F32 ou BF16, de alta precisão, e em versões com rótulo de quantização no próprio nome. A documentação da Hugging Face resume o objetivo em uma frase: armazenar os pesos em precisão menor reduz os requisitos de memória de carregar e usar o modelo.

Se você já leu sobre como embeddings transformam texto em listas de números, a lógica aqui é o inverso do problema: não se trata de representar palavras, e sim de comprimir uma quantidade gigantesca de números sem destruir o que eles significam.

Por que o arquivo encolhe

A conta é direta. Um peso gravado como float de 32 bits ocupa oito vezes mais espaço que o mesmo peso gravado como inteiro de 4 bits — 32 dividido por 4. Multiplique isso por todos os pesos do modelo e o arquivo encolhe na mesma proporção, junto com a memória necessária para mantê-lo carregado e a velocidade de processamento.

É por isso que a quantização está no coração de quase todo projeto de IA local. O projeto llama.cpp existe para rodar modelos de linguagem localmente, com configuração mínima, em uma ampla variedade de hardware, e lista suporte a quantização inteira de 2 a 8 bits para inferência mais rápida e menor uso de memória. Sem essa compressão, rodar um modelo de grande porte em máquina comum ficaria fora de questão.

Onde a qualidade se perde

Compressão não é mágica, e fingir que ela não custa nada é o erro mais comum de quem começa. A documentação da ferramenta quantize do llama.cpp é explícita: o processo pode introduzir alguma perda de precisão, normalmente medida em perplexidade ou em divergência de Kullback-Leibler, e indica o uso de uma matriz de importância (imatrix) adequada para minimizar essa perda.

Há também um aviso prático importante: requantizar um arquivo que já foi quantizado pode piorar bastante a qualidade em comparação com partir do original em 16 ou 32 bits. Na prática, a degradação costuma aparecer primeiro nas tarefas mais sensíveis — raciocínio em várias etapas, código com detalhes finos, resumos que exigem precisão — enquanto a conversa cotidiana tende a continuar aceitável. Teste com as suas tarefas reais, não só com exemplos genéricos.

Como escolher o nível certo

Antes de escolher o formato, defina o seu orçamento de memória: some a RAM disponível e a memória da placa de vídeo. Se o objetivo é um assistente no seu próprio computador — por exemplo, para programar, no estilo explicado no nosso guia sobre vibe coding e seus riscos reais — memória sobrando permite níveis mais altos e respostas mais fiéis.

SituaçãoNível típicoO que esperar
Memória justa (PC antigo, sem placa dedicada)2 a 3 bitsArquivo bem menor, perda perceptível em tarefas exigentes
Equilíbrio entre tamanho e qualidade4 bits (Q4_K_M)Ponto de partida mais comum, boa relação custo-benefício
Memória sobrando8 bitsPerda pequena, arquivo grande e mais consumo de RAM

O exemplo oficial da ferramenta llama-quantize converte um arquivo GGUF para o formato Q4_K_M, e esse rótulo virou uma espécie de padrão informal de partida para quem está começando: se estiver em dúvida, teste primeiro o nível de 4 bits e ajuste a partir dele.

Checklist antes de quantizar

  1. Meça o seu limite real de memória: some RAM livre e VRAM antes de escolher o nível.
  2. Parta sempre do original em alta precisão: requantizar arquivo já quantizado piora o resultado.
  3. Compare com tarefa própria: rode os seus prompts antes e depois, não apenas exemplos genéricos.
  4. Use matriz de importância quando disponível: o próprio projeto indica a imatrix para reduzir a perda.
  5. Documente a versão e o nível escolhidos: anote data, formato e resultado para repetir o teste depois.

Com esse roteiro, a decisão deixa de ser chute e passa a ser um teste reproduzível: você sabe quanto espaço ganhou, quanto perdeu de qualidade e pode mostrar os números na próxima vez que a pergunta aparecer.

Fontes

Continue explorando