Skip to content
Como o Treinamento com Quantização Detecta e Recupera Precisão em Inferência de Baixa Precisão
Source: developer.nvidia.com

Como o Treinamento com Quantização Detecta e Recupera Precisão em Inferência de Baixa Precisão

Sources: https://developer.nvidia.com/blog/how-quantization-aware-training-enables-low-precision-accuracy-recovery, https://developer.nvidia.com/blog/how-quantization-aware-training-enables-low-precision-accuracy-recovery/, NVIDIA Dev Blog

TL;DR

  • O treinamento com quantização consciente (QAT) e a distilação consciente (QAD) estendem a quantização pós-treinamento (PTQ) ao treinar o modelo para se adaptar a representações de baixa precisão, muitas vezes recuperando maior precisão durante a inferência.
  • QAT usa quantização falsa na passagem direta e não requer suporte de hardware nativo; pode ser integrado a fluxos de treinamento de alta precisão existentes e utiliza técnicas como estimativa de passagem direta (STE).
  • QAD adiciona uma etapa de distilação entre um aluno quantizado e um professor em plena precisão, para melhorar a precisão final; tanto PTQ quanto QAT/QAD funcionam com formatos do TensorRT Model Optimizer, como NVFP4 e MXFP4.
  • Resultados do mundo real mostram ganhos significativos em certos modelos e benchmarks (ex.: Llama Nemotron Super) ao aplicar QAD; muitos modelos ainda apresentam boa precisão com PTQ sozinha; a qualidade dos dados e os hiperparâmetros são cruciais.
  • A NVIDIA fornece APIs experimentais no Model Optimizer para QAT e QAD, com orientações e tutoriais para ajudar equipes a preparar e implantar modelos para inferência de baixa precisão em GPUs NVIDIA.

Contexto e antecedentes

