¿Qué es la optimización de modelos? Una guía rápida
Descubre cómo las técnicas de optimización de modelos, como el ajuste de hiperparámetros, la poda de modelos y la cuantización de modelos, pueden ayudar a que los modelos de visión artificial funcionen de forma más eficiente.

La optimización de modelos es un proceso cuyo objetivo es mejorar la eficiencia y el rendimiento de los modelos de aprendizaje automático. Al perfeccionar la estructura y el funcionamiento de un modelo, la optimización permite que los modelos ofrezcan mejores resultados con menos recursos computacionales y reduzcan el tiempo de entrenamiento y evaluación.
Este proceso es especialmente importante en campos como la visión artificial, donde los modelos suelen necesitar muchos recursos para analizar imágenes complejas. En entornos con recursos limitados, como los dispositivos móviles o los sistemas edge, los modelos optimizados pueden funcionar bien con recursos limitados y mantener una buena precisión.
Para lograr la optimización de modelos se utilizan habitualmente varias técnicas, como el ajuste de hiperparámetros, la poda de modelos, la cuantización de modelos y la precisión mixta. En este artículo, exploraremos estas técnicas y sus beneficios para las aplicaciones de visión artificial. ¡Empecemos!
Comprender la optimización de modelos#
Los modelos de visión artificial suelen tener capas profundas y estructuras complejas que son excelentes para reconocer patrones intrincados en las imágenes, pero también pueden exigir bastante potencia de procesamiento. Cuando estos modelos se implementan en dispositivos con hardware limitado, como los teléfonos móviles o los dispositivos edge, pueden enfrentarse a ciertos desafíos o limitaciones.
La limitada potencia de procesamiento, memoria y energía de estos dispositivos puede provocar descensos apreciables del rendimiento, ya que los modelos tienen dificultades para seguir el ritmo. Las técnicas de optimización de modelos son fundamentales para abordar estos problemas. Ayudan a simplificar el modelo, reducir sus necesidades computacionales y garantizar que siga funcionando eficazmente incluso con recursos limitados. La optimización de modelos puede realizarse simplificando la arquitectura del modelo, reduciendo la precisión de los cálculos o eliminando componentes innecesarios para que el modelo sea más ligero y rápido.

