Yolo Vision Shenzhen
Shenzhen
Junte-se agora
Glossário

Poda de Modelo

Otimize modelos de machine learning com a poda de modelo. Alcance uma inferência mais rápida, uso de memória reduzido e eficiência energética para implementações com recursos limitados.

A poda de modelos é uma técnica de otimização de modelos concebida para reduzir o tamanho e a complexidade computacional das redes neurais, removendo parâmetros parâmetros desnecessários. À medida que os modelos de inteligência artificial aumentam de tamanho para atingir um desempenho mais alto, eles geralmente se tornam sobre-parametrizados, contendo muitas ligações ou neurónios que pouco contribuem para o resultado final. Ao identificar e eliminando esses componentes redundantes, os desenvolvedores podem criar modelos mais enxutos que requerem menos memória e energia e energia, ao mesmo tempo que proporcionam uma inferência mais rápida em tempo real. Este processo é particularmente vital para a implementação de arquitecturas sofisticadas como YOLO11 em hardware onde os recursos são escassos, como telemóveis ou sensores incorporados.

Conceitos e mecanismos fundamentais

O processo de poda envolve normalmente três fases principais: formação, poda e ajuste fino. Inicialmente, um modelo grande é treinado para convergência para captar caraterísticas complexas. Durante a fase de poda, um algoritmo avalia a importância de parâmetros específicos parâmetros específicos - geralmente weights and biases-baseados em critérios como a magnitude ou a sensibilidade. Os parâmetros considerados insignificantes são definidos como zero ou totalmente eliminados.

No entanto, o simples corte de partes de uma rede pode degradar a sua precisão. Para contrariar este facto, o modelo é submetido a uma subsequente de reciclagem, conhecida como ajuste fino. Esta etapa permite que os parâmetros restantes se ajustem e compensar as ligações em falta, restaurando frequentemente o desempenho do modelo para níveis próximos dos originais. A A eficácia desta abordagem é apoiada pela A eficácia desta abordagem é apoiada pela Hipótese do Bilhete de Lotaria, que sugere que as redes densas contêm que sugere que as redes densas contêm sub-redes mais pequenas capazes de atingir uma precisão comparável quando treinadas isoladamente.

Tipos de Poda de Modelo

As estratégias de poda são geralmente classificadas de acordo com a estrutura dos componentes que estão a ser removidos:

  • Poda não estruturada: Este método visa pesos individuais, independentemente da sua localização, definindo os que têm valores baixos como zero. O resultado é uma matriz "esparsa" onde as ligações valiosas estão dispersas. Embora seja eficaz na redução do tamanho do modelo, a poda não estruturada geralmente requer hardware especializado ou bibliotecas de software especializadas para obter ganhos reais de velocidade, já que as CPUs e e GPUs são otimizadas para operações densas.
  • Poda estruturada: Em vez de pesos individuais, esta abordagem remove estruturas geométricas inteiras estruturas geométricas inteiras, como canais, filtros ou camadas dentro de redes neurais convolucionais (CNNs). Ao manter a estrutura densa das matrizes, a poda estruturada permite que o hardware padrão processe o modelo processar o modelo de forma mais eficiente, traduzindo-se diretamente numa menor latência de inferência sem a necessidade de ferramentas ferramentas especializadas de aceleração esparsa.

Poda vs. Quantização

Embora ambas sejam técnicas de otimização populares, é importante distinguir a poda da quantização de modelos. A poda centra-se na redução o número de parâmetros (ligações ou neurónios), alterando efetivamente a arquitetura do modelo. Em Em contraste, a quantização reduz a precisão desses parâmetros, por exemplo, convertendo números de por exemplo, convertendo números de ponto flutuante de 32 bits em números inteiros de 8 bits. Estes métodos são frequentemente complementares; um programador pode começar por podar um modelo para remover a redundância e, em seguida, quantizá-lo para minimizar ainda mais o espaço de memória para implantação.

Aplicações no Mundo Real

A poda desempenha um papel fundamental para tornar a visão computacional avançada visão computacional avançada acessível em cenários práticos:

  1. Deteção de objectos móveis: As aplicações executadas em smartphones, como aplicações de realidade aumentada ou ou organizadores de fotos, usam modelos podados para realizar deteção de objectos localmente. Isto preserva a vida útil da bateria bateria e garante a privacidade dos dados do utilizador ao evitar o processamento na nuvem.
  2. Sistemas de segurança automóvel: Os veículos autónomos dependem do processamento rápido de dados visuais para detect peões e obstáculos. Os modelos podados permitem que o motor de inferência motor de inferência a bordo para tomar decisões em fracções de segundo sem exigir o enorme consumo de energia de uma GPU de nível de servidor.

Exemplo de implementação

Frameworks como PyTorch fornecem utilitários incorporados para aplicar poda de forma programática. O exemplo a seguir demonstra como aplicar a poda não estruturada a uma camada convolucional uma operação comum antes de exportar um modelo para um formato otimizado como o ONNX.

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

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

# Apply L1 unstructured pruning to remove 30% of the connections
# This sets the smallest 30% of weights (by absolute value) to zero
prune.l1_unstructured(layer, name="weight", amount=0.3)

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

Junte-se à comunidade Ultralytics

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

Junte-se agora