Glosario

Poda

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.

Cómo funciona la poda

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".

Tipos de poda

Las técnicas de poda pueden clasificarse en función de lo que se elimina de la red:

  • Poda no estructurada (poda de pesos): Este método elimina pesos individuales de la red basándose en un criterio específico, como su magnitud. El resultado es un modelo disperso, en el que se eliminan muchas conexiones. Aunque esto puede reducir significativamente el número de parámetros, no siempre conduce a una inferencia más rápida en hardware estándar como CPU o GPU sin bibliotecas de software especializadas, como las herramientas de NVIDIA para modelos dispersos.
  • Poda estructurada: Este método elimina componentes estructurales completos de la red, como neuronas, canales o incluso capas enteras de una red neuronal convolucional (CNN). Como elimina bloques regulares de la red, reduce directamente el tamaño del modelo y los requisitos computacionales de una forma que el hardware estándar puede aprovechar fácilmente, lo que a menudo conduce a aumentos de velocidad más predecibles. Herramientas como DeepSparse, de Neural Magic, están diseñadas para acelerar la inferencia en CPUs para este tipo de modelos estructurados dispersos.

Los principales marcos de aprendizaje automático, como PyTorch y TensorFlow, ofrecen utilidades integradas y tutoriales para implementar la poda.

Aplicaciones reales

La poda es esencial para desplegar modelos de IA potentes en escenarios prácticos en los que los recursos computacionales son limitados.

  1. Optimización de la detección de objetos en dispositivos Edge: Modelos como Ultralytics YOLO se utilizan para la detección de objetos en tiempo real. Al podar un modelo como YOLOv8, puede desplegarse en dispositivos periféricos de bajo consumo como Raspberry Pi o NVIDIA Jetson. Esto permite aplicaciones como la vigilancia inteligente en dispositivos, la optimización de la gestión del tráfico y la integración de la visión por ordenador en la robótica.
  2. Ejecución local de grandes modelos lingüísticos (LLM): La poda puede reducir drásticamente la huella de memoria de los modelos lingüísticos de gran tamaño (LLM ) basados en arquitecturas como Transformer. Un LLM podado puede ejecutarse directamente en un smartphone o portátil para tareas de Procesamiento del Lenguaje Natural (PLN ) como el resumen de textos o los asistentes virtuales locales. Esto mejora la capacidad de respuesta y la privacidad de los datos al mantener los datos del usuario en el dispositivo, un principio clave para organizaciones como la Electronic Frontier Foundation (EFF).

Poda frente a otras técnicas de optimización

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:

  • Cuantización de modelos: Esta técnica 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). Esto reduce el tamaño del modelo y puede acelerar el cálculo, especialmente en hardware con soporte especializado. A diferencia de la poda, que elimina parámetros, la cuantización los comprime.
  • Destilación del conocimiento: En este método, se entrena un modelo "alumno" más pequeño para replicar la salida de un modelo "maestro" más grande y preentrenado. El objetivo es transferir los conocimientos aprendidos a una arquitectura más compacta, mientras que la poda modifica la arquitectura existente.

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.

Ú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