Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Poda (Pruning)

Otimize modelos de IA com pruning — reduza a complexidade, aumente a eficiência e implemente mais rapidamente em dispositivos edge sem sacrificar o desempenho.

A poda é uma técnica fundamental na aprendizagem automática com o objetivo de reduzir o tamanho e a complexidade computacional de uma rede neural (NN), removendo parâmetros parâmetros desnecessários. Tal como aparar os ramos mortos de uma árvore para incentivar um crescimento saudável, a poda de modelos identifica e elimina os pesos ou ligações do modelo que contribuem minimamente para a saída do sistema. O objetivo principal é criar um modelo esparso que mantenha uma elevada precisão e, ao mesmo tempo, reduzir significativamente o uso de memória e e melhorando a latência da inferência. Este processo é essencial para a implementação de arquitecturas sofisticadas, tais como Ultralytics YOLO11em dispositivos com recursos limitados, onde onde o armazenamento e a capacidade de processamento são limitados.

Como Funciona a Poda

Normalmente, o processo começa com um modelo pré-treinado. Os algoritmos analisam a rede para encontrar parâmetros - muitas vezes representados como tensores - que tenham valores próximos de zero ou impacto limitado na previsão final. Esses parâmetros são removidos ou "zerados". Como a remoção de conexões pode degradar temporariamente o desempenho, o modelo normalmente passa por um processo chamado ajuste fino, onde é treinado novamente durante algumas épocas para permitir que os pesos pesos restantes se ajustem e recuperem a precisão perdida.

Existem duas categorias principais de poda:

  • Poda não estruturada: Este método remove pesos individuais em qualquer ponto da rede com base na magnitude. Embora seja eficaz na redução da contagem de parâmetros, ele cria padrões irregulares de acesso à memória que podem não que podem não produzir melhorias de velocidade em CPUs padrão sem sem suporte especializado de software ou hardware, como recursos de esparsidade daNVIDIA.
  • Poda estruturada: Esta abordagem remove componentes estruturais inteiros, tais como neurónios, canais ou camadas dentro de uma rede neural convolucional (CNN). Ao manter a estrutura da matriz, esse método é mais amigável ao hardware padrão e geralmente resulta em acelerações imediatas durante a inferência em tempo real.

Poda vs. Quantização vs. Destilação

É importante distinguir a poda de outras estratégias de otimização de modelos, embora sejam frequentemente utilizadas em conjunto:

  • Quantização do modelo: Em vez de Em vez de remover parâmetros, a quantização reduz a precisão dos pesos (por exemplo, convertendo de 32 bits de 32 bits para inteiros de 8 bits).
  • Destilação do conhecimento: Trata-se de treinar um modelo mais pequeno de "aluno" para imitar o comportamento de um modelo maior de "professor" maior, em vez de modificar diretamente o modelo maior.
  • Poda: Centra-se especificamente na remoção de ligações ou estruturas para induzir a esparsidade.

Aplicações no Mundo Real

A poda desempenha um papel vital na ativação da IA de ponta em vários setores:

  1. Robótica autónoma: Os robôs que utilizam visão computacional para navegação precisam de processar dados visuais localmente para evitar latência. A poda permite que modelos complexos modelos complexos de deteção de objectos sejam executados no hardware incorporado de drones ou robôs de entrega, garantindo segurança e eficiência. Saiba mais sobre integração da visão computacional na robótica.
  2. Diagnóstico móvel de cuidados de saúde: As aplicações médicas requerem frequentemente a análise de exames de alta resolução diretamente em tablets ou smartphones para proteger a privacidade dos dados dos pacientes. Os modelos podados permitem que esses dispositivos executem tarefas como a deteção de tumores sem carregar dados sensíveis para a nuvem. Veja como a a IA nos cuidados de saúde está a transformar o diagnóstico.

Exemplo prático

Enquanto Ultralytics YOLO do Ultralytics são altamente optimizados logo à partida, os desenvolvedores podem experimentar a poda usando os utilitários padrão PyTorch . O exemplo a seguir demonstra como aplicar a poda não estruturada a uma camada convolucional padrão encontrada em modelos de visão computacional.

import torch
import torch.nn.utils.prune as prune
from ultralytics.nn.modules import Conv

# Initialize a standard convolutional block used in YOLO models
layer = Conv(c1=64, c2=128)

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

# Verify the sparsity (percentage of zero weights)
sparsity = float(torch.sum(layer.conv.weight == 0)) / layer.conv.weight.nelement()
print(f"Layer sparsity achieved: {sparsity:.2%}")

Os futuros avanços na arquitetura eficiente, como o próximo YOLO26, visam integrar estes princípios de otimização de forma nativa, criando modelos que são mais pequenos, mais rápidos e mais precisos por conceção.

Conceitos-chave e recursos

  • Esparsidade: A condição em que uma matriz contém maioritariamente valores zero, um resultado direto da poda agressiva.
  • Hipótese do bilhete de lotaria: Um conceito seminal de investigadores do MIT que sugere que as redes densas contêm sub-redes mais pequenas (bilhetes premiados) que podem igualar a precisão original quando treinadas isoladamente.
  • Afinação: O processo de retreinamento do modelo modelo podado para adaptar os seus pesos restantes à estrutura nova e simplificada.

Junte-se à comunidade Ultralytics

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

Junte-se agora