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 que reduce el tamaño y aumenta la eficiencia computacional de las redes neuronales. La idea principal es identificar y eliminar los parámetros (pesos, neuronas o canales) redundantes o poco importantes de un modelo entrenado. Este proceso reduce el tamaño del modelo y puede acelerar significativamente la inferencia, lo que lo hace ideal para su implementación en dispositivos edge con memoria y potencia de procesamiento limitadas. El concepto se basa en la observación de que muchos modelos grandes están sobreparametrizados, lo que significa que contienen componentes que contribuyen muy poco a la predicción final. Documentos seminales como Optimal Brain Damage establecieron desde el principio que no todos los parámetros se crean iguales.

Tipos de poda de modelos

Las técnicas de poda de modelos se clasifican normalmente según la granularidad de lo que se elimina de la red:

  • Poda de Pesos (No Estructurada): Este es el método más granular, donde los pesos del modelo individuales con valores por debajo de un cierto umbral se establecen en cero. Esto crea un modelo "disperso", que puede comprimirse mucho. Sin embargo, a menudo requiere hardware especializado o bibliotecas de software, como las herramientas de NVIDIA para modelos dispersos, para lograr aceleraciones significativas durante la inferencia.
  • Poda de Neuronas: En este enfoque, se eliminan neuronas enteras y todas sus conexiones entrantes y salientes si se consideran poco importantes. Esta es una forma más estructurada de poda que la eliminación de pesos individuales.
  • Poda de filtros/canales (estructurada): Particularmente relevante para las Redes Neuronales Convolucionales (CNNs), este método elimina filtros o canales completos. Debido a que preserva la estructura densa y regular de las capas de la red, este enfoque a menudo resulta en ganancias de rendimiento directas en hardware estándar sin necesidad de bibliotecas especializadas. Herramientas como DeepSparse de Neural Magic están diseñadas para acelerar estos modelos dispersos en las CPUs.

Después de la poda, los modelos suelen someterse a un ajuste fino, que implica volver a entrenar la red más pequeña durante algunas épocas para recuperar cualquier precisión perdida durante la eliminación de parámetros. La famosa Hipótesis del Billete de Lotería sugiere que dentro de una red grande, existe una subred más pequeña que puede lograr un rendimiento similar cuando se entrena desde cero. Marcos de trabajo como PyTorch ofrecen herramientas integradas para la implementación, como se demuestra en el Tutorial de Poda de PyTorch oficial.

Aplicaciones en el mundo real

La poda de modelos es fundamental para implementar modelos de IA eficientes en diversos escenarios:

  1. Optimización de la detección de objetos en dispositivos Edge: Los modelos como Ultralytics YOLO se pueden podar para que se ejecuten de manera eficiente para las tareas de detección de objetos en hardware con recursos limitados, como una Raspberry Pi o NVIDIA Jetson. Esto permite aplicaciones en tiempo real como la gestión del tráfico, la vigilancia inteligente y la integración de la visión artificial en la robótica.
  2. Implementación local de modelos de lenguaje grandes (LLM): La poda se utiliza para reducir los modelos masivos basados en la arquitectura Transformer, lo que permite ejecutarlos en dispositivos como teléfonos inteligentes para tareas de procesamiento del lenguaje natural (PNL). Este enfoque, a veces combinado con otras técnicas como la cuantización, permite asistentes de IA potentes en el dispositivo y aplicaciones de traducción, al tiempo que mejora la privacidad de los datos y reduce la latencia. La investigación y las herramientas de organizaciones como Hugging Face exploran la poda de LLM.

Poda vs. Otras técnicas de optimización

La poda de modelos es una de las varias técnicas complementarias de optimización de modelos:

  • Cuantización de Modelos: Esta técnica reduce la precisión numérica de los pesos y activaciones del modelo (por ejemplo, de números de punto flotante de 32 bits a enteros de 8 bits). A diferencia de la poda, que elimina parámetros, la cuantización hace que los parámetros existentes sean más pequeños en tamaño. A menudo se aplica después de la poda para una optimización máxima, especialmente cuando se apunta a hardware con soporte especializado como TensorRT.
  • Destilación de Conocimiento: Este método implica entrenar un modelo "estudiante" más pequeño para imitar la salida de un modelo "profesor" más grande, pre-entrenado. El objetivo es transferir el conocimiento aprendido del profesor a una arquitectura más compacta. Esto difiere de la poda, que reduce un modelo ya entrenado en lugar de entrenar uno nuevo.

En última instancia, estas técnicas se pueden utilizar en combinación para crear modelos altamente eficientes. Una vez optimizado, un modelo se puede exportar a formatos estándar como ONNX utilizando las opciones de exportación de Ultralytics para una amplia implementación en diferentes motores de inferencia. Plataformas como Ultralytics HUB proporcionan las herramientas para gestionar todo el ciclo de vida de los modelos de visión artificial, desde el entrenamiento hasta la implementación optimizada.

Únete a la comunidad de Ultralytics

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

Únete ahora