Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Poda (Pruning)

Otimize modelos de IA com pruning — reduza a complexidade, aumente a eficiência e implemente mais rapidamente em dispositivos edge sem sacrificar o desempenho.

A poda é uma técnica de otimização de modelos usada para reduzir o tamanho e a complexidade computacional de uma rede neural (RN) treinada. O processo envolve identificar e remover parâmetros (pesos) ou estruturas (neurônios, canais ou camadas) redundantes ou menos importantes do modelo. O objetivo é criar um modelo menor, mais rápido e com maior eficiência energética que mantenha um nível de precisão comparável ao original. Isso é particularmente crucial para implementar modelos de IA complexos em ambientes com recursos limitados, como dispositivos edge.

Como Funciona a Poda

O processo de pruning normalmente começa depois que um modelo de aprendizado profundo foi totalmente treinado. Ele opera com o princípio de que muitos modelos grandes são superparametrizados, o que significa que contêm muitos pesos e neurônios que contribuem muito pouco para a previsão final. Um método comum para identificar esses componentes não importantes é analisar sua magnitude; parâmetros com valores próximos de zero são considerados menos significativos. Uma vez identificados, esses parâmetros são removidos ou definidos como zero. Após o processo de pruning, a rede agora menor geralmente passa por ajuste fino, que envolve o retreinamento do modelo por mais algumas épocas. Esta etapa ajuda os parâmetros restantes a se ajustarem às mudanças arquitetônicas e a recuperar qualquer desempenho que possa ter sido perdido durante o pruning. Este processo iterativo de pruning e ajuste fino pode ser repetido para alcançar um equilíbrio desejado entre o tamanho do modelo e o desempenho, conforme descrito em artigos de pesquisa fundamentais como "Deep Compression".

Tipos de Poda

As técnicas de poda podem ser amplamente categorizadas com base no que está sendo removido da rede:

  • Poda Não Estruturada (Poda de Peso): Este método remove pesos individuais da rede com base num critério específico, como a sua magnitude. Resulta num modelo esparso, onde muitas conexões são zeradas. Embora isto possa reduzir significativamente o número de parâmetros, nem sempre leva a uma inferência mais rápida em hardware padrão como CPUs ou GPUs sem bibliotecas de software especializadas, como as ferramentas da NVIDIA para modelos esparsos.
  • Poda Estruturada: Esta abordagem remove componentes estruturais inteiros da rede, como neurônios, canais ou até mesmo camadas inteiras dentro de uma Rede Neural Convolucional (CNN). Como remove blocos regulares da rede, ela reduz diretamente o tamanho do modelo e os requisitos computacionais de uma forma que o hardware padrão pode facilmente explorar, muitas vezes levando a acelerações mais previsíveis. Ferramentas como o DeepSparse da Neural Magic são projetadas para acelerar a inferência em CPUs para tais modelos esparsos estruturados.

As principais estruturas de aprendizado de máquina, como PyTorch e TensorFlow, oferecem utilitários integrados e tutoriais para implementar a poda.

Aplicações no Mundo Real

A poda é essencial para implementar modelos de IA poderosos em cenários práticos onde os recursos computacionais são limitados.

  1. Otimização da Detecção de Objetos em Dispositivos Edge: Modelos como o Ultralytics YOLO são usados para detecção de objetos em tempo real. Ao podar um modelo como o YOLOv8, ele pode ser implementado em dispositivos edge de baixa potência, como um Raspberry Pi ou NVIDIA Jetson. Isso permite aplicações como vigilância inteligente no dispositivo, otimização do gerenciamento de tráfego e integração de visão computacional em robótica.
  2. Execução Local de Modelos de Linguagem Grandes (LLMs): A poda pode reduzir drasticamente a pegada de memória de Modelos de Linguagem Grandes (LLMs) baseados em arquiteturas como o Transformer. Um LLM podado pode ser executado diretamente num smartphone ou portátil para tarefas de Processamento de Linguagem Natural (NLP), como o resumo de texto ou assistentes virtuais locais. Isto melhora a capacidade de resposta e aumenta a privacidade dos dados, mantendo os dados do utilizador no dispositivo, um princípio fundamental para organizações como a Electronic Frontier Foundation (EFF).

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

A poda é uma das várias técnicas para otimização de modelos e é frequentemente usada em conjunto com outras. É importante distingui-la de conceitos relacionados:

  • Quantização de Modelo: Esta técnica 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). Isso diminui o tamanho do modelo e pode acelerar a computação, especialmente em hardware com suporte especializado. Ao contrário da poda, que remove parâmetros, a quantização os comprime.
  • Destilação de Conhecimento: Neste método, um modelo "estudante" menor é treinado para replicar a saída de um modelo "professor" maior, pré-treinado. O objetivo é transferir o conhecimento aprendido para uma arquitetura mais compacta, enquanto o pruning modifica a arquitetura existente.

Essas técnicas não são mutuamente exclusivas. Um fluxo de trabalho comum é primeiro podar um modelo para remover parâmetros redundantes e, em seguida, aplicar a quantização ao modelo podado para obter a máxima eficiência. Os modelos otimizados podem então ser exportados para formatos padrão como ONNX usando a função de exportação Ultralytics para uma ampla implementação em vários inference engines. Plataformas como o Ultralytics HUB podem ajudar a gerenciar todo o ciclo de vida, desde o treinamento até a implementação de modelos otimizados.

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