¿Qué es la optimización de modelos? Guía rápida

Abirami Vina

5 minutos de lectura

15 de noviembre de 2024

Aprenda 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 por ordenador funcionen de forma más eficiente.

La optimización de modelos es un proceso cuyo objetivo es mejorar la eficacia y el rendimiento de los modelos de aprendizaje automático. Al refinar la estructura y la función de un modelo, la optimización hace posible que los modelos ofrezcan mejores resultados con un mínimo de recursos computacionales y un menor tiempo de formación y evaluación.

Este proceso es especialmente importante en campos como la visión por ordenador, donde los modelos suelen requerir recursos considerables para analizar imágenes complejas. En entornos con recursos limitados, como los dispositivos móviles o los sistemas de borde, los modelos optimizados pueden funcionar bien con recursos limitados sin dejar de ser precisos.

Para lograr la optimización de los modelos se suelen utilizar 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 las ventajas que aportan a las aplicaciones de visión por ordenador. Empecemos.

Comprender la optimización de modelos

Los modelos de visión por ordenador suelen tener capas profundas y estructuras complejas que son estupendas para reconocer patrones intrincados en imágenes, pero también pueden ser bastante exigentes en cuanto a potencia de procesamiento. Cuando estos modelos se despliegan en dispositivos con hardware limitado, como teléfonos móviles o dispositivos edge, pueden enfrentarse a ciertos retos o limitaciones. 

La capacidad de procesamiento, la memoria y la energía limitadas de estos dispositivos pueden provocar notables caídas de rendimiento, ya que los modelos luchan por mantener el ritmo. Las técnicas de optimización de modelos son fundamentales para resolver estos problemas. Ayudan a racionalizar el modelo, reducir sus necesidades computacionales y garantizar que pueda seguir funcionando con eficacia, incluso con recursos limitados. La optimización de modelos puede hacerse 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.

__wf_reserved_inherit
Fig. 1. Razones para optimizar sus modelos. Imagen del autor.

He aquí algunas de las técnicas más comunes de optimización de modelos, que exploraremos con más detalle en las secciones siguientes:

  • Sintonización de hiperparámetros: Consiste en ajustar sistemáticamente los 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 los pesos y conexiones innecesarios de la red neuronal, reduciendo su complejidad y coste computacional.
  • Cuantización del modelo: La cuantificación consiste en reducir la precisión de los pesos y las activaciones del modelo, normalmente de 32 a 16 u 8 bits, lo que reduce significativamente la huella de memoria y los requisitos computacionales.
  • Ajustes de precisión: También conocido como entrenamiento de precisión mixta, consiste en utilizar diferentes formatos de precisión para distintas partes del modelo y optimizar el uso de recursos sin comprometer la precisión.

Explicado: Hiperparámetros en modelos de aprendizaje automático

Puede ayudar a que un modelo aprenda y funcione mejor ajustando sus hiperparámetros, es decir, los parámetros que determinan cómo aprende el modelo a partir de los datos. El ajuste de hiperparámetros es una técnica para optimizar estos parámetros y mejorar la eficacia y precisión del modelo. A diferencia de los parámetros que el modelo aprende durante el entrenamiento, los hiperparámetros son valores preestablecidos que guían el proceso de entrenamiento.

Veamos algunos ejemplos de hiperparámetros que pueden ajustarse:

  • Tasa de aprendizaje: Este parámetro controla el tamaño del paso que el modelo toma para ajustar sus pesos internos. Una tasa de aprendizaje más alta puede acelerar el aprendizaje pero corre el riesgo de no llegar a la solución óptima, mientras que una tasa más baja puede ser más precisa pero más lenta.
  • Tamaño del lote: Define cuántas muestras de datos se procesan en cada paso de entrenamiento. Los lotes 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 pero pueden ser menos estables.
  • Épocas: Puede determinar cuántas veces el modelo ve el conjunto de datos completo utilizando este parámetro. Más épocas pueden mejorar la precisión, pero se corre el riesgo de sobreajuste.
  • Tamaño del núcleo: Define el tamaño del filtro en las redes neuronales convolucionales (CNN). Los núcleos más grandes capturan patrones más amplios pero necesitan más procesamiento; los núcleos más pequeños se centran en detalles más finos.

Cómo funciona el ajuste de hiperparámetros

El ajuste de hiperparámetros suele comenzar con la definición de un rango de valores posibles para cada hiperparámetro. A continuación, un algoritmo de búsqueda explora diferentes combinaciones dentro de estos rangos para identificar los ajustes que producen el mejor rendimiento

Los métodos de ajuste más habituales son 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 rangos especificados. La búsqueda aleatoria selecciona combinaciones al azar, lo que a menudo permite encontrar ajustes eficaces con mayor rapidez. La optimización bayesiana utiliza un modelo probabilístico para predecir valores de hiperparámetros prometedores basándose en resultados anteriores. Este enfoque suele reducir el número de pruebas necesarias. 

Por último, para cada combinación de hiperparámetros, se evalúa el rendimiento del modelo. El proceso se repite hasta obtener los resultados deseados.

Hiperparámetros frente a parámetros del modelo

Mientras trabaja en el ajuste de hiperparámetros, es posible que se pregunte cuál es la diferencia entre hiperparámetros y 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 ajustes se fijan 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 pesos y sesgos, que se ajustan a medida que el modelo se 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 los resultados de dicho proceso.

