Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Poda (Pruning)

Saiba como a poda otimiza redes neurais como Ultralytics , removendo parâmetros redundantes. Explore métodos estruturados e não estruturados para IA de ponta.

A poda é uma técnica estratégica de otimização de modelos usada para reduzir o tamanho e a complexidade computacional das redes neurais, removendo parâmetros desnecessários . Assim como um jardineiro poda galhos mortos ou crescidos demais para ajudar uma árvore a crescer, os algoritmos de poda identificam e eliminam pesos e vieses redundantes weights and biases que contribuem pouco para o poder preditivo de um modelo. O objetivo principal é criar um modelo comprimido e "esparso" que mantenha alta precisão, consumindo significativamente menos memória e energia. Essa redução é essencial para melhorar a latência de inferência, permitindo que arquiteturas avançadas sejam executadas com eficiência em hardware com recursos limitados, como telemóveis e dispositivos incorporados.

Mecanismos e Metodologia

Os modelos modernos de aprendizagem profunda são frequentemente sobreparametrizados, o que significa que contêm muito mais ligações do que o necessário para resolver uma tarefa específica. A poda explora isso removendo ligações que têm valores próximos de zero, sob a suposição de que elas têm um impacto insignificante na saída. Após a remoção dos parâmetros, o modelo normalmente passa por um processo de ajuste fino, no qual é retreinado brevemente para ajustar os pesos restantes e recuperar qualquer desempenho perdido. Esse conceito está intimamente relacionado à Hipótese do Bilhete de Loteria, que sugere que grandes redes contêm sub-redes menores e altamente eficientes, capazes de atingir precisão semelhante.

Existem duas categorias principais de estratégias de poda:

  • Poda não estruturada: Este método remove pesos individuais com base na sua magnitude, independentemente da sua localização. Embora reduza efetivamente a contagem total de parâmetros, cria matrizes esparsas irregulares que as CPUs e GPUs padrão podem ter dificuldade em processar de forma eficiente sem software especializado.
  • Poda estruturada: esta abordagem remove estruturas geométricas inteiras, como neurónios, canais ou camadas dentro de uma rede neural convolucional (CNN). Ao preservar a estrutura da matriz, a poda estruturada é altamente compatível com aceleradores de hardware padrão, geralmente resultando em acelerações imediatas para inferência em tempo real.

Aplicações no Mundo Real

A poda é indispensável para permitir a IA de ponta em vários setores onde os recursos de hardware são limitados:

  1. Drones autónomos: Os veículos aéreos não tripulados utilizados para busca e salvamento dependem da visão computacional para navegar em ambientes complexos . Os modelos de deteção de objetos podados permitem que esses dispositivos processem feeds de vídeo localmente em tempo real, evitando os problemas de latência associados à comunicação na nuvem .
  2. Cuidados de saúde móveis: os dispositivos médicos portáteis para análise por ultrassom utilizam modelos podados para detect diretamente no dispositivo. Isso garante a privacidade dos dados dos pacientes e permite diagnósticos sofisticados em áreas remotas sem acesso à Internet.

Exemplo de implementação

Embora modelos de última geração como o YOLO26 sejam projetados para eficiência, os desenvolvedores podem aplicar poda para otimizar ainda mais as camadas usando bibliotecas como PyTorch. O exemplo a seguir demonstra como aplicar poda não estruturada a uma camada convolucional.

import torch
import torch.nn.utils.prune as prune

# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=32, kernel_size=3)

# Apply L1 unstructured pruning to remove 30% of weights with the lowest magnitude
prune.l1_unstructured(layer, name="weight", amount=0.3)

# Verify sparsity (percentage of zero parameters)
sparsity = 100.0 * float(torch.sum(layer.weight == 0)) / layer.weight.nelement()
print(f"Sparsity achieved: {sparsity:.2f}%")

Poda vs. Técnicas de otimização relacionadas

Para otimizar eficazmente um modelo para implementação, é útil distinguir a poda de outras estratégias:

  • Quantização do modelo: Ao contrário da poda, que remove conexões, a quantização reduz a precisão dos pesos (por exemplo, convertendo números de ponto flutuante de 32 bits em inteiros de 8 bits). Ambas as técnicas podem ser usadas em conjunto para maximizar a eficiência em sistemas incorporados.
  • Destilação de conhecimento: envolve treinar um modelo «aluno» menor para imitar o comportamento de um modelo «professor» maior . A poda modifica o modelo original diretamente, enquanto a destilação treina uma arquitetura nova e compacta.

Para uma gestão abrangente do ciclo de vida, incluindo formação, anotação e implementação de modelos otimizados, os utilizadores podem aproveitar a Ultralytics . Isso simplifica o fluxo de trabalho, desde a gestão de conjuntos de dados até a exportação de modelos em formatos compatíveis com hardware, como ONNX ou TensorRT.

Junte-se à comunidade Ultralytics

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

Junte-se agora