Acelerando Inferência de Grandes Modelos de Linguagem com Quantização de Pesos e Ativações usando AWQ e GPTQ no Amazon SageMaker AI

O Desafio da Inferência em Larga Escala

Modelos de linguagem estão crescendo em escala de forma exponencial. Em 2023, o Falcon 180B era o maior modelo de código aberto disponível. Menos de um ano depois, a Meta lançou o Llama 3.1, um modelo denso com 405 bilhões de parâmetros. No meio de 2025, o DeepSeek V3 superou ambos, com 671 bilhões de parâmetros no total, dos quais 37 bilhões são ativos por token.

Esses gigantescos modelos entregam desempenho excepcional em tarefas variadas—desde busca multimodal e geração de código até raciocínio de nível PhD. Porém, implantá-los em produção permanece impraticável para a maioria das organizações. O problema não é apenas técnico, mas financeiro: modelos com mais de 100 bilhões de parâmetros demandam GPUs de alto desempenho, enorme largura de banda de memória e consumo substancial de energia. Escalar para milhares de usuários simultaneamente se torna economicamente insustentável.

Quantização Pós-Treinamento: Uma Solução Prática

A quantização pós-treinamento (PTQ) oferece um caminho viável. Convertendo pesos e ativações de 16 ou 32 bits para inteiros de 8 ou 4 bits após o treinamento, a PTQ consegue reduzir o tamanho do modelo em 2 a 8 vezes, diminuir os requisitos de largura de banda de memória e acelerar operações matriciais—tudo sem necessidade de retreinamento.

Um exemplo prático: o modelo DeepSeek-V3 base requer uma instância ml.p5e.48xlarge (com 1128 GB de memória GPU H100) para inferência. Sua variante quantizada pode rodar em instâncias menores como ml.p5.48xlarge (640 GB de H100) ou até ml.p4de.24xlarge (640 GB de A100). Essa eficiência é alcançada aplicando quantização de baixa precisão aos canais de peso menos influentes, mantendo em precisão total aqueles que mais impactam as respostas de ativação.

Modelos quantizados existem graças às contribuições de comunidades de desenvolvedores. Projetos como Unsloth AI e QuixiAI investem tempo e recursos significativos em otimizações. Esses modelos podem ser implantados perfeitamente no Amazon SageMaker AI com apenas algumas linhas de código.

Diagrama de fluxo de rede neural mostrando pesos e ativações
Fonte: Aws

Entendendo Pesos e Ativações

Em redes neurais, pesos são parâmetros estáticos aprendidos durante o treinamento—os coeficientes fixos que moldam como entradas se combinam. Ativações, por sua vez, são valores dinâmicos produzidos em cada camada quando dados passam pela rede, representando a resposta de cada neurônio.

A notação WxAy descreve a precisão de ambos: Wx é a largura em bits dos pesos (4-bit ou 8-bit, por exemplo) e Ay é a largura em bits das ativações (8-bit ou 16-bit). W4A16, por exemplo, significa pesos armazenados como inteiros de 4 bits enquanto ativações permanecem em ponto flutuante de 16 bits.

W4A16 Simétrico e Assimétrico

Quantização simétrica de 4 bits centra o intervalo ao redor de zero. Com apenas 16 níveis de quantização, o modelo fica propenso a erro se a distribuição de pesos não for perfeitamente centrada em zero. Quantização assimétrica resolve isso introduzindo um deslocamento de ponto zero, mapeando o mínimo de peso para o inteiro representável mais baixo e o máximo para o mais alto. Na prática, W4A16 assimétrico supera significativamente a abordagem simétrica em precisão do modelo.

W8A8: Quantização Completa

W8A8 quantiza tanto pesos quanto ativações para 8 bits, permitindo inferência inteira pura. Enquanto quantização de pesos para 8 bits é relativamente simples, ativações apresentam desafios em transformadores devido a outliers—valores ocasionalmente muito grandes em certas camadas. Técnicas como SmoothQuant resolvem isso redistribuindo a dificuldade de quantização, redimensionando canais de ativação outlier e ampliando os correspondentes canais de peso. Com essas calibrações, modelos conseguem W8A8 com perda mínima de desempenho, e hardware moderno pode explorar aritmética INT8 otimizada para multiplicação matricial mais rápida.

W8A16: Quantização Apenas de Pesos

W8A16 usa 8-bit para pesos mantendo ativações em 16-bit. É uma abordagem segura que reduz tamanho sem riscos significativos de perda de qualidade. Para cargas de trabalho limitadas por memória (comuns em LLMs com pequenos batch sizes), W8A16 oferece aceleração notável.

Algoritmos Principais: AWQ e GPTQ

Quantização Consciente de Ativação (AWQ)

AWQ é uma técnica PTQ que visa quantização apenas de pesos em precisão muito baixa (tipicamente 4-bit) mantendo ativações em precisão maior como FP16. O conceito central é que nem todos os pesos contribuem igualmente à saída do modelo. Um pequeno subconjunto de pesos salientes influencia desproporcionalmente as predições.

Ao identificar e preservar aproximadamente 1% dos canais críticos—aqueles associados aos maiores valores de ativação—AWQ consegue fechar drasticamente a lacuna entre modelos quantizados de 4-bit e seus equivalentes FP16 em termos de perplexidade. A técnica usa distribuições de ativação para encontrar pesos que realmente importam, diferente de métodos tradicionais baseados em magnitude.

