Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Model Pruning

La poda de modelos elimina pesos, filtros o capas de poca importancia de una red neuronal para reducir su tamaño y cómputo. Descubre las diferencias entre la poda no estructurada y la estructurada, con código.

La poda de modelos elimina parámetros que apenas contribuyen a la salida de una red neuronal entrenada, desde pesos individuales hasta filtros, cabezas de atención o capas completas, para que el modelo sea más pequeño y barato de ejecutar. La mayoría de las redes tienen demasiados parámetros, por lo que se puede eliminar una gran parte de sus pesos sin apenas perder precisión, sobre todo si después se ajusta el modelo. Un método de poda y reentrenamiento de 2015 redujo AlexNet de 61 millones a 6,7 millones de parámetros y VGG-16 de 138 millones a 10,3 millones sin perder precisión en ImageNet. La poda es un paso habitual para preparar modelos para teléfonos, cámaras y otros equipos de IA en el borde, y ahora también se aplica a los modelos de lenguaje grandes (LLM).

Cómo funciona la poda de modelos#

La poda puntúa cada peso o estructura candidato según su importancia, elimina la fracción con menor puntuación y ajusta los pesos restantes del modelo para recuperar precisión. El criterio más sencillo y aún más habitual es la magnitud: los pesos cercanos a cero o los filtros con una norma L1 o L2 pequeña son los que menos alteran la salida al eliminarlos. Otros criterios usan gradientes o activaciones para estimar cuánto aumentaría la pérdida al retirar cada elemento. Eliminar de golpe una fracción grande suele perjudicar la precisión, por lo que la poda normalmente se realiza por rondas, cada una seguida de un ajuste fino, hasta alcanzar el tamaño objetivo del modelo o hasta que la precisión caiga por debajo del umbral aceptable:

La poda también cambió la forma en que los investigadores conciben el tamaño de las redes. La hipótesis del billete de lotería propone que una red densa contiene subredes pequeñas que, entrenadas de forma aislada desde sus pesos iniciales originales, alcanzan la precisión de la red completa; sus autores encontraron sistemáticamente subredes de menos del 10-20 % del tamaño original en MNIST y CIFAR-10.

Poda no estructurada frente a estructurada#

La poda no estructurada pone a cero pesos individuales en cualquier parte de un tensor. Alcanza una gran dispersión con poca pérdida de precisión, pero los tensores mantienen su forma, por lo que los núcleos densos estándar realizan el mismo trabajo y las aceleraciones requieren núcleos dispersos o compatibilidad de hardware. Las GPU NVIDIA desde la generación Ampere ejecutan uno de estos patrones, la dispersión 2:4 con dos ceros en cada grupo de cuatro pesos consecutivos, a una velocidad de cálculo denso de hasta el doble. La poda estructurada elimina filtros, canales, cabezas o capas completos y deja un modelo denso más pequeño que se ejecuta más rápido en cualquier procesador, aunque con mayor coste en precisión si se elimina el mismo número de pesos. Al eliminar un filtro también se elimina el canal de entrada correspondiente de la capa siguiente; bibliotecas como Torch-Pruning gestionan automáticamente estas dependencias. Las utilidades de poda de PyTorch muestran la diferencia entre ambos métodos:

import torch
from torch.nn.utils import prune

# Two identical convolution layers, one for each pruning style
torch.manual_seed(0)
a = torch.nn.Conv2d(16, 32, kernel_size=3)
b = torch.nn.Conv2d(16, 32, kernel_size=3)

# Unstructured: zero the 50% of individual weights with the smallest magnitude
prune.l1_unstructured(a, name="weight", amount=0.5)

# Structured: zero the 50% of output filters with the smallest L2 norm
prune.ln_structured(b, name="weight", amount=0.5, n=2, dim=0)

for name, layer in [("unstructured", a), ("structured", b)]:
    zeros = (layer.weight == 0).float().mean().item()
    empty = (layer.weight.flatten(1) == 0).all(dim=1).sum().item()
    print(f"{name}: {zeros:.0%} of weights zero, {empty} of 32 filters empty")

Ambas capas acaban con el 50 % de sus pesos a cero. Solo la capa estructurada tiene filtros vacíos —16 de 32— y, al eliminarlos, queda una capa densa con la mitad de filtros, lo que reduce a la mitad sus cálculos en hardware corriente. El hardware diseñado para la dispersión también se beneficia de la poda no estructurada: la integración de CVflow de Ambarella para Ultralytics YOLO, mantenida por Ambarella en su propia bifurcación del paquete, poda los pesos progresivamente durante el entrenamiento de YOLO y mantiene esa dispersión durante la exportación a ONNX para compilar el modelo para sus chips de IA en el borde.

  • Cuantización de modelos: Reduce la precisión de cada peso, por ejemplo, de números de coma flotante de 32 bits a enteros de 8 bits, y los conserva todos. La poda y la cuantización suelen combinarse: la poda reduce el número de operaciones y la cuantización abarata cada una.
  • Destilación de conocimiento: Entrena un modelo estudiante más pequeño para imitar a un modelo profesor más grande y, a menudo, se aplica después de la poda estructurada para recuperar la precisión que se pierde al eliminar filtros o capas completos.
  • Dropout: Pone temporalmente a cero activaciones aleatorias durante el entrenamiento como forma de regularización; en inferencia se usa la red completa.

Poda de modelos de lenguaje grandes#

Reentrenar un LLM después de cada ronda de poda cuesta demasiado, así que los métodos de una sola pasada lo podan de una vez usando un pequeño conjunto de calibración. SparseGPT redujo los modelos OPT de 175.000 millones de parámetros y BLOOM de 176.000 millones a una dispersión no estructurada del 60 % en menos de 4,5 horas, con un aumento insignificante de la perplejidad; también admite el patrón 2:4, que las GPU aceleran. La poda estructurada combinada con destilación de conocimiento produce modelos densos más pequeños: Minitron de NVIDIA obtuvo modelos 8B y 4B a partir de un modelo preentrenado 15B mediante la poda de canales de incrustación, neuronas MLP y cabezas de atención; después los reentrenó con hasta 40 veces menos tokens que los necesarios para entrenarlos desde cero.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático