Model Quantization
Saiba como a quantização de modelos otimiza o Ultralytics YOLO26 para edge AI. Descubra como reduzir a memória, diminuir a latência e exportar modelos INT8 para uma inferência mais rápida.
A quantização de modelos é uma técnica sofisticada de otimização de modelos usada para reduzir os custos computacionais e de memória da execução de modelos de aprendizagem profunda. Nos fluxos de trabalho de treino padrão, as redes neuronais normalmente armazenam parâmetros (pesos e vieses) e mapas de ativação usando números de ponto flutuante de 32 bits (FP32). Embora esta elevada precisão garanta cálculos exatos durante o treino, muitas vezes é desnecessária para a inferência. A quantização converte estes valores para formatos de menor precisão, como números de ponto flutuante de 16 bits (FP16) ou inteiros de 8 bits (INT8), reduzindo efetivamente o tamanho do modelo e acelerando a velocidade de execução sem comprometer significativamente a precisão.
Porque é que a quantização é importante#
O principal motivo para usar quantização é a necessidade de implementar IA avançada em hardware com recursos limitados. À medida que os modelos de visão computacional, como o YOLO26, se tornam mais complexos, as suas exigências computacionais aumentam. A quantização resolve três limitações críticas:
- Pegada de memória: Ao reduzir a largura em bits dos pesos (por exemplo, de 32 bits para 8 bits), o requisito de armazenamento do modelo é reduzido até 4 vezes. Isto é essencial para aplicações móveis, nas quais o tamanho da aplicação é limitado.
- Latência de inferência: As operações de menor precisão são menos dispendiosas do ponto de vista computacional. Os processadores modernos, especialmente os que possuem unidades de processamento neural (NPUs) especializadas, conseguem executar operações INT8 muito mais rapidamente do que operações FP32, reduzindo significativamente a latência de inferência.
- Consumo de energia: Transferir menos dados pela memória e realizar operações aritméticas mais simples consome menos energia, prolongando a duração da bateria em dispositivos portáteis e veículos autónomos.
Comparação com conceitos relacionados#
É importante distinguir a quantização de outras técnicas de otimização, pois estas modificam o modelo de formas diferentes:
- Quantização vs. poda: Enquanto a quantização reduz o tamanho do ficheiro ao diminuir a largura em bits dos parâmetros, a poda de modelos envolve a remoção completa de ligações desnecessárias (pesos) para criar uma rede esparsa. A poda altera a estrutura do modelo, enquanto a quantização altera a representação dos dados.
- Quantização vs. destilação de conhecimento: A destilação de conhecimento é uma técnica de treino na qual um modelo pequeno, o "aluno", aprende a imitar um modelo grande, o "professor". A quantização é frequentemente aplicada ao modelo aluno após a destilação para melhorar ainda mais o desempenho de IA de edge.
Aplicações no mundo real#
A quantização permite aplicar visão computacional e IA em vários setores nos quais a eficiência é fundamental.
-
Sistemas autónomos: Na indústria automóvel, os carros autónomos têm de processar dados visuais de câmaras e LiDAR em tempo real. Os modelos quantizados implementados em motores NVIDIA TensorRT permitem que estes veículos detetem peões e obstáculos com uma latência de milissegundos, garantindo a segurança dos passageiros.
-
Agricultura inteligente: Os drones equipados com câmaras multiespectrais utilizam modelos quantizados de deteção de objetos para identificar doenças nas culturas ou monitorizar as fases de crescimento. Executar estes modelos localmente nos sistemas incorporados do drone elimina a necessidade de ligações celulares pouco fiáveis em campos remotos.
Implementação da quantização com a Ultralytics#
A biblioteca Ultralytics simplifica o processo de exportação, permitindo aos programadores converter modelos como o avançado YOLO26 para formatos quantizados. A Ultralytics Platform também fornece ferramentas para gerir estas implementações de forma integrada.
O exemplo seguinte demonstra como exportar um modelo para TFLite com a quantização INT8 ativada. Este processo inclui uma etapa de calibração na qual o modelo observa dados de amostra para determinar o intervalo dinâmico ideal para os valores quantizados.
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")Os modelos otimizados são frequentemente implementados utilizando padrões interoperáveis, como ONNX, ou motores de inferência de alto desempenho, como o OpenVINO, garantindo uma ampla compatibilidade entre diversos ecossistemas de hardware.









