Glossário

Quantização do modelo

Otimiza modelos de aprendizagem profunda com quantização de modelos. Reduz o tamanho, aumenta a velocidade e implementa de forma eficiente em dispositivos com recursos limitados.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A quantização de modelos é uma técnica utilizada para otimizar os modelos de aprendizagem profunda, reduzindo a precisão dos números utilizados para representar os seus parâmetros, como pesos e activações. Normalmente, os modelos de aprendizagem profunda usam números de ponto flutuante de 32 bits (FP32). A quantização converte-os em tipos de menor precisão, como ponto flutuante de 16 bits (FP16) ou inteiro de 8 bits (INT8). Esta redução na precisão leva a tamanhos de modelo mais pequenos, tempos de inferência mais rápidos e menor utilização de memória, tornando-a particularmente benéfica para a implementação em dispositivos com recursos limitados, como telemóveis ou sistemas incorporados.

Vantagens da Quantização de Modelos

A quantização de modelos oferece várias vantagens que a tornam uma técnica valiosa no domínio da aprendizagem automática. Uma das principais vantagens é a redução do tamanho do modelo. Ao usar tipos de dados de menor precisão, o tamanho geral do modelo é significativamente reduzido. Isto é particularmente útil para a implementação de modelos em dispositivos com capacidade de armazenamento limitada. Além disso, os modelos quantizados conduzem frequentemente a tempos de inferência mais rápidos. Os cálculos de baixa precisão são geralmente mais rápidos de efetuar, especialmente em hardware que suporta nativamente essas operações. Este aumento de velocidade é crucial para aplicações em tempo real, como a deteção de objectos e a classificação de imagens. Outro benefício significativo é a redução da largura de banda da memória. Tipos de dados menores significam que menos dados precisam ser movidos, o que pode aliviar gargalos em ambientes com restrições de memória.

Tipos de Quantização de Modelos

Existem várias abordagens para a quantização de modelos, cada uma com as suas próprias vantagens e desvantagens. A quantização pós-treinamento (PTQ) é um dos métodos mais simples. Consiste em quantificar os pesos e as activações de um modelo já treinado sem necessidade de novo treino. A quantização pós-treinamento pode ainda ser classificada em quantização de faixa dinâmica, quantização de inteiros e quantização de float16. A quantização de intervalo dinâmico quantiza os pesos para números inteiros, mas mantém as ativações no formato de ponto flutuante. A quantização de inteiros converte os pesos e as activações em inteiros, enquanto a quantização float16 utiliza números de vírgula flutuante de 16 bits. Outro método é o treinamento sensível à quantização (QAT), em que o modelo é treinado tendo em mente a quantização. O treino consciente da quantização simula os efeitos da quantização durante o treino, permitindo que o modelo se adapte e alcance uma precisão potencialmente superior à do PTQ.

Quantização de modelos vs. outras técnicas de otimização

A quantização do modelo é frequentemente utilizada juntamente com outras técnicas de otimização para obter os melhores resultados. A poda de modelos é outro método popular que envolve a remoção de conexões menos importantes na rede neural, reduzindo o número de parâmetros e cálculos. Enquanto a quantização de modelos reduz a precisão dos parâmetros, a poda de modelos reduz a quantidade. Ambas as técnicas podem ser combinadas para aumentar ainda mais a eficiência. O treinamento de precisão mista é outra técnica relacionada que usa números de ponto flutuante de 32 bits e 16 bits durante o treinamento para acelerar o processo e reduzir o uso de memória. No entanto, difere da quantização porque se concentra principalmente na fase de treinamento, em vez de otimizar o modelo para inferência.

Aplicações reais da quantização de modelos

A quantização de modelos tem inúmeras aplicações no mundo real, particularmente em cenários em que os recursos computacionais são limitados. Por exemplo, a implementação de modelos Ultralytics YOLO em dispositivos de ponta como smartphones ou drones pode beneficiar muito da quantização. Ao reduzir o tamanho do modelo e o tempo de inferência, torna-se viável executar tarefas complexas de visão computacional em tempo real nesses dispositivos. Outro exemplo é a indústria automóvel, onde os carros autónomos requerem um processamento rápido dos dados dos sensores para tomar decisões rápidas. Os modelos quantizados podem ajudar a alcançar a velocidade e a eficiência necessárias para estas aplicações críticas. Além disso, no domínio dos cuidados de saúde, a quantização de modelos pode permitir a implementação de ferramentas de diagnóstico avançadas em dispositivos portáteis, tornando os cuidados de saúde mais acessíveis e eficientes.

Ferramentas e estruturas para a quantização de modelos

Várias ferramentas e estruturas suportam a quantização de modelos, tornando mais fácil para os desenvolvedores implementar essa técnica. TensorFlow O Lite oferece suporte robusto para quantização pós-treinamento e treinamento com reconhecimento de quantização, permitindo que os usuários convertam seus modelos TensorFlow em formatos otimizados. PyTorch O Lite também oferece funcionalidades de quantização, incluindo quantização dinâmica e estática, permitindo aos utilizadores reduzir o tamanho do modelo e melhorar o desempenho. ONNX O tempo de execução é outra ferramenta poderosa que suporta a quantização de modelos, fornecendo execução otimizada de modelos ONNX em várias plataformas de hardware. Estas ferramentas são frequentemente fornecidas com documentação e exemplos detalhados, ajudando os utilizadores a integrar eficazmente a quantização nos seus fluxos de trabalho de aprendizagem automática.

Desafios na Quantização de Modelos

Embora a quantização de modelos ofereça muitos benefícios, também apresenta alguns desafios. Uma das principais preocupações é a potencial perda de precisão. Reduzir a precisão dos pesos e activações pode levar a uma queda no desempenho do modelo, especialmente se não for feito com cuidado. Técnicas como o treinamento sensível à quantização podem ajudar a mitigar esse problema, mas exigem mais esforço e recursos computacionais durante a fase de treinamento. Outro desafio é o suporte de hardware. Nem todas as plataformas de hardware suportam eficientemente cálculos de baixa precisão. No entanto, a tendência está a evoluir para um maior suporte de modelos quantizados, com muitos dispositivos e chips mais recentes optimizados para operações INT8 e FP16. Os programadores têm de estar cientes destes desafios e escolher o método de quantização adequado com base nas suas necessidades e restrições específicas. Para mais informações sobre a otimização de modelos, podes explorar técnicas como a afinação de hiperparâmetros e opções de implementação de modelos.

Lê tudo