Imagine uma régua. Uma régua fina, de laboratório, marca cada milímetro: pode dizer que um parafuso mede 12,473 mm. Outra régua, a de bolso, só tem marcas a cada meio centímetro: com ela o mesmo parafuso mede "uns 12 e meio". As duas medem o parafuso. Uma é pesada e precisa; a outra cabe na mão. Quantizar um modelo de IA é trocar de régua: deixar de guardar cada número com altíssima precisão e passar a arredondá-lo para marcas mais grossas.
E aqui surge a pergunta que dá vertigem: um modelo grande são bilhões desses números. Se você tira precisão de cada um, o modelo continua pensando igual ou você o está quebrando aos poucos sem perceber?
01 · o peso do númeroO que está sendo apertado, exatamente
Um modelo de linguagem é, por dentro, uma montanha de números chamados parâmetros ou pesos. Cada um descreve com que força uma conexão puxa outra. Não há palavras guardadas ali: há coordenadas, milhões delas, colocadas num espaço imenso. Quando o modelo responde, o que ele faz é multiplicar e somar essas coordenadas repetidas vezes.
Por padrão, cada um desses números é guardado em 16 ou 32 bits: formatos de ponto flutuante que reservam muito espaço para decimais finíssimos. É a régua de laboratório. Um modelo de 7 bilhões de parâmetros em 16 bits ocupa uns 14 gigabytes só para existir na memória. Seu laptop não tem essa RAM livre. Esse é o muro.
Não estamos apertando texto nem conhecimento. Estamos apertando a régua com que se mede cada coordenada.
Quantizar é reescrever cada número com menos bits: passar de 16 para 8, para 4, às vezes menos. Oito bits dão 256 marcas possíveis; quatro bits, apenas 16. Cada número é empurrado para a marca mais próxima. O modelo pesa a metade, um quarto, um oitavo. E aí começa a arte: quanto você pode engrossar as marcas antes de o parafuso deixar de ser medido.
02 · o erro que se acumulaPor que às vezes quebra e às vezes não
Arredondar um número parece inofensivo. O problema é que um modelo não usa um número: encadeia milhões. Cada multiplicação arrasta o pequeno erro de arredondamento do passo anterior, e os erros podem somar-se ou cancelar-se ao longo de dezenas de camadas. A pergunta não é "quanto eu erro num número?" e sim "aonde chega o erro depois de atravessar o modelo inteiro?".
A geometria ajuda a enxergar. Os parâmetros não estão distribuídos por igual: a enorme maioria são valores pequenos, amontoados perto do zero, e uns poucos são valores atípicos, muito grandes, que vivem longe. Se você estica uma única régua uniforme para cobrir do menor ao mais gigante, as marcas ficam tão separadas que os milhões de valores do centro se esmagam todos contra as mesmas poucas marcas. É aí que o modelo quebra.
Essa foi a descoberta chave de Tim Dettmers e sua equipe em 2022: nos modelos grandes, uns poucos valores atípicos concentram quase todo o dano. Seu método, LLM.int8(), faz algo elegante: guarda a imensa maioria dos pesos em 8 bits e separa os pouquíssimos atípicos para tratá-los com precisão completa. Assim consegue rodar modelos enormes em 8 bits sem perder qualidade mensurável [1]. A lição geométrica: nem todos os números merecem a mesma régua.
A quantização não elimina parâmetros nem recorta o modelo: conserva os mesmos milhões de coordenadas, só que descritas com menos decimais. Por isso um modelo quantizado continua "sabendo" o mesmo em linhas gerais. Recortar de verdade (tirar conexões inteiras) é outra técnica, a poda, e responde a outra pergunta. Aqui só estamos trocando a régua, não o mapa.
03 · onde acaba a barganhaQuanto dá para apertar na prática
A compressão não sai de graça, mas por um bom trecho quase parece. Baixar de 16 para 8 bits costuma ser praticamente indolor: o modelo pesa a metade e responde quase idêntico. Baixar para 4 bits já se nota pouco mas se nota: o modelo pesa um quarto e, na maioria das tarefas do dia a dia, a diferença é difícil de perceber. Abaixo de 4 bits a coisa vira terreno de especialistas: o erro de arredondamento começa a aparecer em respostas mais longas ou mais difíceis.
A primeira metade do aperto quase não custa. O preço real mora no último trecho.
Por isso 4 bits virou o ponto ideal para rodar modelos em casa. Métodos como GPTQ e NF4 (este último parte do trabalho de QLoRA) conseguem essa compressão ajustando com cuidado onde colocar as marcas da régua para cada bloco de pesos, em vez de usar uma única régua para tudo [2]. A tabela resume a troca.
| Precisão | Marcas por número | Tamanho aprox. na memória | Qualidade típica |
|---|---|---|---|
| 16 bits (original) | ~65.000 | ~14 GB | referência |
| 8 bits | 256 | ~7 GB | quase idêntica |
| 4 bits | 16 | ~3,5 GB | diferença leve |
| 3 bits ou menos | ≤8 | ~2,6 GB ou menos | degradação visível |
O que faz isso importar fora do laboratório é direto: a quantização é o que permite que um modelo nascido num centro de dados com GPUs gigantes rode no seu laptop, num telefone ou num servidor modesto. É a diferença entre "só pela nuvem" e "na sua própria máquina". Um modelo de 4 bits que cabe na memória de vídeo de uma GPU de consumo pode responder sem enviar seu texto para lugar nenhum.
Há uma nuance honesta que convém dizer sem rodeios: apertar demais não falha de forma escandalosa, falha de forma sutil. Um modelo sobrequantizado não começa a escrever em símbolos estranhos; continua soando fluente, mas fica um pouco menos preciso no difícil, erra com mais frequência em cadeias longas de raciocínio, esquece um detalhe aqui e ali. É um desgaste silencioso, e por isso a escolha de quantos bits usar merece ser medida na sua tarefa concreta, não aceita às cegas.
No fim, quantizar é um exercício de geometria prática: escolher onde colocar as marcas da régua para que milhões de coordenadas caibam em menos espaço sem se deslocar do lugar. Quando é bem feito, o modelo encolhe e continua medindo o mesmo parafuso. Quando se aperta demais, a régua fica tão grossa que já não distingue 12,4 de 12,6. O truque, como quase tudo nesses sistemas, está em saber exatamente até onde ir.
Fuentes
- Dettmers, T., Lewis, M., Belkada, Y. & Zettlemoyer, L. (2022). LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale. Advances in Neural Information Processing Systems (NeurIPS) 35. Preprint: arXiv:2208.07339.
- Dettmers, T., Pagnoni, A., Holtzman, A. & Zettlemoyer, L. (2023). QLoRA: Efficient Finetuning of Quantized LLMs. Advances in Neural Information Processing Systems (NeurIPS) 36. Preprint: arXiv:2305.14314. (Introduz o tipo de dado NF4 de 4 bits.)
- Frantar, E., Ashkboos, S., Hoefler, T. & Alistarh, D. (2023). GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers. International Conference on Learning Representations (ICLR). Preprint: arXiv:2210.17323.