Optimice los modelos de IA con la poda: reduzca la complejidad, aumente la eficiencia y despliegue más rápido en dispositivos periféricos sin sacrificar el rendimiento.
La poda es una técnica de optimización de modelos utilizada para reducir el tamaño y la complejidad computacional de una red neuronal (NN) entrenada. El proceso consiste en identificar y eliminar del modelo los parámetros (pesos) o estructuras (neuronas, canales o capas) redundantes o menos importantes. El objetivo es crear un modelo más pequeño, rápido y eficiente energéticamente que mantenga un nivel de precisión comparable al original. Esto es especialmente crucial para desplegar modelos complejos de IA en entornos con recursos limitados, como los dispositivos de borde.
El proceso de poda suele comenzar después de que un modelo de aprendizaje profundo se haya entrenado por completo. Se basa en el principio de que muchos modelos grandes están sobreparametrizados, lo que significa que contienen muchos pesos y neuronas que contribuyen muy poco a la predicción final. Un método común para identificar estos componentes poco importantes es analizar su magnitud; los parámetros con valores cercanos a cero se consideran menos significativos. Una vez identificados, estos parámetros se eliminan o se ponen a cero. Tras el proceso de poda, la red, ahora más pequeña, suele someterse a un ajuste fino, que consiste en volver a entrenar el modelo durante unas cuantas épocas más. Este paso ayuda a que los parámetros restantes se ajusten a los cambios arquitectónicos y recuperen el rendimiento que hayan podido perder durante la poda. Este proceso iterativo de poda y ajuste puede repetirse hasta alcanzar el equilibrio deseado entre tamaño del modelo y rendimiento, como se describe en trabajos de investigación fundamentales como"Deep Compression".
Las técnicas de poda pueden clasificarse en función de lo que se elimina de la red:
Los principales marcos de aprendizaje automático, como PyTorch y TensorFlow, ofrecen utilidades integradas y tutoriales para implementar la poda.
La poda es esencial para desplegar modelos de IA potentes en escenarios prácticos en los que los recursos computacionales son limitados.
La poda es una de las diversas técnicas de optimización de modelos y suele utilizarse junto a otras. Es importante distinguirla de otros conceptos relacionados:
Estas técnicas no se excluyen mutuamente. Un flujo de trabajo habitual consiste en podar primero un modelo para eliminar los parámetros redundantes y, a continuación, aplicar la cuantificación al modelo podado para obtener la máxima eficacia. A continuación, los modelos optimizados pueden exportarse a formatos estándar como ONNX utilizando la función de exportación de Ultralytics para su despliegue en varios motores de inferencia. Plataformas como Ultralytics HUB pueden ayudar a gestionar todo el ciclo de vida, desde la formación hasta el despliegue del modelo optimizado.