Glossário

Poda de modelos

Optimiza os modelos de aprendizagem automática com a poda de modelos. Obtém inferência mais rápida, uso reduzido de memória e eficiência energética para implantações com recursos limitados.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

A poda de modelos é uma técnica de aprendizagem automática (ML) utilizada para otimizar modelos treinados, reduzindo o seu tamanho e complexidade. Isto envolve a identificação e remoção de parâmetros menos importantes, tais como pesos de modelos ou ligações dentro de uma rede neural (NN), que contribuem minimamente para o desempenho global do modelo. O objetivo principal é criar modelos mais pequenos e mais rápidos que exijam menos potência computacional e memória, muitas vezes sem uma diminuição significativa da precisão. Este processo é uma aplicação específica do conceito mais amplo de poda aplicado diretamente aos modelos de ML, tornando-os mais eficientes para a implementação.

Porquê utilizar a poda de modelos?

O principal fator para a poda de modelos é a eficiência. Os modelos modernos de aprendizagem profunda (DL), especialmente em domínios como a visão computacional (CV), podem ser extremamente grandes e computacionalmente intensivos. Isto coloca desafios à implementação de modelos, especialmente em dispositivos com recursos limitados, como smartphones, sistemas incorporados ou em cenários de computação de ponta. A poda de modelos ajuda a resolver esses problemas ao:

  • Reduz o tamanho do modelo: Os modelos mais pequenos requerem menos espaço de armazenamento, o que é crucial para dispositivos com capacidade de memória limitada, como os utilizados na IA do Edge.
  • Aumenta a velocidade de inferência: Menos parâmetros significam menos cálculos, o que leva a uma menor latência de inferência e permite capacidades de inferência em tempo real, essenciais para aplicações como veículos autónomos. A aplicaçãoUltralytics HUB beneficia de tais optimizações para a implementação móvel.
  • Diminui o consumo de energia: A redução da carga computacional traduz-se numa menor utilização de energia, contribuindo para práticas de IA mais sustentáveis e para uma maior duração da bateria em dispositivos móveis.
  • Melhora a generalização: Por vezes, a poda pode ajudar a reduzir o sobreajuste através da remoção de parâmetros redundantes, melhorando potencialmente o desempenho do modelo em dados não vistos.

Tipos de poda de modelos

As técnicas de poda de modelos variam, mas geralmente dividem-se em categorias baseadas na granularidade do que é removido:

  • Poda de pesos (não estruturada): Os pesos individuais abaixo de um determinado limite de importância (geralmente baseado em magnitude) são removidos (definidos como zero). Isso pode levar a modelos esparsos, mas pode exigir hardware ou software especializado, como as ferramentas daNVIDIA para modelos esparsos, para uma aceleração ideal.
  • Poda de neurônios: Neurónios inteiros (e suas conexões) considerados sem importância são removidos da rede.
  • Poda de filtro/canal (estruturada): Remove filtros ou canais inteiros em Redes Neurais Convolucionais (CNNs). Essa abordagem de poda estruturada geralmente leva a acelerações mais diretas em hardware padrão sem a necessidade de bibliotecas especializadas. Ferramentas como o DeepSparse daNeural Magic aproveitam a esparsidade para aceleração CPU , muitas vezes combinada com a podaYOLOv5 tutorialYOLOv5 com Neural Magic ).

A poda pode ocorrer depois de o modelo estar totalmente treinado ou ser integrada no processo de treino. Após a poda, os modelos são normalmente submetidos a um ajuste fino (mais treino na arquitetura mais pequena) para recuperar qualquer desempenho perdido durante a remoção de parâmetros. Estruturas como PyTorch fornecem utilitários para implementar vários métodos de poda, como mostrado no Tutorial de podaPyTorch .

Aplicações no mundo real

A poda de modelos é útil em muitos domínios da IA:

  1. Otimização da deteção de objectos em dispositivos de borda: Modelos como Ultralytics YOLO utilizados para a deteção de objectos podem ser reduzidos para serem executados de forma eficiente em hardware com recursos limitados, como um Raspberry Pi, o Edge TPU daGoogle ou oNVIDIA Jetson. Isto permite aplicações como vigilância no dispositivo, monitorização do tráfego(blogue otimização da gestão do tráfego) ou navegação robótica(blogue integração da CV na robótica).
  2. Implantação local de grandes modelos de linguagem (LLMs): As técnicas de poda podem reduzir significativamente o tamanho de modelos grandes, como os baseados na arquitetura Transformer, permitindo que sejam executados diretamente nos dispositivos do utilizador (por exemplo, smartphones) para tarefas como o processamento de linguagem natural (PNL) sem conetividade constante à nuvem. Isto aumenta a privacidade dos dados e reduz a latência para aplicações como a tradução no dispositivo ou assistentes inteligentes.

Poda vs. outras técnicas de otimização

A poda de modelos é uma das várias técnicas utilizadas para a otimização de modelos. É diferente de, mas muitas vezes complementar a:

  • Quantização do modelo: Reduz a precisão numérica dos pesos e ativações do modelo (por exemplo, de floats de 32 bits para inteiros de 8 bits), diminuindo o tamanho do modelo e acelerando a computação, especialmente em hardware com suporte especializado, como o TensorRT.
  • Destilação de conhecimento: Treina um modelo "aluno" menor para imitar o comportamento de um modelo "professor" maior e pré-treinado. O objetivo é transferir o conhecimento do modelo grande para um modelo mais compacto.

Estas técnicas podem ser combinadas; por exemplo, um modelo pode ser podado primeiro e depois quantizado para obter a máxima eficiência. Os modelos optimizados são frequentemente exportados para formatos padrão como ONNXUltralytics opções de exportaçãoUltralytics ) para ampla compatibilidade de implantação. Plataformas como o Ultralytics HUB fornecem ambientes para gerenciar modelos, conjuntos de dados(como COCO) e simplificar o caminho para a implantação otimizada.

Lê tudo
OSZAR »