Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Poda

Optimice los modelos de IA con la poda: reduzca la complejidad, aumente la eficiencia e implemente más rápido en dispositivos edge sin sacrificar el rendimiento.

La poda es una técnica de optimización de modelos que se utiliza para reducir el tamaño y la complejidad computacional de una red neuronal (NN) entrenada. El proceso consiste en identificar y eliminar los parámetros (pesos) o estructuras (neuronas, canales o capas) redundantes o menos importantes del modelo. El objetivo es crear un modelo más pequeño, más rápido y más eficiente energéticamente que mantenga un nivel de precisión comparable al del original. Esto es particularmente crucial para desplegar modelos de IA complejos en entornos con recursos limitados, como los dispositivos edge.

Cómo funciona la poda

El proceso de poda normalmente comienza después de que un modelo de aprendizaje profundo ha sido completamente entrenado. Opera bajo 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 sin importancia es analizando su magnitud; los parámetros con valores cercanos a cero se consideran menos significativos. Una vez identificados, estos parámetros se eliminan o se establecen en cero. Después del proceso de poda, la red, ahora más pequeña, generalmente se somete a un ajuste fino, que implica volver a entrenar el modelo durante algunas épocas más. Este paso ayuda a los parámetros restantes a adaptarse a los cambios arquitectónicos y a recuperar cualquier rendimiento que pueda haberse perdido durante la poda. Este proceso iterativo de poda y ajuste fino se puede repetir para lograr un equilibrio deseado entre el tamaño del modelo y el rendimiento, como se describe en documentos de investigación fundamentales como "Deep Compression".

Tipos de Poda

Las técnicas de poda pueden clasificarse a grandes rasgos 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. Esto resulta en un modelo disperso, donde muchas conexiones se ponen a cero. Si bien 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 CPUs o GPUs sin bibliotecas de software especializadas, como las herramientas de NVIDIA para modelos dispersos.
  • Poda Estructurada: Este enfoque elimina componentes estructurales completos de la red, como neuronas, canales o incluso capas enteras dentro de una Red Neuronal Convolucional (CNN). Debido a que elimina bloques regulares de la red, reduce directamente el tamaño del modelo y los requisitos computacionales de una manera que el hardware estándar puede explotar fácilmente, lo que a menudo conduce a aceleraciones más predecibles. Herramientas como DeepSparse de Neural Magic están diseñadas para acelerar la inferencia en CPUs para tales modelos dispersos estructurados.

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

Aplicaciones en el mundo real

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

  1. Optimización de la detección de objetos en dispositivos Edge: Los modelos como Ultralytics YOLO se utilizan para la detección de objetos en tiempo real. Al podar un modelo como YOLOv8, se puede implementar en dispositivos Edge de bajo consumo como una Raspberry Pi o NVIDIA Jetson. Esto permite aplicaciones como la vigilancia inteligente en el dispositivo, la optimización de la gestión del tráfico y la integración de la visión artificial en la robótica.
  2. Ejecución local de modelos de lenguaje grandes (LLM): La poda puede reducir drásticamente la huella de memoria de los modelos de lenguaje grandes (LLM) basados en arquitecturas como el Transformer. Un LLM podado puede ejecutarse directamente en un smartphone o portátil para tareas de procesamiento del lenguaje natural (PNL) como el resumen de texto o los asistentes virtuales locales. Esto mejora la capacidad de respuesta y aumenta 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 vs. Otras técnicas de optimización

La poda es una de las varias técnicas para la optimización de modelos y se utiliza a menudo junto con otras. Es importante distinguirla de 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 floats de 32 bits a enteros de 8 bits). Esto disminuye el tamaño del modelo y puede acelerar el cómputo, 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, un modelo "estudiante" más pequeño se entrena para replicar la salida de un modelo "profesor" más grande, pre-entrenado. El objetivo es transferir el conocimiento aprendido a una arquitectura más compacta, mientras que la poda modifica la arquitectura existente.

Estas técnicas no son mutuamente excluyentes. Un flujo de trabajo común es primero podar un modelo para eliminar parámetros redundantes, luego aplicar la cuantización al modelo podado para obtener la máxima eficiencia. Los modelos optimizados se pueden exportar a formatos estándar como ONNX utilizando la función de exportación de Ultralytics para una amplia implementación en varios motores de inferencia. Plataformas como Ultralytics HUB pueden ayudar a gestionar todo el ciclo de vida, desde el entrenamiento hasta la implementación de modelos optimizados.

Únete a la comunidad de Ultralytics

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

Únete ahora
Enlace copiado al portapapeles