Las FLOPs, u Operaciones en coma flotante, representan una medida fundamental de la complejidad computacional de un modelo de aprendizaje automático (ML), especialmente en el aprendizaje profundo. Cuantifica el número total de cálculos en coma flotante (como sumas, restas, multiplicaciones y divisiones) necesarios para una sola pasada del modelo, normalmente durante la inferencia. Comprender los FLOP es crucial para evaluar la eficiencia del modelo, comparar diferentes arquitecturas y determinar la idoneidad de un modelo para diversas plataformas de hardware, desde potentes servidores en la nube hasta dispositivos de borde con recursos limitados.
¿Qué son los FLOP?
Una operación en coma flotante es cualquier cálculo matemático en el que intervienen números que tienen un punto decimal (números en coma flotante). En las redes neuronales (NN), estas operaciones se producen ampliamente en capas como las convoluciones y las capas totalmente conectadas. Los FLOPs miden el recuento total de estas operaciones necesarias para procesar una sola entrada (por ejemplo, una imagen).
Dado que los modelos modernos de aprendizaje profundo implican miles de millones de operaciones de este tipo, los FLOPs se expresan a menudo en GigaFLOPs (GFLOPs, miles de millones de FLOPs) o TeraFLOPs (TFLOPs, billones de FLOPs). Es importante no confundir los FLOPs (operaciones totales, una medida de la carga de trabajo computacional) con los FLOPS (operaciones de coma flotante por segundo, una medida de la velocidad de procesamiento del hardware, como la capacidad de una GPU). En el contexto de la evaluación de la complejidad del modelo, "FLOPs" casi siempre se refiere al recuento total de operaciones.
Relevancia en IA y Aprendizaje Automático
Los FLOPs sirven como métrica vital e independiente del hardware para estimar el coste computacional de un modelo de IA. Entre los aspectos clave de su relevancia se incluyen:
- Comparación de la eficiencia: Los FLOPs permiten a los investigadores y profesionales comparar las demandas computacionales de diferentes arquitecturas de modelos, independientemente de las optimizaciones específicas de hardware o software. Por ejemplo, al comparar modelos como Ultralytics YOLO11 frente a YOLOv10, los FLOP permiten conocer su eficiencia computacional relativa junto con las métricas de precisión.
- Idoneidad del hardware: Los modelos con menos FLOPs suelen requerir menos potencia de cálculo, lo que los hace más adecuados para su despliegue en dispositivos con recursos limitados, como smartphones, Raspberry Pi o plataformas NVIDIA Jetson, habituales en la computación de borde.
- Estimación de la velocidad de inferencia: Aunque no es una medida directa de la velocidad, los FLOP más bajos suelen correlacionarse con una latencia de inferencia más rápida. Sin embargo, la velocidad real depende de factores como los patrones de acceso a la memoria, el paralelismo del hardware (CPU vs. GPU vs. TPU) y bibliotecas de software optimizadas como TensorRT o OpenVINO.
- Diseño y optimización de modelos: Los FLOPs son una consideración clave durante el diseño del modelo, la búsqueda de arquitecturas neuronales (NAS) y las técnicas de optimización como la poda de modelos, con el objetivo de reducir el coste computacional manteniendo el rendimiento.
FLOPs vs. Conceptos relacionados
Es útil distinguir los FLOP de otras métricas comunes:
- FLOPs vs. Parámetros: El número de parámetros (o pesos del modelo) indica el tamaño del modelo en términos de almacenamiento en memoria. Los FLOPs miden el coste computacional de ejecutar el modelo. Un modelo puede tener muchos parámetros pero pocos FLOPs (por ejemplo, si las ponderaciones se utilizan poco) o pocos parámetros pero muchos FLOPs (por ejemplo, si implica muchas operaciones por parámetro). Ambas métricas son importantes para evaluar la eficiencia. Por ejemplo, YOLOv9 introdujo técnicas para conseguir una gran precisión con relativamente menos parámetros y FLOPs en comparación con algunos predecesores.
- FLOPs vs. Velocidad de inferencia: Los FLOPs representan el trabajo computacional teórico, mientras que la velocidad de inferencia (a menudo medida en fotogramas por segundo (FPS) o milisegundos por inferencia) es el rendimiento real medido en un hardware específico. Factores como el ancho de banda de la memoria, la pila de software (PyTorch, TensorFlow), la cuantización y el tamaño del lote afectan significativamente a la velocidad en el mundo real. Optimizar la latencia frente al rendimiento muestra cómo se puede ajustar el rendimiento práctico más allá de los FLOPs.
- FLOPs vs. MACs/MACC: Las operaciones de multiplicación-acumulación (MACs o MACC) cuentan el número de operaciones fusionadas de multiplicación y suma, habituales en las redes neuronales convolucionales (CNNs). Como una MAC suele implicar una multiplicación y una suma, a menudo se aproxima a 2 FLOPs. Algunos trabajos de investigación o fichas de modelos indican MAC en lugar de FLOP. Es crucial comprobar qué métrica se está utilizando, ya que difieren aproximadamente en un factor de dos. Comprender esta diferencia es clave a la hora de comparar modelos basándose en los costes computacionales declarados.
Aplicaciones y ejemplos
Los FLOP se utilizan ampliamente en diversos contextos de IA y ML:
- Selección del modelo para el despliegue en el borde: Una empresa que desarrolla una cámara de seguridad inteligente necesita un modelo de detección de objetos que pueda funcionar eficazmente en un dispositivo de borde con una potencia de procesamiento limitada. Comparan varios modelos, incluidos distintos tamaños de Ultralytics YOLO (por ejemplo, YOLO11n frente a YOLO11s). Examinando los FLOPs indicados para cada modelo (como los que se encuentran en la documentación de Ultralytics YOLO11 ), pueden seleccionar el modelo más grande que cumpla sus requisitos de latencia dado el presupuesto computacional del dispositivo (medido en FLOPS de hardware). Los modelos de FLOPs más bajos, como el YOLO11n, son los principales candidatos.
- Evaluación comparativa de nuevas arquitecturas: Los investigadores que desarrollan una nueva arquitectura de visión por ordenador necesitan demostrar su eficacia. Comparan la precisión de su modelo (por ejemplo, mAP) con sus GFLOPs en conjuntos de datos de referencia estándar como COCO. Representan su modelo en un gráfico de precisión frente a GFLOPs junto con los modelos de vanguardia existentes (como EfficientNet o varias versiones de YOLO ) para mostrar mejores compensaciones. Muchas páginas de comparación de modelos, como YOLOv9 frente a YOLOX, utilizan los FLOPs como punto clave de comparación.
Cálculo y estimación de FLOPs
Los FLOP suelen calcularse analizando la arquitectura del modelo capa por capa y sumando las operaciones necesarias para cada capa en función de las dimensiones de entrada/salida y el tipo de capa(convolución, totalmente conectada, etc.). Diversas herramientas y bibliotecas, como fvcore o los perfiladores integrados en los marcos de aprendizaje profundo, pueden ayudar a automatizar este cálculo o proporcionar estimaciones. La resolución de entrada afecta significativamente al recuento de FLOP de muchos modelos de visión.
Limitaciones
Aunque son útiles, los FLOP tienen limitaciones:
- No tienen en cuenta los costes de acceso a la memoria (MAC), que pueden ser un importante cuello de botella.
- No captan el grado de paralelismo posible en las operaciones.
- El rendimiento real depende en gran medida de las optimizaciones específicas del hardware y de la eficacia de las bibliotecas de software subyacentes(cuDNN, Intel MKL).
- Algunas operaciones (por ejemplo, las funciones de activación como ReLU) tienen un bajo número de FLOP, pero aún así pueden afectar a la latencia.
Por lo tanto, los FLOP deben considerarse junto con otras métricas de rendimiento, parámetros y puntos de referencia del mundo real para obtener una imagen completa de la eficiencia del modelo. Herramientas como Ultralytics HUB pueden ayudar a gestionar los modelos y realizar un seguimiento de diversos aspectos del rendimiento durante el desarrollo y la implantación.