Fig. 1. Razones para optimizar tus modelos. Imagen del autor.
Estas son algunas de las técnicas de optimización de modelos más habituales, que exploraremos con más detalle en las secciones siguientes:
- Ajuste de hiperparámetros: consiste en ajustar sistemáticamente hiperparámetros, como la tasa de aprendizaje y el tamaño del lote, para mejorar el rendimiento del modelo.
- Poda de modelos: esta técnica elimina pesos y conexiones innecesarios de la red neuronal, reduciendo su complejidad y su coste computacional.
- Cuantización de modelos: la cuantización consiste en reducir la precisión de los pesos y las activaciones del modelo, normalmente de 32 bits a 16 u 8 bits, lo que disminuye considerablemente el uso de memoria y los requisitos computacionales.
- Ajustes de precisión: también conocido como entrenamiento con precisión mixta, consiste en utilizar distintos formatos de precisión para diferentes partes del modelo y optimizar el uso de recursos sin comprometer la precisión.
Explicación: hiperparámetros en los modelos de aprendizaje automático#
Puedes ayudar a un modelo a aprender y rendir mejor ajustando sus hiperparámetros, es decir, los valores que determinan cómo aprende el modelo a partir de los datos. El ajuste de hiperparámetros es una técnica para optimizar estos valores y mejorar la eficiencia y la precisión del modelo. A diferencia de los parámetros que el modelo aprende durante el entrenamiento, los hiperparámetros son valores predefinidos que guían el proceso de entrenamiento.
Veamos algunos ejemplos de hiperparámetros que se pueden ajustar:
- Tasa de aprendizaje: este parámetro controla el tamaño del paso que da el modelo para ajustar sus pesos internos. Una tasa de aprendizaje más alta puede acelerar el aprendizaje, pero conlleva el riesgo de no encontrar la solución óptima, mientras que una tasa más baja puede ser más precisa, aunque más lenta.
- Tamaño del lote: define cuántas muestras de datos se procesan en cada paso de entrenamiento. Los tamaños de lote más grandes ofrecen un aprendizaje más estable, pero necesitan más memoria. Los lotes más pequeños entrenan más rápido, aunque pueden ser menos estables.
- Épocas: con este parámetro puedes determinar cuántas veces ve el modelo el conjunto de datos completo. Un mayor número de épocas puede mejorar la precisión, pero aumenta el riesgo de sobreajuste.
- Tamaño del kernel: define el tamaño del filtro en las redes neuronales convolucionales (CNNs). Los kernels más grandes capturan patrones más amplios, pero necesitan más procesamiento; los kernels más pequeños se centran en detalles más precisos.
Cómo funciona el ajuste de hiperparámetros#
El ajuste de hiperparámetros suele comenzar definiendo un intervalo de valores posibles para cada hiperparámetro. A continuación, un algoritmo de búsqueda explora distintas combinaciones dentro de esos intervalos para identificar los valores que producen el mejor rendimiento.
Entre los métodos de ajuste habituales se incluyen la búsqueda en cuadrícula, la búsqueda aleatoria y la optimización bayesiana. La búsqueda en cuadrícula prueba todas las combinaciones posibles de valores dentro de los intervalos especificados. La búsqueda aleatoria selecciona combinaciones al azar y suele encontrar valores eficaces más rápidamente. La optimización bayesiana utiliza un modelo probabilístico para predecir valores de hiperparámetros prometedores basándose en los resultados anteriores. Este enfoque suele reducir el número de pruebas necesarias.
En última instancia, se evalúa el rendimiento del modelo para cada combinación de hiperparámetros. El proceso se repite hasta alcanzar los resultados deseados.
Hiperparámetros frente a parámetros del modelo#
Mientras trabajas en el ajuste de hiperparámetros, es posible que te preguntes cuál es la diferencia entre los hiperparámetros y los parámetros del modelo.
Los hiperparámetros son valores establecidos antes del entrenamiento que controlan cómo aprende el modelo, como la tasa de aprendizaje o el tamaño del lote. Estos valores permanecen fijos durante el entrenamiento e influyen directamente en el proceso de aprendizaje. En cambio, los parámetros del modelo los aprende el propio modelo durante el entrenamiento. Incluyen los pesos y los sesgos, que se ajustan a medida que el modelo entrena y, en última instancia, guían sus predicciones. En esencia, los hiperparámetros dan forma al proceso de aprendizaje, mientras que los parámetros del modelo son el resultado de dicho proceso.

Fig. 2. Comparación de parámetros e hiperparámetros.
Por qué es importante la poda de modelos en el aprendizaje profundo#
La poda de modelos es una técnica para reducir el tamaño que elimina pesos y parámetros innecesarios de un modelo, haciéndolo más eficiente. En la visión artificial, especialmente con redes neuronales profundas, un gran número de parámetros, como los pesos y las activaciones (salidas intermedias que ayudan a calcular la salida final), puede aumentar tanto la complejidad como las exigencias computacionales. La poda ayuda a simplificar el modelo al identificar y eliminar los parámetros que contribuyen mínimamente al rendimiento, lo que da como resultado un modelo más ligero y eficiente.

Fig. 3. Antes y después de la poda del modelo.
Una vez entrenado el modelo, técnicas como la poda basada en magnitud o el análisis de sensibilidad pueden evaluar la importancia de cada parámetro. A continuación, los parámetros de poca importancia se podan mediante una de las tres técnicas principales: poda de pesos, poda de neuronas o poda estructurada.
La poda de pesos elimina conexiones individuales con un impacto mínimo en la salida. La poda de neuronas elimina neuronas completas cuyas salidas contribuyen poco al funcionamiento del modelo. La poda estructurada elimina secciones más grandes, como filtros convolucionales o neuronas de capas totalmente conectadas, para optimizar la eficiencia del modelo. Una vez completada la poda, el modelo se vuelve a entrenar para ajustar los parámetros restantes y garantizar que conserve una alta precisión en un formato reducido.
Reducir la latencia de los modelos de IA con cuantización#
La cuantización de modelos reduce el número de bits utilizados para representar los pesos y las activaciones de un modelo. Normalmente convierte valores de coma flotante de 32 bits y alta precisión a valores de menor precisión, como enteros de 16 u 8 bits. Al reducir la precisión en bits, la cuantización disminuye considerablemente el tamaño del modelo, el uso de memoria y el coste computacional.
En la visión artificial, los valores de coma flotante de 32 bits son estándar, pero convertirlos a 16 u 8 bits puede mejorar la eficiencia. Hay dos tipos principales de cuantización: la cuantización de pesos y la cuantización de activaciones. La cuantización de pesos reduce la precisión de los pesos del modelo, equilibrando la reducción de tamaño con la precisión. La cuantización de activaciones reduce la precisión de las activaciones, disminuyendo aún más las necesidades de memoria y computación.

