Glossário

Poda

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.

Treina os modelos YOLO simplesmente
com Ultralytics HUB

Aprende mais

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.

Importância da poda

À 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.

Aplicações da poda

As técnicas de poda são largamente aplicadas em vários domínios da IA. Eis dois exemplos concretos:

  1. Implementação de modelos de deteção de objectos em dispositivos periféricos: Um Ultralytics YOLO Um modelo treinado para deteção de objectos pode ser demasiado grande ou lento para ser implementado num dispositivo de baixo consumo, como um Raspberry Pi ou um Google Edge TPU. A poda pode reduzir o tamanho e a carga computacional do modelo, permitindo que ele seja executado com eficiência nesse hardware para tarefas como sistemas de segurança ou monitoramento local da vida selvagem. Consulta guias como o tutorial Edge TPU no Raspberry Pi ou o guiaNVIDIA Jetson para obteres exemplos de implementação.
  2. Otimização de modelos para sistemas autónomos: Nos veículos autónomos, os modelos de perceção complexos para tarefas como a segmentação de imagens ou a fusão de sensores devem ser executados com uma latência mínima. A poda ajuda a otimizar essas Redes Neurais Convolucionais (CNNs) para atender a requisitos rigorosos de processamento em tempo real, garantindo a operação segura e ágil do veículo. Estruturas como a NVIDIA TensorRT geralmente suportam modelos podados para inferência otimizada.

Tipos e técnicas

Os métodos de poda variam, mas geralmente dividem-se nas seguintes categorias principais:

  • Poda não estruturada: Remove pesos individuais ou neurónios com base em critérios como baixa magnitude ou contribuição para a saída. Resulta em modelos esparsos com padrões irregulares de conexões removidas. Embora possam atingir altas taxas de compactação, esses modelos podem exigir hardware especializado ou bibliotecas de software (como o DeepSparse daNeural Magic) para uma execução eficiente. Veja a integraçãoUltralytics Neural Magic .
  • Poda estruturada: Essa técnica remove componentes estruturais inteiros da rede, como filtros, canais ou até mesmo camadas. Mantém uma estrutura regular, tornando o modelo podado mais compatível com aceleradores de hardware padrão e bibliotecas como o suporte de esparsidade estruturada daNVIDIA.

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.

Poda vs. outras técnicas de otimização

A poda é uma das várias técnicas utilizadas para a otimização de modelos. É útil distingui-la de conceitos relacionados:

  • Quantização do modelo: Reduz a precisão dos pesos e ativações do modelo (por exemplo, de floats de 32 bits para inteiros de 8 bits), diminuindo o tamanho do modelo e muitas vezes acelerando a computação, particularmente em hardware especializado.
  • Destilação de conhecimento: Envolve o treinamento de um modelo "aluno" menor para imitar o comportamento de um modelo "professor" maior e pré-treinado, transferindo conhecimento sem herdar a complexidade.

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.

Lê tudo