Optimiza os modelos de IA com poda - reduz a complexidade, aumenta a eficiência e implementa mais rapidamente em dispositivos edge sem sacrificar o desempenho.
A poda é uma técnica de otimização de modelos utilizada na inteligência artificial (IA) e na aprendizagem automática (AM) para reduzir o tamanho e a complexidade computacional dos modelos treinados. Envolve a remoção selectiva de parâmetros, como pesos ou ligações dentro de uma rede neural (NN), que são identificados como menos importantes ou redundantes para a tarefa do modelo. O objetivo principal é criar modelos mais pequenos e mais rápidos que exijam menos recursos computacionais e memória, idealmente sem uma diminuição significativa do desempenho ou da precisão. Este processo é uma parte fundamental da implementação eficiente de modelos, especialmente em dispositivos com capacidades limitadas. Embora "Pruning" seja o termo geral,"Model Pruning" refere-se especificamente à aplicação desta técnica a modelos de ML.
À medida que os modelos de aprendizagem profunda (DL) se tornam maiores e mais complexos para lidar com tarefas sofisticadas, a sua procura de potência computacional, armazenamento e energia aumenta significativamente. A poda aborda diretamente esse desafio, tornando os modelos mais leves e eficientes. Esta otimização conduz a vários benefícios: necessidades de armazenamento reduzidas, menor consumo de energia durante o funcionamento e menor latência de inferência, o que é fundamental para aplicações que requerem inferência em tempo real. A poda é particularmente valiosa para a implantação de modelos em ambientes com recursos limitados, como dispositivos móveis, sistemas incorporados e vários cenários de IA de borda, em que a eficiência é uma preocupação principal. Também pode ajudar a mitigar o overfitting simplificando o modelo.
As técnicas de poda são largamente aplicadas em vários domínios da IA. Eis dois exemplos concretos:
Os métodos de poda variam, mas geralmente dividem-se nas seguintes categorias principais:
A poda pode ser implementada em diferentes fases: antes do treino (influenciando a conceção da arquitetura), durante o processo de treino ou após o treino de um modelo pré-treinado, muitas vezes seguido de um ajuste fino para recuperar qualquer precisão perdida. As principais estruturas de aprendizagem profunda, como o PyTorch e TensorFlow fornecem ferramentas e tutoriais, como o PyTorch Pruning Tutorial, para implementar várias estratégias de poda.
A poda é uma das várias técnicas utilizadas para a otimização de modelos. É útil distingui-la de conceitos relacionados:
Estas técnicas não são mutuamente exclusivas e são frequentemente utilizadas em combinação com a poda para atingir maiores níveis de otimização. Por exemplo, um modelo pode ser podado primeiro e depois quantizado para obter a máxima eficiência. Os modelos optimizados podem frequentemente ser exportados para formatos padrão como ONNX usando ferramentas como a função de exportaçãoUltralytics para ampla compatibilidade de implantação em diferentes mecanismos de inferência.
Em resumo, a poda é uma técnica poderosa para criar modelos de IA eficientes e adequados a diversas necessidades de implementação, desempenhando um papel significativo na aplicação prática da visão computacional (CV) e de outras tarefas de ML. Plataformas como o Ultralytics HUB fornecem ferramentas e infra-estruturas, incluindo formação na nuvem, que podem facilitar o desenvolvimento e a otimização de modelos como o YOLOv8 ou YOLO11.