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 potente técnica de optimización que se utiliza para reducir el tamaño y la complejidad computacional de los modelos de aprendizaje automático . Mediante la identificación y eliminación sistemática de parámetros innecesarios, como pesos o neuronas que contribuyen poco al resultado final, los desarrolladores pueden crear redes más ágiles y eficientes. Este proceso es análogo a podar las ramas muertas o demasiado crecidas de un árbol para favorecer un crecimiento más saludable. En el contexto de la inteligencia artificial , la poda permite que las arquitecturas grandes y que consumen muchos recursos funcionen más rápido y consuman menos memoria, lo cual es fundamental para implementar sistemas de alto rendimiento como Ultralytics YOLO26 en dispositivos con capacidades de hardware limitadas.
El proceso de poda suele constar de tres etapas principales: entrenamiento, poda y ajuste. En primer lugar, se entrena un modelo grande hasta la convergencia para capturar características complejas. Durante la fase de poda, un algoritmo evalúa la importancia de parámetros específicos, normalmente weights and biases—basándose en criterios como la magnitud o la sensibilidad. Los parámetros que se consideran insignificantes se establecen en cero o se eliminan por completo.
El simple hecho de recortar partes de una red puede degradar su precisión. Para contrarrestar esto, el modelo se somete a una ronda posterior de reentrenamiento conocida como ajuste fino. Este paso permite que los parámetros restantes se ajusten y compensen las conexiones que faltan, restaurando a menudo el rendimiento del modelo a niveles cercanos a los originales. La eficacia de este enfoque está respaldada por la hipótesis del billete de lotería, que sugiere que las redes densas contienen subredes más pequeñas capaces de alcanzar una precisión comparable cuando se entrenan de forma aislada.
Las estrategias de poda suelen clasificarse en función de la estructura de los componentes que se eliminan:
La poda desempeña un papel fundamental a la hora de hacer accesible la visión artificial avanzada en escenarios prácticos en los que los recursos son limitados:
Es importante distinguir la poda de otras estrategias de optimización de modelos, aunque a menudo se utilizan conjuntamente:
Mientras que marcos como PyTorch proporcionan utilidades para aplicar la poda, es útil comprender la mecánica subyacente. El siguiente ejemplo muestra cómo aplicar la poda no estructurada a una capa convolucional, una operación común antes de exportar un modelo a un formato optimizado como ONNX.
import torch
import torch.nn.utils.prune as prune
# Initialize a standard convolutional layer
layer = torch.nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3)
# Apply L1 unstructured pruning to remove 30% of the connections
# This sets the smallest 30% of weights (by absolute value) to zero
prune.l1_unstructured(layer, name="weight", amount=0.3)
# Verify sparsity: calculate the percentage of zero parameters
sparsity = float(torch.sum(layer.weight == 0)) / layer.weight.nelement()
print(f"Layer sparsity: {sparsity:.2%}")
Los futuros avances en arquitectura eficiente, como el próximo YOLO26, tienen como objetivo integrar estos principios de optimización de forma nativa, creando modelos que sean más pequeños, rápidos y precisos por diseño.