Otimize os modelos de IA com poda - reduza a complexidade, aumente a eficiência e implante mais rapidamente em dispositivos de borda sem sacrificar o desempenho.
A poda é uma técnica de otimização de modelos utilizada para reduzir o tamanho e a complexidade computacional de uma rede neuronal (RN) treinada. O processo envolve a identificação e remoção de parâmetros redundantes ou menos importantes (pesos) ou estruturas (neurónios, canais ou camadas) do modelo. O objetivo é criar um modelo mais pequeno, mais rápido e mais eficiente em termos energéticos que mantenha um nível de precisão comparável ao original. Isto é particularmente crucial para a implementação de modelos complexos de IA em ambientes com recursos limitados, como os dispositivos de ponta.
O processo de poda começa normalmente depois de um modelo de aprendizagem profunda ter sido totalmente treinado. Ele opera com base no princípio de que muitos modelos grandes são excessivamente parametrizados, o que significa que eles contêm muitos pesos e neurônios que contribuem muito pouco para a previsão final. Um método comum para identificar esses componentes sem importância é analisar sua magnitude; parâmetros com valores próximos a zero são considerados menos significativos. Uma vez identificados, esses parâmetros são removidos ou zerados. Após o processo de poda, a rede, agora menor, geralmente passa por um 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 na arquitetura e a recuperarem qualquer desempenho que possa ter sido perdido durante a poda. Este processo iterativo de poda e afinação pode ser repetido para alcançar o equilíbrio desejado entre o tamanho do modelo e o desempenho, conforme descrito em trabalhos de investigação fundamentais como"Deep Compression".
As técnicas de poda podem ser classificadas de forma geral com base no que está a ser removido da rede:
As principais estruturas de aprendizagem automática, como o PyTorch e o TensorFlow, oferecem utilitários e tutoriais integrados para implementar a poda.
A poda é essencial para a implementação de modelos de IA potentes em cenários práticos em que os recursos computacionais são limitados.
A poda é uma das várias técnicas de otimização de modelos e é frequentemente utilizada juntamente com outras. É importante distingui-la de conceitos relacionados:
Estas 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 optimizados podem então ser exportados para formatos padrão como ONNX utilizando a função de exportação do Ultralytics para uma ampla implementação em vários motores de inferência. Plataformas como o Ultralytics HUB podem ajudar a gerir todo o ciclo de vida, desde a formação até à implementação de modelos optimizados.