Glossário

Poda

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.

Como funciona a poda

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

Tipos de poda

As técnicas de poda podem ser classificadas de forma geral com base no que está a ser removido da rede:

  • Poda não estruturada (poda de peso): Este método remove pesos individuais da rede com base em um critério específico, como sua magnitude. O resultado é um modelo esparso, em que muitas conexões são zeradas. Embora isso possa reduzir significativamente o número de parâmetros, nem sempre pode levar 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 mesmo camadas inteiras de uma Rede Neural Convolucional (CNN). Como remove blocos regulares da rede, reduz diretamente o tamanho do modelo e os requisitos computacionais de uma forma que o hardware padrão pode explorar facilmente, 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 esses modelos esparsos estruturados.

As principais estruturas de aprendizagem automática, como o PyTorch e o TensorFlow, oferecem utilitários e tutoriais integrados para implementar a poda.

Aplicações no mundo real

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.

  1. Otimização da deteção de objectos em dispositivos de extremidade: Modelos como o Ultralytics YOLO são usados para deteção de objetos em tempo real. Ao podar um modelo como o YOLOv8, ele pode ser implantado em dispositivos de borda de baixo consumo de energia, como um Raspberry Pi ou NVIDIA Jetson. Isto permite aplicações como a vigilância inteligente no dispositivo, a otimização da gestão do tráfego e a integração da visão computacional na robótica.
  2. Executando grandes modelos de linguagem (LLMs) localmente: A poda pode reduzir drasticamente o espaço de memória dos modelos de linguagem de grande porte (LLMs) com base em arquitecturas como o Transformer. Um LLM podado pode ser executado diretamente num smartphone ou portátil para tarefas de Processamento de Linguagem Natural (PLN), como a sumarização 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 de otimização de modelos e é frequentemente utilizada juntamente com outras. É importante distingui-la de conceitos relacionados:

  • Quantização de modelos: Esta técnica reduz a precisão numérica dos pesos e activações do modelo (por exemplo, de 32 bits flutuantes 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 do conhecimento: Neste método, um modelo "aluno" mais pequeno é treinado para replicar o resultado de um modelo "professor" maior e pré-treinado. O objetivo é transferir os conhecimentos adquiridos para uma arquitetura mais compacta, enquanto a poda modifica a arquitetura existente.

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.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Ligue-se, colabore e cresça com inovadores globais

Aderir agora
Ligação copiada para a área de transferência