Quantização pós-treinamento (PTQ) é uma abordagem comum para comprimir e implantar modelos aplicando escalonamento numérico para pesos em tipos de dados de menor precisão. No entanto, PTQ pode ficar aquém para algumas arquiteturas ou cargas de trabalho, levando à exploração de Quantization Aware Training (QAT) e Quantization Aware Distillation (QAD). QAT busca preservar a precisão ao treinar o modelo para operar com aritmética de baixa precisão durante uma fase adicional de treinamento após o pré-treinamento. Ao contrário do PTQ, que quantiza após o treinamento completo usando um conjunto de calibração, QAT treina o modelo com valores quantizados na passagem direta. Na prática, o fluxo de QAT é quase idêntico ao PTQ, sendo a diferença principal a introdução de uma fase de treinamento após a aplicação da “receita” de quantização. QAT normalmente utiliza pesos e ativações “falsamente quantizados” na passagem direta. A menor precisão é representada dentro de um tipo de dado de maior precisão através de um operador de quantização/desquantização, de modo que o suporte de hardware nativo não é estritamente necessário. Por exemplo, QAT para NVFP4 pode ser executado em GPUs Hopper usando quantização simulada, e os gradientes de retropropagação são computados em precisão superior via estimativa de passagem direta (STE). QAD, por sua vez, introduz uma componente de distilação. O objetivo é recuperar a precisão após a quantização pós-treinamento, alinhando a saída do aluno quantizado com a do professor de alta precisão já treinado com os mesmos dados. O professor permanece em plena precisão, enquanto as computações do aluno são quantizadas durante a distilação. A perda de distilação mede o quanto as previsões quantizadas divergem do comportamento do professor, permitindo que os pesos e ativações de baixa precisão se ajustem para se aproximar do comportamento do professor. O TensorRT Model Optimizer suporta os mesmos formatos de quantização que o fluxo PTQ, incluindo FP8, NVFP4, MXFP4, INT8 e INT4. A saída do QAT no Model Optimizer é um novo modelo na precisão original, com pesos atualizados e metadados críticos para converter para o formato-alvo. O caminho de QAT, em termos práticos, é muito semelhante ao PTQ até a etapa de treinamento, e os desenvolvedores podem usar componentes familiares de treinamento, como otimizadores, escalonadores e estratégias de taxa de aprendizado. Para desenvolvedores, essa abordagem se integra bem aos pipelines do Hugging Face e do PyTorch, permitindo experimentar formatos de baixa precisão dentro de fluxos de trabalho já estabelecidos. A implementação atual do Model Optimizer trata QAD como experimental. O processo começa com uma etapa semelhante a QAT e PTQ para o modelo aluno, seguida pela definição de uma configuração de distilação com o modelo professor, argumentos de treinamento e a função de perda de distilação. A NVIDIA observa que melhorias estão em andamento para simplificar esse fluxo. Para quem busca orientação prática, o blog aponta para um notebook Jupyter completo e para a seção QAD no repositório do Model Optimizer com exemplos de código e documentação atualizados. Nem todos os modelos exigem QAT ou QAD — muitos mantêm mais de 99,5% de precisão original em benchmarks-chave apenas com PTQ. Ainda assim, em casos como o Llama Nemotron Super, o QAD pode trazer ganhos notáveis. Em benchmarks como GPQA Diamond, LIVECODEBENCH, Math-500 e AIME 2024, observa-se recuperação de 4–22% de precisão com QAD, com exceções apenas no LIVECODEBENCH. A eficácia de QAT e QAD depende fortemente da qualidade dos dados de treinamento, dos hiperparâmetros escolhidos e da arquitetura do modelo. Quando se quantiza para 4 bits, formatos como NVFP4 se beneficiam de fatores de escala mais granulares e de maior precisão. Ao comparar NVFP4 e MXFP4, observa-se que NVFP4 tende a ter melhor preservação de sinais pequenos e outliers, o que resulta em uma alocação de recursos mais estável entre os componentes visuais e de texto de modelos multimodais. A posição na OpenVLM Hugging Face Leaderboard ilustra que pequenas diferenças de desempenho entre modelos são comuns, reforçando que as escolhas de quantização afetam resultados de forma sensível. Quantization aware training (QAT) e quantization aware distillation (QAD) elevam os benefícios da PTQ ao ensinar modelos a se adaptar diretamente a ambientes de baixa precisão, fechando lacunas entre inferência de baixa precisão e as linhas de base de alta precisão. Como mostram benchmarks como Math-500 e AIME 2024, essas técnicas podem aproximar a inferência em precisão reduzida da referência em alta precisão, oferecendo o melhor dos dois mundos: a velocidade de execução FP4 e a robustez do treinamento de alta precisão. Considerações sobre seleção de dados de treinamento, hiperparâmetros e arquitetura do modelo são importantes, pois podem ter impacto significativo nos resultados. Com o TensorRT Model Optimizer, esses fluxos de trabalho avançados são acessíveis por meio de APIs familiares ao PyTorch e ao Hugging Face, permitindo experimentar formatos como NVFP4 e MXFP4 de forma prática.

Por que isso importa (impacto para desenvolvedores/empresas)

Para equipes que implementam IA em escala, a capacidade de executar inferência de forma eficiente em formatos de baixa precisão se traduz em maior velocidade, menor uso de memória e redução de custos. PTQ oferece um nível básico de compressão e velocidade, mas QAT e QAD fornecem caminhos para recuperar ou melhorar a precisão quando a calibração simples não é suficiente. A análise da NVIDIA mostra que, dependendo do modelo e da tarefa, QAD pode reduzir a diferença entre inferência de baixa precisão e as linhas de base de alta precisão em vários pontos percentuais, o que pode ser significativo em aplicações de produção. A ideia prática é ter uma estratégia de quantização completa: PTQ para compressão ampla; QAT quando for necessária maior precisão de inferência em FP4 e o tempo de treinamento é aceitável; e QAD quando a etapa adicional de distilação puder trazer ganhos sem alterar a arquitetura subjacente. A disponibilidade de compatibilidade com PyTorch e Hugging Face no TensorRT Model Optimizer reduz a barreira para experimentação, permitindo que equipes testem formatos como NVFP4 e MXFP4 dentro de fluxos de trabalho familiares. Para implantações reais, isso significa escolher o formato de quantização adequado para cada carga de trabalho, aplicar a quantidade certa de QAT ou QAD e validar o desempenho com dados representativos.

