Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Quantization-Aware Training (QAT)

O treino com consciência de quantização (QAT) simula o arredondamento INT8 durante o treino para que os pesos se adaptem antes da exportação, preservando a precisão que uma conversão INT8 simples perde.

O treinamento com reconhecimento de quantização (QAT) é uma técnica de treinamento que prepara um modelo para inferência de baixa precisão ao simular a quantização durante o treinamento. Normalmente, os modelos treinam e armazenam pesos como números de ponto flutuante de 32 bits (FP32), e a quantização de modelos os converte em formatos como inteiros de 8 bits (INT8) para implantação, deixando os pesos 4 vezes menores e permitindo que CPUs, GPUs e unidades de processamento neural (NPUs) usem operações aritméticas inteiras rápidas. A conversão arredonda cada valor e limita os valores atípicos, o que reduz a acurácia. O QAT insere esse arredondamento na passagem direta enquanto o modelo ainda está aprendendo, para que o gradiente descendente encontre pesos que continuem funcionando após a quantização. Geralmente, ele é executado como uma etapa curta de ajuste fino em um modelo já treinado. O esquema de inferência somente com aritmética inteira do Google para CPUs móveis combinou inferência INT8 com esse tipo de procedimento de treinamento, e o QAT se tornou desde então uma ferramenta padrão para a implantação de IA de borda.

Como funciona o treinamento com reconhecimento de quantização#

O QAT adiciona operações de quantização simulada, também chamadas de pares quantizar-desquantizar (Q/DQ), aos pesos e às ativações do modelo. Cada uma mapeia um valor float para o nível INT8 mais próximo usando uma escala e um ponto zero, e depois o converte imediatamente de volta para float, para que a rede continue calculando em ponto flutuante, mas veja os mesmos valores arredondados que um mecanismo INT8 usaria. As escalas vêm da calibração, que registra o intervalo típico de cada tensor em alguns lotes de dados, e alguns métodos também as aprendem durante o treinamento.

O gradiente do arredondamento é zero em quase toda parte, o que interromperia o aprendizado. O QAT usa o estimador de passagem direta (STE), que trata a etapa de arredondamento como a função identidade durante a retropropagação, permitindo que os gradientes passem para os pesos FP32 subjacentes:

import torch

# FP32 weights that training keeps and updates
w = torch.tensor([0.3137, -0.7214, 0.0521, 1.1800], requires_grad=True)

# Symmetric INT8 fake quantization: snap each weight to one of 255 levels, then map back to float
scale = w.detach().abs().max().item() / 127
w_q = torch.fake_quantize_per_tensor_affine(w, scale, 0, -127, 127)
print(f"Fake-quantized: {[round(v, 4) for v in w_q.tolist()]}")

# The forward pass sees the rounded weights; the straight-through estimator still delivers gradients to w
x = torch.tensor([1.0, 2.0, 3.0, 4.0])
loss = (w_q * x).sum()
loss.backward()
print(f"Gradient on FP32 weights: {w.grad.tolist()}")

A passagem direta usa os pesos arredondados 0.3159, −0.7247, 0.0557 e 1.18, cada um a no máximo meio passo de quantização (0.0046) de seu valor FP32; ainda assim, o gradiente que chega aos pesos FP32 é exatamente a entrada: 1.0, 2.0, 3.0 e 4.0, como se não tivesse ocorrido arredondamento. Ao longo de muitas etapas, o otimizador move os pesos para posições em que o erro de arredondamento causa o menor dano, e o modelo treinado é exportado para INT8 com as escalas aprendidas.

QAT vs. quantização pós-treinamento#

A quantização pós-treinamento (PTQ) converte diretamente um modelo FP32 finalizado, usando algumas centenas de imagens de calibração para definir os intervalos. Leva minutos e não exige um pipeline de treinamento, mas os pesos não têm a oportunidade de se adaptar ao arredondamento, então modelos sensíveis podem perder uma quantidade perceptível de acurácia. O QAT exige uma etapa de ajuste fino com todos os dados de treinamento e, em troca, recupera a maior parte dessa perda. As equipes geralmente tentam primeiro o PTQ e só passam ao QAT quando a queda de acurácia do INT8 é grande demais:

O Ultralytics YOLO executa QAT quando o treinamento recebe quantize=8: ele calibra a quantização simulada INT8 por meio do NVIDIA Model Optimizer, faz o ajuste fino com ela no ciclo e salva intervalos que as exportações para ONNX e TensorRT gravam como nós Q/DQ, sem dados de calibração separados. Em mecanismos TensorRT no COCO val2017, o PTQ reduziu o modelo YOLO26 médio de 0.527 para 0.470 mAP50-95, enquanto o QAT o manteve em 0.514; o modelo nano perdeu apenas 0.010 com PTQ, então o QAT não acrescentou nada nesse caso.

from ultralytics import YOLO

# Parta de um checkpoint YOLO26 FP32 treinado
model = YOLO("yolo26n.pt")

# Faça o ajuste fino com a quantização simulada INT8 no ciclo, usando uma taxa de aprendizado baixa
model.train(data="coco8.yaml", epochs=5, quantize=8, optimizer="AdamW", lr0=0.00001, cos_lr=True)

# Exporte para ONNX; os intervalos INT8 aprendidos tornam-se nós Q/DQ, portanto não são necessários dados de calibração
model.export(format="onnx", quantize=8)

Onde o QAT é usado#

  • Visão de borda: detectores INT8 em celulares, câmeras inteligentes, drones e NPUs, nos quais aceleradores que operam somente com inteiros não conseguem executar modelos de ponto flutuante.
  • Servidores de inferência: mecanismos de GPU como TensorRT executam kernels INT8 Tensor Core para aumentar a taxa de transferência, e o QAT mantém a acurácia próxima à do FP32.
  • Modelos de linguagem: o QAT já alcança menos de 8 bits. O Google lançou checkpoints Gemma 3 QAT no formato Q4_0 de 4 bits que preservam uma qualidade próxima à do bfloat16 com uma fração da memória.

As principais estruturas fornecem ferramentas de QAT, incluindo torchao do PyTorch, o Model Optimization Toolkit do TensorFlow e o NNCF da Intel para OpenVINO.

  • Quantização de modelos: Termo abrangente para reduzir a precisão numérica. PTQ e QAT são seus dois principais fluxos de trabalho.
  • Treinamento com precisão mista: treina em FP16 ou BF16 para economizar memória e tempo, sem preparar o modelo para inferência INT8.
  • Precisão de meia precisão: inferência FP16, tolerada pela maioria dos modelos sem retreinamento, por isso raramente é necessário usar QAT.
  • Poda de modelos: remove pesos ou canais em vez de reduzir sua precisão; as duas técnicas de compressão podem ser combinadas.
  • Destilação de conhecimento: treina uma arquitetura menor para imitar uma maior. Muitas vezes, é combinada com QAT, usando o modelo de precisão total como professor de sua própria cópia quantizada.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina