A quantização em IA é uma técnica de compressão de modelos que reduz a precisão numérica dos pesos e das ativações de uma rede neural. Em vez de armazenar cada parâmetro como um número de vírgula flutuante de 32 bits, os modelos quantizados utilizam formatos de 8 bits, 4 bits ou ainda mais baixos. Uma vez que a memória e o cálculo escalam com o número de bits, esta única alteração pode reduzir um modelo em 2–8x e acelerar a inferência, tornando prático executar modelos grandes em telemóveis, portáteis, browsers e dispositivos embutidos.
Como funciona a quantização
Cada peso é, originalmente, um número real preciso, mas a maior parte dessa precisão raramente é necessária. A quantização mapeia o intervalo original de valores para um conjunto mais pequeno de níveis representáveis. Na quantização pós-treino (PTQ), um modelo totalmente treinado é convertido uma única vez, normalmente escalando os pesos em vírgula flutuante para que caibam num intervalo inteiro mais estreito. Um mapeamento linear simples da forma quantizado = round(peso / escala) + ponto_zero faz a maior parte do trabalho, e a mesma escala e ponto_zero são utilizados para desquantizar as saídas de volta para vírgula flutuante durante a inferência.
Por exemplo, um inteiro de 8 bits só consegue representar 256 valores distintos, pelo que uma camada cujos pesos originalmente cobrem [-1.0, 1.0] em float32 tem de os agrupar em 256 passos uniformemente espaçados. Quanto mais ajustados estiverem esses passos à distribuição real dos pesos, menor será a perda de precisão. Para melhores resultados, o treino com consciência de quantização (QAT) simula erros de arredondamento durante o ajuste fino, para que o modelo se adapte ao ruído, recuperando frequentemente quase toda a precisão original.
Porque é importante
A quantização é o que permite que um modelo com milhares de milhões de parâmetros caiba em alguns gigabytes de RAM e responda em menos de um segundo num CPU de portátil. Reduz o consumo de energia, baixa os custos de servidor e desbloqueia a IA no dispositivo para casos de uso sensíveis à privacidade ou offline. Também interage com o hardware: GPUs, NPUs e CPUs modernos trazem unidades de matriz INT8 e INT4 dedicadas, pelo que um modelo quantizado pode correr várias vezes mais rápido do que o mesmo modelo em float32.
Tipos principais
- Quantização pós-treino (PTQ): Converte um modelo já treinado. É a opção mais económica, com uma pequena perda de precisão.
- Treino com consciência de quantização (QAT): Simula a quantização durante o treino para que os pesos se adaptem. Melhor precisão, requer cálculo extra.
- Quantização dinâmica: Mantém os pesos em baixa precisão, mas calcula as ativações dinamicamente. Útil para modelos de PLN com comprimentos de sequência variáveis.
- Quantização apenas dos pesos: Armazena os pesos em 4 bits ou menos, desquantizando dinamicamente. Comum na disponibilização de grandes modelos de linguagem.
- GPTQ, AWQ, GGUF: Algoritmos e formatos de ficheiro populares para quantização de LLMs a 4 bits que aplicam diferentes esquemas para preservar a precisão.
A quantização tornou-se um passo padrão no pipeline de implementação de IA. Ferramentas como o torch.quantization do PyTorch, o NVIDIA TensorRT e o ONNX Runtime incorporam estas técnicas em stacks de produção, permitindo às equipas trocar uma pequena quantidade de precisão por ganhos substanciais em velocidade, memória e custo.