Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Poda

Optimice los modelos de IA con la poda: reduzca la complejidad, aumente la eficiencia e implemente más rápido en dispositivos edge sin sacrificar el rendimiento.

La poda es una técnica fundamental aprendizaje automático para reducir el tamaño y la complejidad computacional de una computacional de una red neuronal (NN ) innecesarios. Al igual que se podan las ramas muertas de un árbol para que crezcan sanas, la poda de modelos identifica y identifica y elimina los pesos o conexiones que contribuyen mínimamente al resultado del sistema. El objetivo principal es crear un modelo disperso que mantenga una alta precisión, reduciendo significativamente el uso de memoria y la latencia de la inferencia. Este proceso es esencial para desplegar arquitecturas sofisticadas, como Ultralytics YOLO11en dispositivos con recursos limitados donde el almacenamiento y la capacidad de procesamiento son limitados.

Cómo funciona la poda

El proceso suele comenzar con un modelo preentrenado. Los algoritmos analizan la red para encontrar parámetros -a menudo representados como tensores- que tengan valores cercanos a cero o un impacto limitado en la predicción final. representados como tensores- que tienen valores cercanos a cero o un impacto limitado en la predicción final. Estos parámetros se se eliminan o "reducen a cero". Dado que la eliminación de conexiones puede degradar temporalmente el rendimiento, el modelo suele someterse a un proceso denominado ajuste fino, en el que para que los pesos restantes se ajusten y recuperen el rendimiento perdido. restantes se ajusten y recuperen la precisión perdida.

Existen dos categorías principales de poda:

  • Poda no estructurada: Este método elimina pesos individuales en cualquier parte de la red basándose en magnitud. Aunque es eficaz para reducir el número de parámetros, crea patrones irregulares de acceso a la memoria que pueden no de acceso a la memoria que pueden no producir mejoras de soporte de software o hardware especializado, como las funciones de sparsity deNVIDIA.
  • Poda estructurada: Este enfoque elimina componentes estructurales enteros, como neuronas, canales o capas dentro de una red neuronal convolucional (CNN). Al mantener la estructura matricial, este método es más respetuoso con el hardware estándar y suele dar lugar a un aumento inmediato de la velocidad la inferencia en tiempo real.

Poda vs. Cuantificación vs. Destilación

Es importante distinguir la poda de otras estrategias de optimización de modelos, aunque a menudo se utilizan conjuntamente:

  • Cuantización de modelos: En lugar de parámetros, la cuantización reduce la precisión de las ponderaciones (por ejemplo, convirtiendo de coma a enteros de 8 bits).
  • Destilación de conocimientos: Consiste en entrenar a un modelo "alumno" más pequeño para que imite el comportamiento de un modelo "maestro" más grande, en lugar de modificar directamente el modelo más grande. en lugar de modificar directamente el modelo mayor.
  • Poda: Se centra específicamente en eliminar conexiones o estructuras para inducir la dispersión.

Aplicaciones en el mundo real

La poda desempeña un papel vital en la habilitación de Edge AI en varios sectores:

  1. Robótica autónoma: Los robots que utilizan visión por ordenador necesitan procesar datos visuales localmente para evitar la latencia. La poda permite ejecutar complejos de detección de objetos en el hardware de drones o robots de reparto, garantizando la seguridad y la eficiencia. Más información sobre integración de la visión por ordenador en la robótica.
  2. Diagnóstico sanitario móvil: Las aplicaciones médicas a menudo requieren analizar escaneos de alta resolución de alta resolución directamente en tabletas o privacidad de los datos del paciente. Los modelos podados permiten a estos dispositivos realizar tareas como la detección de tumores sin subir datos confidenciales a la nube. Vea cómo la IA en la sanidad está transformando el diagnóstico.

Ejemplo práctico

En Ultralytics YOLO están altamente optimizados, los desarrolladores pueden experimentar con la poda utilizando las utilidades estándar PyTorch . El siguiente ejemplo muestra cómo aplicar la poda no estructurada a una capa convolucional estándar que se encuentra en los modelos de visión por ordenador.

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%}")

Los futuros avances en arquitectura eficiente, como el próximo YOLO26, pretenden integrar estos principios de optimización de forma nativa, creando modelos más pequeños, más rápidos y más precisos por diseño. principios de optimización de forma nativa, creando modelos más pequeños, más rápidos y más precisos por diseño.

Conceptos clave y recursos

  • Dispersión: Condición en la que una matriz contiene mayoritariamente valores cero, resultado directo de una poda agresiva. agresiva.
  • Hipótesis del billete de lotería: Un concepto seminal de investigadores del MIT que sugiere que las redes densas contienen (boletos ganadores) que pueden igualar la precisión original cuando se entrenan de forma aislada.
  • Puesta a punto: El proceso de reentrenamiento del modelo podado para adaptar a la nueva estructura simplificada.

Únase a la comunidad Ultralytics

Únete al futuro de la IA. Conecta, colabora y crece con innovadores de todo el mundo

Únete ahora