Glosario

Poda de modelos

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

La poda de modelos es una técnica de aprendizaje automático que se utiliza para optimizar los modelos entrenados reduciendo su tamaño y complejidad. Consiste en identificar y eliminar los parámetros menos importantes, como los pesos del modelo o las conexiones dentro de una red neuronal (NN), que contribuyen mínimamente al rendimiento general del modelo. El objetivo principal es crear modelos más pequeños y rápidos que requieran menos potencia de cálculo y memoria, a menudo sin una disminución significativa de la precisión. Este proceso es una aplicación específica del concepto más amplio de poda aplicado directamente a los modelos de ML, haciéndolos más eficientes para su despliegue.

¿Por qué utilizar la poda modelo?

El principal motor de la poda de modelos es la eficiencia. Los modelos modernos de aprendizaje profundo (deep learning, DL), especialmente en campos como la visión por ordenador (computer vision, CV), pueden ser extremadamente grandes e intensivos desde el punto de vista computacional. Esto plantea retos para la implementación de modelos, especialmente en dispositivos con recursos limitados, como smartphones, sistemas integrados o en escenarios de computación periférica. La poda de modelos ayuda a resolver estos problemas:

  • Reducción del tamaño de los modelos: Los modelos más pequeños requieren menos espacio de almacenamiento, lo que es crucial para los dispositivos con capacidad de memoria limitada como los que se utilizan en Edge AI.
  • Mayor velocidad de inferencia: Menos parámetros significan menos cálculos, lo que conduce a una menor latencia de inferencia y permite capacidades de inferencia en tiempo real, esenciales para aplicaciones como vehículos autónomos. La aplicación Ultralytics HUB se beneficia de estas optimizaciones para su despliegue móvil.
  • Menor consumo de energía: La reducción de la carga computacional se traduce en un menor consumo de energía, lo que contribuye a unas prácticas de IA más sostenibles y a una mayor duración de la batería en los dispositivos móviles.
  • Mejora de la generalización: A veces, la poda puede ayudar a reducir el sobreajuste mediante la eliminación de parámetros redundantes, mejorando potencialmente el rendimiento del modelo en datos no vistos.

Tipos de poda de modelos

Las técnicas de poda de modelos varían, pero generalmente se dividen en categorías basadas en la granularidad de lo que se elimina:

  • Poda de pesos (no estructurada): Los pesos individuales por debajo de un determinado umbral de importancia (a menudo basado en la magnitud) se eliminan (se ponen a cero). Esto puede dar lugar a modelos dispersos, pero puede requerir hardware o software especializado, como las herramientas de NVIDIA para modelos dispersos, para una aceleración óptima.
  • Poda de neuronas: Se eliminan de la red neuronas enteras (y sus conexiones) que no se consideran importantes.
  • Poda de filtros/canales (estructurada): Se eliminan filtros o canales enteros de las redes neuronales convolucionales (CNN). Este enfoque de poda estructurada a menudo conduce a aumentos de velocidad más directos en hardware estándar sin necesidad de bibliotecas especializadas. Herramientas como DeepSparse de Neural Magic aprovechan la dispersión para acelerar la CPU, a menudo combinada con la poda(tutorial de YOLOv5 con Neural Magic).

La poda puede producirse después de que el modelo esté completamente entrenado o integrarse en el proceso de entrenamiento. Después de la poda, los modelos suelen someterse a un ajuste fino (más entrenamiento en la arquitectura más pequeña) para recuperar el rendimiento perdido durante la eliminación de parámetros. Frameworks como PyTorch proporcionan utilidades para implementar varios métodos de poda, como se muestra en el tutorial de poda de PyTorch.

Aplicaciones reales

La poda de modelos es valiosa en muchos ámbitos de la IA:

  1. Optimización de la detección de objetos en dispositivos Edge: Los modelos como Ultralytics YOLO utilizados para la detección de objetos pueden podarse para ejecutarse de forma eficiente en hardware con recursos limitados como una Raspberry Pi, la TPU Edge de Google o NVIDIA Jetson. Esto permite aplicaciones como la vigilancia en el dispositivo, la monitorización del tráfico(blog sobre la optimización de la gestión del tráfico) o la navegación robótica(blog sobre la integración de la CV en la robótica).
  2. Despliegue local de grandes modelos lingüísticos (LLM): Las técnicas de poda pueden reducir significativamente el tamaño de grandes modelos como los basados en la arquitectura Transformer, lo que les permite ejecutarse directamente en dispositivos de usuario (por ejemplo, teléfonos inteligentes) para tareas como el procesamiento del lenguaje natural (PLN ) sin conectividad constante a la nube. Esto mejora la privacidad de los datos y reduce la latencia para aplicaciones como la traducción en el dispositivo o los asistentes inteligentes.

Poda frente a otras técnicas de optimización

La poda de modelos es una de las diversas técnicas utilizadas para la optimización de modelos. Es distinta de, pero a menudo complementaria de:

  • Cuantización de modelos: Reduce la precisión numérica de los pesos y activaciones del modelo (por ejemplo, de flotantes de 32 bits a enteros de 8 bits), lo que disminuye el tamaño del modelo y acelera el cálculo, especialmente en hardware con soporte especializado como TensorRT.
  • Destilación del conocimiento: Entrena un modelo "alumno" más pequeño para que imite el comportamiento de un modelo "maestro" más grande previamente entrenado. El objetivo es transferir los conocimientos del modelo grande a uno más compacto.

Estas técnicas pueden combinarse; por ejemplo, un modelo puede podarse primero y cuantificarse después para obtener la máxima eficacia. Los modelos optimizados suelen exportarse a formatos estándar como ONNX(opciones de exportación de Ultralytics) para una mayor compatibilidad de despliegue. Plataformas como Ultralytics HUB proporcionan entornos para la gestión de modelos, conjuntos de datos(como COCO), y la racionalización de la ruta hacia el despliegue optimizado.

Únase a la comunidad Ultralytics

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

Únete ahora
Enlace copiado en el portapapeles