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.
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".
As técnicas de poda podem ser amplamente categorizadas com base no que está sendo removido da rede:
As principais estruturas de aprendizado de máquina, como PyTorch e TensorFlow, oferecem utilitários integrados e tutoriais para implementar a poda.
A poda é essencial para implementar modelos de IA poderosos em cenários práticos onde os recursos computacionais são limitados.
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:
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.