Fig. 4. Ejemplo de cuantización de coma flotante de 32 bits a entero de 8 bits.
Cómo acelera la precisión mixta las inferencias de IA#
La precisión mixta es una técnica que utiliza distintas precisiones numéricas para varias partes de una red neuronal. Al combinar valores de mayor precisión, como los de coma flotante de 32 bits, con valores de menor precisión, como los de coma flotante de 16 u 8 bits, la precisión mixta permite que los modelos de visión artificial aceleren el entrenamiento y reduzcan el uso de memoria sin sacrificar precisión.
Durante el entrenamiento, la precisión mixta se consigue utilizando una precisión menor en capas específicas y manteniendo una precisión mayor donde sea necesario en toda la red. Esto se realiza mediante la conversión de tipos y el escalado de pérdidas. La conversión de tipos transforma los tipos de datos entre distintas precisiones según lo requiera el modelo. El escalado de pérdidas ajusta la precisión reducida para evitar el subdesbordamiento numérico y garantizar un entrenamiento estable. La precisión mixta es especialmente útil para modelos grandes y tamaños de lote grandes.

Fig. 5. El entrenamiento con precisión mixta utiliza tipos de coma flotante de 16 bits (FP16) y 32 bits (FP32).
Equilibrar la precisión y la eficiencia del modelo#
Ahora que hemos repasado varias técnicas de optimización de modelos, veamos cómo decidir cuál utilizar según tus necesidades específicas. La elección depende de factores como el hardware disponible, las limitaciones computacionales y de memoria del entorno de implementación, y el nivel de precisión requerido.
Por ejemplo, los modelos más pequeños y rápidos se adaptan mejor a dispositivos móviles con recursos limitados, mientras que los modelos más grandes y precisos pueden utilizarse en sistemas de alto rendimiento. Así es como cada técnica se ajusta a distintos objetivos:
- Poda: es ideal para reducir el tamaño del modelo sin afectar significativamente a la precisión, por lo que resulta perfecta para dispositivos con recursos limitados, como teléfonos móviles o dispositivos del Internet de las cosas (IoT).
- Cuantización: es una excelente opción para reducir el tamaño del modelo y acelerar la inferencia, especialmente en dispositivos móviles y sistemas embebidos con memoria y potencia de procesamiento limitadas. Funciona bien en aplicaciones en las que se aceptan ligeras reducciones de precisión.
- Precisión mixta: diseñada para modelos a gran escala, esta técnica reduce el uso de memoria y acelera el entrenamiento en hardware como las GPU y las TPUs que admiten operaciones de precisión mixta. Se utiliza a menudo en tareas de alto rendimiento en las que la eficiencia es importante.
- Ajuste de hiperparámetros: aunque requiere muchos recursos computacionales, es esencial para aplicaciones que necesitan una gran precisión, como la imagen médica o la conducción autónoma.
Conclusiones clave#
La optimización de modelos es una parte fundamental del aprendizaje automático, especialmente para implementar IA en aplicaciones del mundo real. Técnicas como el ajuste de hiperparámetros, la poda de modelos, la cuantización y la precisión mixta ayudan a mejorar el rendimiento, la eficiencia y el uso de recursos de los modelos de visión artificial. Estas optimizaciones hacen que los modelos sean más rápidos y consuman menos recursos, lo que resulta ideal para dispositivos con memoria y potencia de procesamiento limitadas. Los modelos optimizados también son más fáciles de escalar e implementar en distintas plataformas, lo que permite crear soluciones de IA eficaces y adaptables a una amplia variedad de usos.
Visita el repositorio de GitHub de Ultralytics y únete a nuestra comunidad para obtener más información sobre las aplicaciones de IA en la fabricación y la agricultura.