Detalhes técnicos ou Implementação

  • Visão geral do QAT: treina com valores quantizados na passagem direta para simular o comportamento de implantação e expor efeitos de arredondamento e clipping durante o treinamento. A abordagem normalmente usa um operador de quantização/desquantização com gradientes computados em alta precisão (STE). Isso torna o QAT viável mesmo sem suporte de hardware nativo e se integra a fluxos de treinamento existentes de alta precisão.
  • Loop de treinamento e duração: QAT requer um loop de treinamento com parâmetros como otimizadores e esquemas de taxa de aprendizado. A NVIDIA recomenda dedicar aproximadamente 10% dos epoch iniciais de treinamento ao QAT. Em contextos de LLM, frações ainda menores de pré-treinamento já mostraram benefícios na restauração da qualidade.
  • Formats e metadados: o QAT no Model Optimizer suporta formatos como FP8, NVFP4, MXFP4, INT8 e INT4. A saída é um modelo na precisão original com pesos atualizados e metadados críticos para converter para o formato-alvo.
  • Detalhes do QAD: o QAD acompanha um caminho inicial semelhante ao QAT e PTQ para o modelo aluno; em seguida, a configuração de distilação define o modelo professor, argumentos de treinamento e a função de perda de distilação. O aluno quantizado executa as operações durante a distilação, enquanto o professor permanece em plena precisão. A NVIDIA observa que as APIs de QAD são experimentais e devem passar por melhorias para simplificar o uso.
  • Orientação prática: o sucesso de QAT e QAD depende da qualidade dos dados de treinamento, dos hiperparâmetros e da arquitetura do modelo. Ao quantizar para 4 bits, NVFP4 oferece fatores de escala mais granulares que ajudam a preservar sinais pequenos. Em benchmarks de VLM, NVFP4 mostra pequenas vantagens sobre MXFP4 em algumas tarefas, ressaltando a importância de escolher o formato certo para cada carga de trabalho.
  • Integração e fluxo de trabalho: o TensorRT Model Optimizer oferece APIs compatíveis com Hugging Face e PyTorch, facilitando a preparação para QAT e QAD, mantendo fluxos de trabalho familiares. O objetivo é permitir que equipes comprimam, ajustem finamente e implantem modelos em GPUs NVIDIA com um equilíbrio entre velocidade, tamanho e precisão.

Principais conclusões

  • QAT e QAD estendem o PTQ, introduzindo aprendizado explícito para lidar com a aritmética de baixa precisão, frequentemente resultando em maior precisão de inferência.
  • QAT usa quantização falsa na passagem direta e não requer suporte de hardware nativo; é compatível com formatos FP8, NVFP4, MXFP4, INT8 e INT4.
  • QAD adiciona uma etapa de distilação, alinhando um modelo aluno quantizado com um professor de alta precisão para compensar erros de quantização durante o treinamento.
  • PTQ continua eficaz para muitos modelos, mas QAT/QAD podem oferecer ganhos significativos para alguns arquiteturas e tarefas, especialmente com quantização para 4 bits.
  • A qualidade dos dados de treinamento, hiperparâmetros e arquitetura do modelo influenciam fortemente a eficácia das técnicas de quantização; os experimentos são apoiados por APIs do TensorRT Model Optimizer com suporte a PyTorch/Hugging Face.

FAQ

  • O que é QAT?

    O QAT treina o modelo com valores quantizados na passagem direta para se adaptar à aritmética de baixa precisão, usando uma etapa de treinamento após aplicar a receita de quantização.

  • Como o QAD difere do QAT?

    O QAD adiciona uma perda de distilação para alinhar um modelo aluno quantizado com um professor de plena precisão, buscando recuperar a precisão levando em consideração o erro de quantização durante o treinamento.

  • Preciso de suporte de hardware nativo para usar QAT ou QAD?

    O QAT pode ser executado com quantização simulada e STE, sem depender de suporte de hardware nativo. As APIs de QAD são experimentais e focadas em fluxos de software.

  • uanto tempo devo dedicar ao QAT durante o treinamento?

    NVIDIA sugere cerca de 10% dos epochs iniciais, embora em alguns cenários de LLM a melhoria possa ocorrer com menos de 1% do pré-treinamento.

  • Existem ressalvas ao usar QAT/QAD?

    eficácia depende da qualidade dos dados, dos hiperparâmetros e da arquitetura; os resultados variam entre modelos e benchmarks, exigindo experimentação cuidadosa.

Referências

More news