__wf_reserved_inherit
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 de reducción de tamaño que elimina pesos y parámetros innecesarios de un modelo, haciéndolo más eficiente. En visión por ordenador, especialmente con redes neuronales profundas, un gran número de parámetros, como pesos y activaciones (resultados intermedios que ayudan a calcular el resultado final), puede aumentar tanto la complejidad como la demanda computacional. La poda ayuda a racionalizar el modelo identificando y eliminando los parámetros que contribuyen mínimamente al rendimiento, lo que da como resultado un modelo más ligero y eficiente.

__wf_reserved_inherit
Fig3. Antes y después de la poda del modelo.

Una vez entrenado el modelo, técnicas como la poda basada en la magnitud o el análisis de sensibilidad pueden evaluar la importancia de cada parámetro. A continuación, se podan los parámetros de menor importancia, utilizando 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 enteras cuyas salidas contribuyen poco a la función del modelo. La poda estructurada elimina secciones más grandes, como filtros convolucionales o neuronas en capas totalmente conectadas, optimizando la eficiencia del modelo. Una vez completada la poda, el modelo se vuelve a entrenar para ajustar los parámetros restantes, lo que garantiza que conserve una alta precisión de forma reducida.

Reducción de la latencia en los modelos de IA mediante la cuantización

La cuantización de modelos reduce el número de bits utilizados para representar los pesos y las activaciones de un modelo. Suele convertir valores de coma flotante de 32 bits de alta precisión en valores de menor precisión, como enteros de 16 u 8 bits. Al reducir la precisión de los bits, la cuantización disminuye significativamente el tamaño del modelo, el espacio de memoria y el coste computacional.

En visión por computador, los valores flotantes de 32 bits son estándar, pero convertirlos a 16 u 8 bits puede mejorar la eficiencia. Existen dos tipos principales de cuantización: cuantización por peso y cuantización por activación. La cuantización por peso reduce la precisión de los pesos del modelo, equilibrando la reducción de tamaño con la precisión. La cuantización de la activación reduce la precisión de las activaciones, lo que disminuye aún más las demandas de memoria y computación.

__wf_reserved_inherit
Fig. 4. Ejemplo de cuantización de un flotante de 32 bits a un entero de 8 bits.

Cómo la precisión mixta acelera las inferencias de la IA

La precisión mixta es una técnica que utiliza diferentes precisiones numéricas para varias partes de una red neuronal. Al combinar valores de mayor precisión, como los flotantes de 32 bits, con valores de menor precisión, como los flotantes de 16 u 8 bits, la precisión mixta permite que los modelos de visión por ordenador aceleren el entrenamiento y reduzcan el uso de memoria sin sacrificar la 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 consigue mediante el moldeado y el escalado de pérdidas. El moldeado convierte los tipos de datos entre diferentes precisiones según lo requiera el modelo. El escalado de pérdidas ajusta la precisión reducida para evitar el desbordamiento numérico, garantizando un entrenamiento estable. La precisión mixta es especialmente útil para modelos grandes y lotes de gran tamaño.

__wf_reserved_inherit
Fig. 5. El entrenamiento de precisión mixta utiliza tipos de coma flotante de 16 bits (FP16) y 32 bits (FP32).

Equilibrio entre precisión y eficacia del modelo

Ahora que hemos cubierto varias técnicas de optimización de modelos, vamos a discutir cómo decidir cuál utilizar en función de sus necesidades específicas. La elección depende de factores como el hardware disponible, las limitaciones informáticas y de memoria del entorno de implantación y el nivel de precisión requerido. 

Por ejemplo, los modelos más pequeños y rápidos son más adecuados para dispositivos móviles con recursos limitados, mientras que los modelos más grandes y precisos pueden utilizarse en sistemas de alto rendimiento. A continuación se explica cómo cada técnica se ajusta a los distintos objetivos:

  • Poda: Es ideal para reducir el tamaño del modelo sin afectar significativamente a la precisión, lo que lo hace perfecto para dispositivos con recursos limitados como teléfonos móviles o dispositivos del Internet de las Cosas (IoT).
  • Cuantización: Una gran opción para reducir el tamaño del modelo y acelerar la inferencia, sobre todo en dispositivos móviles y sistemas integrados con memoria y capacidad de procesamiento limitadas. Funciona bien en aplicaciones en las que es aceptable una ligera reducción de la 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 GPUs y TPUs que soportan operaciones de precisión mixta. Suele utilizarse en tareas de alto rendimiento en las que la eficiencia es importante.
  • Ajuste de hiperparámetros: Aunque requiere muchos cálculos, es esencial para aplicaciones que exigen una gran precisión, como las imágenes médicas o la conducción autónoma.

Principales conclusiones

La optimización de modelos es una parte vital del aprendizaje automático, especialmente para desplegar la 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 por ordenador. Estas optimizaciones hacen que los modelos sean más rápidos y consuman menos recursos, lo que resulta ideal para dispositivos con memoria y capacidad de procesamiento limitadas. Los modelos optimizados también son más fáciles de escalar e implantar en diferentes plataformas, lo que permite soluciones de IA eficaces y adaptables a una amplia gama de usos.

Visite el repositorio GitHub de Ultralytics y únase a nuestra comunidad para obtener más información sobre las aplicaciones de la IA en la fabricación y la agricultura.

¡Construyamos juntos el futuro
de la IA!

Comience su viaje con el futuro del aprendizaje automático

Empezar gratis
Enlace copiado en el portapapeles