Quantization-Aware Training (QAT)
Aprende como o treino consciente da quantização (QAT) otimiza modelos Ultralytics YOLO26 para implementação em dispositivos de edge. Descobre como manter uma elevada precisão com precisão INT8.
O Treinamento Consciente da Quantização (QAT) é uma técnica especializada usada durante a fase de treinamento de modelos de machine learning para prepará-los para ambientes de menor precisão. Em fluxos de trabalho padrão de deep learning, os modelos normalmente operam usando números de ponto flutuante de 32 bits e alta precisão (FP32). Embora essa precisão ofereça excelente exatidão, ela pode exigir muitos recursos computacionais e de memória, especialmente em dispositivos de borda. O QAT simula os efeitos da quantização — reduzindo a precisão para formatos como inteiros de 8 bits (INT8) — enquanto o modelo ainda está sendo treinado. Ao introduzir esses erros de quantização durante o processo de aprendizagem, o modelo aprende a adaptar seus pesos e a recuperar efetivamente a exatidão que poderia ser perdida durante a conversão após o treinamento.
Por que o QAT é importante para a implantação em dispositivos de borda#
A implantação de modelos de visão computacional em dispositivos com recursos limitados geralmente exige um equilíbrio entre velocidade e desempenho. Os métodos padrão de quantização, conhecidos como Quantização Pós-Treinamento (PTQ), aplicam a redução de precisão somente depois que o modelo é totalmente treinado. Embora o PTQ seja rápido, às vezes ele pode degradar a exatidão de modelos sensíveis, pois os pesos da rede neural são alterados significativamente sem uma oportunidade de ajuste.
O QAT resolve esse problema permitindo que o modelo "pratique" ser quantizado. Durante a passagem direta do treinamento, os pesos e as ativações são simulados como valores de baixa precisão. Isso permite que o processo de descida do gradiente atualize os parâmetros do modelo de uma forma que minimize a perda especificamente para o estado quantizado. O resultado é um modelo robusto que mantém alta exatidão mesmo quando implantado em hardware como microcontroladores ou processadores móveis.
Distinção entre QAT e Quantização Pós-Treinamento (PTQ)#
É útil distinguir o QAT da quantização de modelos, especificamente da Quantização Pós-Treinamento (PTQ):
- Quantização Pós-Treinamento (PTQ): O modelo é treinado normalmente em FP32. Após a conclusão do treinamento, os pesos são convertidos para INT8. Esse processo é mais rápido e não exige um novo treinamento, mas pode resultar em uma perda maior de exatidão em arquiteturas complexas.
- Treinamento Consciente da Quantização (QAT): O processo de quantização é emulado durante a etapa de ajuste fino. O modelo ajusta seus parâmetros internos para acomodar o ruído introduzido pela menor precisão, geralmente obtendo uma exatidão melhor do que com PTQ.
Aplicações no mundo real#
O QAT é essencial para setores nos quais a inferência em tempo real em hardware de borda é crítica.
- Drones autônomos: Em operações com drones de IA, a duração da bateria e a capacidade de processamento integrada são extremamente limitadas. Drones que usam modelos otimizados por QAT podem detetar obstáculos ou acompanhar objetos com alta precisão usando aceleradores INT8, prolongando significativamente o tempo de voo em comparação com modelos FP32.
- Câmaras inteligentes para o varejo: Os supermercados usam visão computacional no varejo para monitorizar o inventário das prateleiras ou gerir filas de checkout. Esses sistemas geralmente são executados em gateways de borda de baixo consumo. O QAT garante que os modelos de deteção de objetos executados nesses dispositivos mantenham a exatidão necessária para distinguir entre produtos semelhantes sem exigir uma conectividade dispendiosa com a nuvem.
Implementação do QAT com a Ultralytics#
A Ultralytics Platform e o ecossistema YOLO são compatíveis com a exportação de modelos para formatos quantizados. Embora o QAT seja um procedimento de treinamento complexo, as frameworks modernas facilitam a preparação de modelos para inferência quantizada.
Abaixo está um exemplo de como você pode exportar um modelo YOLO26 treinado para um formato TFLite quantizado em INT8, que utiliza os princípios da quantização para uma implantação eficiente em dispositivos de borda.
from ultralytics import YOLO
# Load a trained YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format with INT8 quantization
# This prepares the model for efficient execution on edge devices
model.export(format="tflite", int8=True)Integração com ecossistemas de dispositivos de borda#
Os modelos otimizados por meio de técnicas de quantização são projetados para serem executados em engines de inferência especializadas. Os modelos treinados com QAT são frequentemente implantados usando o ONNX Runtime para compatibilidade entre plataformas ou o OpenVINO para otimização em hardware Intel. Isso garante que, seja o destino um Raspberry Pi ou um Edge TPU dedicado, o modelo opere com a maior eficiência e velocidade possíveis.
Principais conceitos relacionados ao QAT#
Para compreender totalmente o QAT, é útil conhecer vários conceitos relacionados de machine learning:
- Precisão: Refere-se ao nível de detalhe usado para representar números. A meia precisão (FP16) e INT8 são alvos comuns da quantização.
- Calibração: O processo de determinar o intervalo dos valores dinâmicos de ativação (mín./máx.) para mapear números de ponto flutuante para inteiros de forma eficaz. Essa é uma etapa crucial na implantação de modelos YOLO quantizados.
- Latência de inferência: Um dos principais benefícios do QAT é reduzir a latência de inferência, permitindo uma tomada de decisão mais rápida em sistemas de tempo real.
- Ajuste fino: O QAT é frequentemente realizado como uma etapa de ajuste fino em um modelo pré-treinado, em vez de treinar do zero, economizando recursos computacionais.
Ao integrar o Treinamento Consciente da Quantização ao pipeline de MLOps, os desenvolvedores podem reduzir a distância entre modelos de pesquisa de alta exatidão e aplicações de IA de borda altamente eficientes e prontas para produção.









