FLOPs
Aprende cómo los FLOPs miden la complejidad computacional de los modelos de IA. Descubre cómo calcular los FLOPs para Ultralytics YOLO26 y optimizar el rendimiento para la IA perimetral.
Los FLOPs, o operaciones de coma flotante (Floating Point Operations), son una métrica estándar utilizada para medir la complejidad computacional de un modelo de machine learning. Contabilizan específicamente el número de cálculos matemáticos —principalmente sumas y multiplicaciones que involucran números decimales— que una neural network debe realizar para procesar una única entrada, como una imagen o una frase. En el mundo del deep learning, los FLOPs sirven como referencia teórica para estimar lo "pesado" o costoso que es un modelo a nivel computacional. Un recuento de FLOPs más alto generalmente sugiere que un modelo es más complejo y requerirá más potencia de procesamiento y energía para ejecutarse, mientras que un recuento más bajo indica una arquitectura ligera diseñada para la eficiencia.
Link to this sectionEl papel de los FLOPs en la selección de modelos#
Al desarrollar aplicaciones de artificial intelligence, los ingenieros a menudo se enfrentan a un compromiso entre precisión y velocidad. Los FLOPs actúan como un proxy independiente del hardware para la inference latency, lo que permite a los desarrolladores comparar diferentes arquitecturas sin necesidad de evaluarlas en cada dispositivo posible. Esta métrica es esencial para elegir el modelo correcto para escenarios de despliegue específicos. Por ejemplo, un investigador que realiza experimentos en potentes servidores de cloud computing podría priorizar la precisión sobre la eficiencia, utilizando modelos con altos FLOPs. Por el contrario, un ingeniero que desarrolla para dispositivos de edge AI debe priorizar los FLOPs bajos para garantizar que la aplicación funcione sin problemas dentro de estrictos límites de potencia y térmicos.
Link to this sectionAplicaciones en el mundo real#
Las implicaciones prácticas de los FLOPs son evidentes en diversas industrias donde los recursos computacionales son un factor crítico.
- Drones autónomos: En campos como la agricultural robotics, los drones equipados con cámaras analizan la salud de los cultivos en tiempo real. Debido a que las baterías de los drones son limitadas, cada fragmento de consumo de energía importa. Los ingenieros seleccionan específicamente modelos con FLOPs bajos, como las variantes Nano de YOLO26, para minimizar el consumo del procesador a bordo, maximizando así el tiempo de vuelo y el rango operativo.
- Realidad aumentada móvil: Las aplicaciones de smartphones que utilizan facial recognition para seguridad o aplican filtros de AR dependen en gran medida de un procesamiento eficiente. Estas aplicaciones deben funcionar sin causar que el dispositivo se sobrecaliente o sufra retrasos. Los desarrolladores utilizan las estimaciones de FLOPs para seleccionar modelos ligeros que encajen cómodamente dentro de las capacidades de los chipsets móviles como la serie Snapdragon o los A-series chips de Apple.
Link to this sectionFLOPs frente a FLOPS (Operaciones de coma flotante por segundo)#
Es importante distinguir entre "FLOPs" (plural de FLOP) y "FLOPS" (todo en mayúsculas). Aunque parecen casi idénticos, miden cosas distintas. FLOPs (con 's' minúscula) se refiere a la cantidad total de operaciones requeridas por un modelo; es una medida estática de la complejidad. FLOPS (con 'S' mayúscula) significa Floating Point Operations Per Second (operaciones de coma flotante por segundo) y mide la velocidad o capacidad de rendimiento del hardware, como una GPU. Puedes pensar en los FLOPs como la distancia que un coche necesita recorrer (el trabajo a realizar), mientras que los FLOPS son la velocidad máxima del coche (la capacidad del hardware para realizar ese trabajo).
Link to this sectionMedición de FLOPs con Python#
Puedes calcular fácilmente el coste computacional de un modelo de Ultralytics utilizando Python. Esto es particularmente útil durante la fase de model optimization para garantizar que tu red neuronal se ajuste a tu presupuesto de hardware. El siguiente ejemplo demuestra cómo cargar un modelo de YOLO26 y determinar sus FLOPs.
from ultralytics import YOLO
from ultralytics.utils.torch_utils import get_flops
# Load a lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Calculate and print the model's FLOPs (Billions of operations)
# This gives you a hardware-independent complexity metric
flops = get_flops(model)
print(f"Model FLOPs: {flops:.2f} Billion")Link to this sectionReducción de FLOPs para una mayor eficiencia#
Para hacer que los modelos sean más fáciles de desplegar, los investigadores utilizan varias técnicas para reducir los FLOPs sin sacrificar significativamente la precisión. El model pruning implica eliminar las conexiones menos importantes en la red neuronal, simplificándola de manera efectiva. Otra técnica es la quantization, que reduce la precisión de los números utilizados en los cálculos (por ejemplo, de números de coma flotante de 32 bits a enteros de 8 bits). Las herramientas disponibles en la Ultralytics Platform ayudan a agilizar estos procesos de optimización, facilitando el despliegue de modelos eficientes en destinos como TensorRT o OpenVINO. Al comprender y optimizar los FLOPs, los desarrolladores pueden construir sistemas de IA que sean tanto potentes como sostenibles.