AWQ resolve a ineficiência de hardware introduzindo escala por canal. Durante quantização, amplifica pesos de canais ativação-salientes para reduzir erro relativo de quantização e dobra a escala inversa no modelo, sem rescalonamento explícito durante inferência. Tudo isso acontece sem retreinamento—usa apenas um pequeno conjunto de calibração para estimar estatísticas de ativação e derivar fatores de escala analiticamente.

Quantização de Transformadores Pré-Treinados Generativos (GPTQ)

GPTQ é outro método PTQ que adota abordagem orientada por compensação de erro. Opera camada por camada, visando preservar a saída de cada camada tão próxima quanto possível da original. Segue estratégia sequencial gulosa: em cada passo, um peso ou pequeno grupo é quantizado enquanto pesos não quantizados são ajustados para compensar o erro introduzido.

O processo usa aproximação de estatísticas de segunda ordem, especificamente aproximação da matriz Hessiana, que estima sensibilidade da saída a mudanças em cada peso. Esse procedimento é às vezes chamado quantização de cérebro ótimo, onde GPTQ quantiza pesos em ordem que minimiza erro de saída acumulado. Apesar da sofisticação, GPTQ permanece método PTQ de uma única passagem—não requer retreinamento ou ajuste fino iterativo.

Fluxo de arquitetura do SageMaker mostrando quantização
Fonte: Aws

Implementação Prática no Amazon SageMaker AI

A AWS oferece um fluxo de trabalho completo para quantização usando amazon-sagemaker-generativeai GitHub repository. O processo envolve três etapas principais com o pacote vllm-project/llm-compressor:

Etapa 1: Carregamento do Modelo

Carregue pesos do modelo sem anexá-los a um acelerador. A biblioteca llm-compressor detecta automaticamente hardware disponível e descarrega pesos conforme necessário. Como executa quantização camada por camada, o modelo inteiro não precisa caber em memória do acelerador simultaneamente.

model = AutoModelForCausalLM.from_pretrained(
    args.model_id,
    torch_dtype="auto",
    device_map=None,
    trust_remote_code=True
)

tokenizer_or_processor = AutoTokenizer.from_pretrained(
    args.model_id,
    trust_remote_code=True
)

Etapa 2: Seleção de Dataset de Calibração

Um dataset de calibração durante PTQ estima intervalos de ativação e distribuições estatísticas em um LLM pré-treinado sem retreinamento. Ferramentas como llm-compressor usam esse pequeno dataset representativo para executar passagens diretas e coletar estatísticas que guiam quantização de pesos e ativações.

Etapa 3: Execução da PTQ

O método oneshot em llm-compressor realiza PTQ de passagem única usando receita especificada, aplicando quantização de pesos, ativações (e opcionalmente sparsidade) em uma passagem:

oneshot(
    model=model,
    dataset=processed_dataset,
    recipe=recipe,
    max_seq_length=args.max_sequence_length,
    num_calibration_samples=args.num_calibration_samples,
    output_dir=save_dir,
    trust_remote_code_model=True
)

Resultados de Desempenho

Testes cobriram três modelos—Llama-3.1-8B-Instruct, Llama-3.3-70B-Instruct e Qwen2.5-VL-7B-Instruct—em diferentes instâncias de GPU. As métricas principais avaliadas foram:

  • Utilização de Memória GPU: Quantização resulta em redução de 30-70% no consumo de memória GPU
  • Latência fim-a-fim: Tempo total de entrada para saída final
  • Tempo para primeiro token: Crítico para aplicações interativas e streaming
  • Latência entre tokens: Tempo médio entre saídas sucessivas
  • Throughput: Tokens gerados por segundo
Gráfico de utilização de memória GPU em GB para diferentes modelos
Fonte: Aws

Para o modelo Llama-3.1-8B, quantização com AWQ em W4A16 assimétrico reduziu uso de memória de 17.9 GB para 7.9 GB (56% de redução). Latência fim-a-fim sob concorrência de 128 requisições simultâneas caiu de 56.67 segundos no modelo base para 35.83 segundos (37% melhoria).

Gráfico de latência fim-a-fim para Llama 3.1-8B
Fonte: Aws
Gráfico de latência fim-a-fim para Qwen 2.5-VL-7B
Fonte: Aws
Gráfico de latência fim-a-fim para Llama 3.3-70B
Fonte: Aws

Throughput também melhorou significativamente. Modelos quantizados com W4A16 em concorrência de 8 requisições simultâneas atingiram throughput 2-3 vezes maior comparado ao modelo base, permitindo processamento mais eficiente de cargas de trabalho grandes ou suporte a mais sessões de usuário simultâneas.

Conclusão

Técnicas de quantização pós-treinamento como AWQ e GPTQ comprovam ser soluções efetivas para implantar modelos de fundação em produção. Os testes abrangentes em diferentes tamanhos e arquiteturas de modelos demonstram que PTQ reduz significativamente utilização de memória GPU. Os benefícios são evidentes em todas as métricas principais: modelos quantizados mostram melhor throughput e latência reduzida em cenários de alta concorrência.

A AWS oferece um caminho simplificado através do Amazon SageMaker AI, tornando o processo de quantização acessível e escalável. Organizações podem implementar e servir modelos quantizados para inferência em tempo real, simplificando a jornada do desenvolvimento até produção. Para explorar quantização mais profundamente, consulte o llm-compressor e o repositório GitHub.

Fonte

Accelerating LLM inference with post-training weight and activation using AWQ and GPTQ on Amazon SageMaker AI (https://aws.amazon.com/blogs/machine-learning/accelerating-llm-inference-with-post-training-weight-and-activation-using-awq-and-gptq-on-amazon-sagemaker-ai/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *