Quantização do modelo
Otimize o desempenho da IA com a quantização de modelos. Reduza o tamanho, aumente a velocidade e melhore a eficiência energética para implantações no mundo real.
A quantização de modelos é uma poderosa técnica de otimização de modelos que reduz o espaço de memória e o custo computacional de uma rede neural (NN), convertendo os seus pesos e activações de números de vírgula flutuante de alta precisão (como 32-bit float ou FP32) para tipos de dados de menor precisão, como inteiros de 8 bits (INT8). Este processo torna os modelos significativamente mais pequenos e mais rápidos, permitindo a sua implementação em hardware com recursos limitados, como telemóveis e sistemas incorporados. O principal objetivo é melhorar o desempenho, em especial a latência da inferência, com um impacto mínimo na precisão da previsão do modelo.
Como funciona a quantização de modelos
O processo de quantização envolve o mapeamento da gama contínua de valores de vírgula flutuante num modelo treinado para um conjunto mais pequeno e discreto de valores inteiros. Esta conversão reduz o número de bits necessários para armazenar cada parâmetro, diminuindo o tamanho total do modelo. Além disso, os cálculos que utilizam números inteiros de menor precisão são muito mais rápidos em muitas CPUs modernas e aceleradores de IA especializados, como GPUs e TPUs, que têm instruções dedicadas para aritmética de números inteiros.
Existem dois métodos principais para aplicar a quantização:
- Quantização pós-treinamento (PTQ): Esta é a abordagem mais simples, em que um modelo já treinado é convertido para um formato de menor precisão. É um processo rápido que envolve a análise da distribuição de pesos e activações num pequeno conjunto de dados de calibração para determinar o mapeamento ideal de float para inteiro.
- Treino sensível à quantização (QAT): Neste método, o modelo é treinado ou afinado enquanto simula os efeitos da quantização. A passagem seguinte do processo de formação imita a inferência quantizada, permitindo que o modelo se adapte à precisão reduzida. O QAT produz frequentemente uma precisão mais elevada do que o PTQ porque o modelo aprende a compensar a potencial perda de informação durante a fase de formação. Estruturas como PyTorch e TensorFlow fornecem ferramentas robustas para a implementação de QAT.
Aplicações no mundo real
A quantização é fundamental para a execução de modelos sofisticados de visão computacional em cenários do mundo real, especialmente em dispositivos Edge AI.
- Análise de imagens no dispositivo: Muitas aplicações para smartphones utilizam modelos quantizados para funcionalidades em tempo real. Por exemplo, uma aplicação que fornece deteção de objectos em tempo real através da câmara, como a identificação de produtos ou pontos de referência, depende de um modelo quantizado como o Ultralytics YOLO11 para funcionar eficientemente no hardware do telemóvel sem esgotar a bateria ou exigir uma ligação à nuvem.
- Automóvel e Robótica: Nos veículos autónomos, os modelos de deteção de peões e de manutenção na faixa de rodagem têm de funcionar com uma latência extremamente baixa. A quantização desses modelos permite que eles sejam executados em hardware especializado, como o NVIDIA Jetson ou o Google Coral Edge TPUs, garantindo que as decisões sejam tomadas em frações de segundo, o que é crucial para a segurança.
Quantização vs. outras técnicas de otimização
A quantização de modelos é frequentemente utilizada juntamente com outros métodos de otimização, mas é distinta na sua abordagem.
- Poda de modelo: Esta técnica remove conexões redundantes ou sem importância (pesos) dentro da rede neural para reduzir seu tamanho e complexidade. Enquanto a poda torna a rede menor ao remover partes dela, a quantização torna as partes restantes mais eficientes ao reduzir sua precisão numérica. Os dois são frequentemente combinados para otimização máxima.
- Destilação de conhecimentos: Trata-se de treinar um modelo "aluno" mais pequeno para imitar um modelo "professor" maior e pré-treinado. O objetivo é transferir o conhecimento do professor para uma arquitetura mais compacta. Isto difere da quantização, que modifica a representação numérica de um modelo existente em vez de treinar um novo.
- Precisão mista: Esta técnica usa uma combinação de diferentes precisões numéricas (por exemplo, FP16 e FP32) durante o treinamento do modelo para acelerar o processo e reduzir o uso de memória. Embora relacionada, é principalmente uma otimização de formação, enquanto a quantização se concentra normalmente na otimização do modelo para inferência.
Considerações e apoio
Embora altamente benéfica, a quantização pode afetar potencialmente a precisão do modelo. É essencial efetuar uma avaliação exaustiva utilizando métricas de desempenho relevantes após a quantização para garantir que o compromisso de desempenho é aceitável.
O Ultralytics facilita a implementação de modelos quantizados, suportando a exportação para formatos que são fáceis de quantizar. Estes incluem ONNX para uma ampla compatibilidade, OpenVINO para otimização em hardware Intel e TensorRT para um elevado desempenho em GPUs NVIDIA. Plataformas como o Ultralytics HUB podem ajudar a gerenciar todo o ciclo de vida, desde o treinamento até a implantação de modelos otimizados. As integrações com ferramentas como o Neural Magic também aproveitam a quantização e a poda para obter desempenho de classe GPU em CPUs.