Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Poda de modelos

Optimice los modelos de aprendizaje automático con la poda de modelos. Logre una inferencia más rápida, un uso reducido de la memoria y eficiencia energética para implementaciones con recursos limitados.

La poda de modelos es una técnica de optimización de modelos diseñada para reducir el tamaño y la complejidad computacional de las computacionales de las redes neuronales innecesarios. A medida que los modelos de inteligencia artificial se hacen más grandes para lograr un mayor rendimiento, a menudo se vuelven a menudo se sobreparametrizan y contienen muchas conexiones o neuronas que contribuyen poco al resultado final. Al identificar y eliminando estos componentes redundantes, los desarrolladores pueden crear modelos más eficientes que requieren menos memoria y energía, al tiempo que ofrecen una inferencia en tiempo real más rápida. a la vez que ofrecen una inferencia en tiempo real más rápida. Este proceso es especialmente importante para implantar arquitecturas sofisticadas como YOLO11 en hardware cuyos recursos son escasos, como los teléfonos móviles o los sensores integrados. móviles o sensores integrados.

Conceptos y mecanismos básicos

El proceso de poda suele constar de tres fases principales: formación, poda y ajuste fino. Inicialmente, se entrena un modelo grande hasta convergencia para captar características complejas. Durante la fase de poda, un algoritmo evalúa la importancia de determinados parámetros, normalmente ponderaciones y sesgos. parámetros específicos, normalmente ponderaciones y criterios como la magnitud o la sensibilidad. Los parámetros considerados insignificantes se reducen a cero o se eliminan por completo.

Sin embargo, el simple recorte de partes de una red puede degradar su precisión. Para contrarrestarlo, el modelo se somete a una de reentrenamiento, lo que se conoce como ajuste fino. Este paso permite que los parámetros restantes se ajusten y compensar las conexiones que faltan, lo que a menudo restablece el rendimiento del modelo a niveles cercanos a los originales. La eficacia de este método en La eficacia de este método se basa en la hipótesis del billete de lotería, que sugiere que las redes densas contienen subredes más pequeñas capaces de alcanzar una precisión comparable cuando se entrenan de forma aislada.

Tipos de poda de modelos

Las estrategias de poda suelen clasificarse en función de la estructura de los componentes que se eliminan:

  • Poda no estructurada: Este método se centra en los pesos individuales independientemente de su ubicación, poniendo a cero los que tienen valores bajos. El resultado es una matriz "dispersa" en la que las conexiones valiosas están conexiones valiosas. Aunque es eficaz para reducir el tamaño del modelo, la poda no estructurada suele requerir hardware especializado o librerías de software para obtener un aumento real de la velocidad. o bibliotecas de software especializadas para aumentar la velocidad, ya que las CPU y GPU estándar están optimizadas para operaciones densas.
  • Poda estructurada: En lugar de pesos individuales, este método elimina estructuras geométricas geométricas enteras, como canales, filtros o capas redes neuronales convolucionales (CNN). Al mantener la estructura densa de las matrices, la poda estructurada permite que el hardware estándar procese el modelo de forma más eficiente, lo que se traduce directamente en un aumento de la productividad. procese el modelo con mayor eficacia, lo que se traduce latencia de inferencia sin necesidad de herramientas herramientas especializadas de aceleración dispersa.

Poda frente a cuantificación

Aunque ambas son técnicas de optimización populares, es importante distinguir la poda de la cuantificación de modelos. cuantificación de modelos. La poda se centra en reducir el número de parámetros (conexiones o neuronas), modificando así la arquitectura del modelo. En Por el contrario, la cuantización reduce la precisión de esos parámetros, por ejemplo, convirtiendo números de coma flotante de 32 bits en números de 8 bits. de 32 bits a enteros de 8 bits. Estos métodos suelen ser complementarios. para eliminar la redundancia y, a continuación, cuantizarlo para minimizar aún más su huella en la memoria para su despliegue.

Aplicaciones en el mundo real

La poda desempeña un papel fundamental para que la visión visión por ordenador en la práctica escenarios prácticos:

  1. Detección de objetos móviles: Las aplicaciones que se ejecutan en teléfonos inteligentes, como las aplicaciones de realidad aumentada o organizadores de fotos, utilizan modelos podados para la detección de objetos localmente. Esto ahorra batería batería y garantiza la privacidad de los datos del usuario en la nube.
  2. Sistemas de seguridad para automóviles: Los vehículos autónomos dependen del procesamiento rápido de datos visuales para detectar peatones y obstáculos. Los modelos podados permiten al motor de a bordo para tomar decisiones en fracciones de segundo sin necesidad del enorme consumo de energía de una GPU de servidor.

Ejemplo de aplicación

Frameworks como PyTorch proporcionan utilidades integradas para aplicar poda mediante programación. El siguiente ejemplo muestra cómo aplicar la poda no estructurada a una capa convolucional. una operación común antes de exportar un modelo a un formato optimizado como 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%}")

Únete a la comunidad de Ultralytics

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

Únete ahora