Glossário

Quantização do modelo

Otimiza o desempenho da IA com a quantização de modelos. Reduz o tamanho, aumenta a velocidade e melhora a eficiência energética para implantações no mundo real.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A quantização de modelos é uma técnica crucial de otimização de modelos utilizada na aprendizagem profunda (DL) para reduzir os custos computacionais e de memória dos modelos. Consegue isso convertendo a precisão numérica dos parâmetros do modelo(pesos e ativações) de representações de maior precisão, normalmente números de ponto flutuante de 32 bits(FP32), para formatos de menor precisão, como ponto flutuante de 16 bits (FP16), inteiros de 8 bits(INT8) ou até mesmo representações de bits inferiores. Este processo torna os modelos de aprendizagem automática mais pequenos, mais rápidos e mais eficientes em termos energéticos, o que é particularmente vital para a implementação de modelos complexos em ambientes com recursos limitados, como dispositivos móveis ou sistemas de IA de ponta.

Como funciona a quantização de modelos

Na sua essência, a quantização do modelo envolve o mapeamento da gama de valores encontrados em tensores de alta precisão (como pesos e activações em FP32) para uma gama mais pequena representável por tipos de dados de baixa precisão (como INT8). Esta conversão reduz significativamente a memória necessária para armazenar o modelo e os recursos computacionais necessários para a inferência, uma vez que as operações em números de menor precisão (especialmente números inteiros) são frequentemente mais rápidas e mais eficientes em termos energéticos em hardware moderno como GPUs, CPUs e aceleradores especializados como TPUs ou NPUs. O objetivo é obter estes ganhos de eficiência com um impacto mínimo no desempenho de previsão do modelo.

Vantagens da Quantização de Modelos

A aplicação da quantização a modelos de aprendizagem profunda oferece várias vantagens importantes:

  • Reduz o tamanho do modelo: Os tipos de dados de menor precisão requerem menos espaço de armazenamento, tornando os modelos mais fáceis de armazenar e distribuir, especialmente para a implementação no dispositivo.
  • Velocidade de inferência mais rápida: Cálculos com números de menor precisão (especialmente números inteiros) são executados mais rapidamente em hardware compatível, reduzindo a latência da inferência. Isto é fundamental para aplicações em tempo real.
  • Eficiência energética melhorada: Computações mais rápidas e acesso reduzido à memória levam a um menor consumo de energia, prolongando a vida útil da bateria em dispositivos móveis e de ponta.
  • Compatibilidade de hardware melhorada: Muitos aceleradores de hardware especializados(Edge TPUs, NPUs em processadores ARM) são otimizados para aritmética de inteiros de baixa precisão, permitindo aumentos significativos de desempenho para modelos quantizados.

Técnicas de Quantização

Existem duas abordagens principais para a quantização de modelos:

  • Quantização pós-treinamento (PTQ): Este método envolve a quantização de um modelo que já foi treinado usando precisão de ponto flutuante padrão. É mais simples de implementar, pois não requer retreinamento ou acesso aos dados de treinamento originais. No entanto, às vezes pode levar a uma queda percetível na precisão do modelo. Ferramentas como o TensorFlow Model Optimization Toolkit fornecem recursos de PTQ.
  • Treinamento com consciência da quantização (QAT): Esta técnica simula os efeitos da quantização durante o processo de formação do modelo. Ao tornar o modelo "consciente" da redução de precisão que se aproxima, o QAT consegue frequentemente uma melhor precisão em comparação com o PTQ, especialmente para modelos sensíveis à quantização, embora exija modificações no fluxo de trabalho de formação e acesso a dados de formação. PyTorch oferece suporte para QAT.

Aplicações no mundo real

A quantização de modelos é amplamente utilizada em vários domínios:

  • Aplicações de visão móvel: Possibilita tarefas sofisticadas de visão computacional, como deteção de objetos em tempo real (por exemplo, usando um modelo Ultralytics YOLO quantizado) ou segmentação de imagens diretamente em smartphones para aplicações como realidade aumentada, edição de fotos ou pesquisa visual. A quantização torna esses modelos exigentes viáveis em hardware móvel.
  • Veículos autónomos e robótica: Implantação de modelos de perceção (para detetar pedestres, veículos, obstáculos) em carros ou drones onde a baixa latência e a eficiência energética são fundamentais para a segurança e a resistência operacional. Os modelos quantizados ajudam a atender a esses requisitos rigorosos de processamento em tempo real.
  • Dispositivos de IA de ponta: Executa modelos de IA para tarefas como a deteção de defeitos industriais, a automatização de casas inteligentes ou a monitorização da saúde em microcontroladores de baixo consumo ou processadores de ponta especializados.

Considerações e conceitos relacionados

Embora altamente benéfica, a quantização pode afetar potencialmente a precisão do modelo. Após a quantização, é essencial uma avaliação cuidadosa utilizando métricas de desempenho relevantes. Técnicas como a utilização de arquitecturas de modelos favoráveis à quantização (por exemplo, a substituição de determinadas funções de ativação, como se vê no YOLO) podem ajudar a atenuar a degradação da precisão, tal como discutido na implementação de modelos YOLOv8 quantizados.

A quantização de modelos é uma das várias técnicas de otimização de modelos. Outras incluem:

  • Poda do modelo: Remove conexões redundantes ou sem importância (pesos) na rede neural.
  • Precisão mista: Utiliza uma combinação de diferentes precisões numéricas (por exemplo, FP16 e FP32) durante o treino ou a inferência.
  • Destilação de conhecimento: Treina um modelo mais pequeno de "aluno" para imitar o comportamento de um modelo maior e pré-treinado de "professor".

Ultralytics suporta a exportação de modelos para vários formatos que facilitam a quantização e a implementação, incluindo ONNX, OpenVINO (optimizado para hardwareIntel ), TensorRT (para GPUsNVIDIA ), CoreML (para dispositivos Apple) e TFLite, permitindo a implantação eficiente de modelos em diversas plataformas de hardware. Podes gerir e implementar os teus modelos, incluindo versões quantizadas, utilizando ferramentas como o Ultralytics HUB. Integrações como Neural Magic também aproveitam a quantização para otimização CPU .

Lê tudo