Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Poda de Modelo

Otimize modelos de machine learning com a poda de modelo. Alcance uma inferência mais rápida, uso de memória reduzido e eficiência energética para implementações com recursos limitados.

A poda de modelos é uma técnica de otimização de modelos que torna as redes neurais menores e mais eficientes computacionalmente. A ideia central é identificar e remover parâmetros redundantes ou não importantes (pesos, neurônios ou canais) de um modelo treinado. Esse processo reduz o tamanho do modelo e pode acelerar significativamente a inferência, tornando-o ideal para implantação em dispositivos de borda com memória e poder de processamento limitados. O conceito é baseado na observação de que muitos modelos grandes são superparametrizados, o que significa que contêm componentes que contribuem muito pouco para a previsão final. Artigos seminais como o Optimal Brain Damage estabeleceram desde o início que nem todos os parâmetros são criados iguais.

Tipos de Poda de Modelo

As técnicas de poda de modelos são normalmente categorizadas pela granularidade do que é removido da rede:

  • Poda de Pesos (Não Estruturada): Este é o método mais granular, onde pesos do modelo individuais com valores abaixo de um determinado limite são definidos como zero. Isso cria um modelo "esparso", que pode ser altamente compactado. No entanto, muitas vezes requer hardware especializado ou bibliotecas de software, como as ferramentas da NVIDIA para modelos esparsos, para obter acelerações significativas durante a inferência.
  • Poda de Neurónios: Nesta abordagem, neurónios inteiros e todas as suas ligações de entrada e saída são removidos se forem considerados não importantes. Esta é uma forma mais estruturada de poda do que remover pesos individuais.
  • Poda de Filtro/Canal (Estruturada): Particularmente relevante para Redes Neurais Convolucionais (CNNs), este método remove filtros ou canais inteiros. Como preserva a estrutura densa e regular das camadas da rede, esta abordagem geralmente resulta em ganhos de desempenho diretos em hardware padrão, sem a necessidade de bibliotecas especializadas. Ferramentas como o DeepSparse da Neural Magic são projetadas para acelerar esses modelos esparsos em CPUs.

Após a poda, os modelos normalmente passam por um ajuste fino, que envolve o retreinamento da rede menor por algumas épocas para recuperar qualquer precisão perdida durante a remoção de parâmetros. A famosa Hipótese do Bilhete de Loteria sugere que, dentro de uma rede grande, existe uma sub-rede menor que pode alcançar um desempenho semelhante quando treinada do zero. Frameworks como o PyTorch oferecem ferramentas integradas para implementação, conforme demonstrado no Tutorial de Poda do PyTorch oficial.

Aplicações no Mundo Real

A poda de modelos é fundamental para implementar modelos de IA eficientes em vários cenários:

  1. Otimização da Detecção de Objetos em Dispositivos Edge: Modelos como o Ultralytics YOLO podem ser podados para serem executados de forma eficiente para tarefas de detecção de objetos em hardware com recursos limitados, como um Raspberry Pi ou NVIDIA Jetson. Isso permite aplicações em tempo real, como gerenciamento de tráfego, vigilância inteligente e integração de visão computacional em robótica.
  2. Implantação Local de Modelos de Linguagem Grandes (LLMs): A poda é usada para reduzir modelos massivos baseados na arquitetura Transformer, permitindo que eles sejam executados em dispositivos como smartphones para tarefas de processamento de linguagem natural (NLP). Esta abordagem, às vezes combinada com outras técnicas como a quantização, permite assistentes de IA e aplicativos de tradução poderosos no dispositivo, ao mesmo tempo em que aumenta a privacidade dos dados e reduz a latência. Pesquisas e ferramentas de organizações como a Hugging Face exploram a poda de LLMs.

Poda vs. Outras Técnicas de Otimização

A poda de modelos é uma das várias técnicas complementares de otimização de modelos:

  • Quantização de Modelo (Model Quantization): Esta técnica reduz a precisão numérica dos pesos e ativações do modelo (por exemplo, de números de ponto flutuante de 32 bits para inteiros de 8 bits). Ao contrário da poda, que remove parâmetros, a quantização torna os parâmetros existentes menores em tamanho. É frequentemente aplicada após a poda para otimização máxima, especialmente ao segmentar hardware com suporte especializado como o TensorRT.
  • Destilação de Conhecimento: Este método envolve treinar um modelo "estudante" menor para imitar a saída de um modelo "professor" maior, pré-treinado. O objetivo é transferir o conhecimento aprendido do professor para uma arquitetura mais compacta. Isso difere da poda, que reduz um modelo já treinado, em vez de treinar um novo.

Em última análise, essas técnicas podem ser usadas em combinação para criar modelos altamente eficientes. Uma vez otimizado, um modelo pode ser exportado para formatos padrão como ONNX usando as opções de exportação da Ultralytics para ampla implantação em diferentes engines de inferência. Plataformas como o Ultralytics HUB fornecem as ferramentas para gerenciar todo o ciclo de vida dos modelos de visão computacional, desde o treinamento até a implantação otimizada.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Conecte-se, colabore e cresça com inovadores globais

Junte-se agora
Link copiado para a área de transferência