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 Floating Point Operations, son una métrica estándar utilizada para medir la complejidad computacional de un modelo de machine learning. Cuentan específicamente el número de cálculos matemáticos —principalmente sumas y multiplicaciones con 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 baremo teórico para estimar lo "pesado" o computacionalmente costoso que es un modelo. Un recuento de FLOPs más alto suele sugerir 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.
El papel de los FLOPs en la selección de modelos#
Al desarrollar aplicaciones de artificial intelligence, los ingenieros se enfrentan a menudo a un equilibrio entre precisión y velocidad. Los FLOPs actúan como un indicador independiente del hardware para la inference latency, lo que permite a los desarrolladores comparar diferentes arquitecturas sin necesidad de evaluarlas en todos los dispositivos posibles. Esta métrica es fundamental para elegir el modelo adecuado para escenarios de despliegue específicos. Por ejemplo, un investigador que realiza experimentos en potentes servidores de cloud computing puede dar prioridad a la precisión sobre la eficiencia, utilizando modelos con un alto número de FLOPs. Por el contrario, un ingeniero que diseña para dispositivos de edge AI debe priorizar unos FLOPs bajos para garantizar que la aplicación funcione sin problemas dentro de estrictos límites térmicos y de energía.
Aplicaciones 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 gramo de consumo de energía importa. Los ingenieros seleccionan específicamente modelos con bajos FLOPs, como las variantes Nano de YOLO26, para minimizar el consumo en el procesador de a bordo, maximizando así el tiempo de vuelo y el radio operativo.
- Realidad aumentada móvil: Las aplicaciones para smartphones que utilizan facial recognition para la seguridad o aplican filtros de AR dependen en gran medida de un procesamiento eficiente. Estas aplicaciones deben funcionar sin causar que el dispositivo se caliente o sufra retrasos. Los desarrolladores utilizan las estimaciones de FLOPs para seleccionar modelos ligeros que se adapten cómodamente a las capacidades de los chipsets móviles como la serie Snapdragon o los A-series chips de Apple.
FLOPs 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 diferentes. Los FLOPs (con 's' minúscula) se refieren a la cantidad total de operaciones requeridas por un modelo; es una medida estática de la complejidad. Los FLOPS (con 'S' mayúscula) significan Floating Point Operations Per Second y miden la velocidad o la capacidad de rendimiento del hardware, como una GPU. Puedes pensar en los FLOPs como la distancia que un coche necesita recorrer (el trabajo por hacer), mientras que los FLOPS son la velocidad máxima del coche (la capacidad del hardware para hacer el trabajo).
Medición de FLOPs con Python#
Puedes calcular fácilmente el coste computacional de un modelo de Ultralytics utilizando Python. Esto es especialmente útil durante la fase de model optimization para asegurar que tu neural network se ajusta 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")Reducción de FLOPs para una mayor eficiencia#
Para que los modelos sean más desplegables, los investigadores utilizan varias técnicas para reducir los FLOPs sin sacrificar significativamente la precisión. La Model pruning implica eliminar las conexiones menos importantes en la neural network, adelgazándola eficazmente. Otra técnica es la quantization, que reduce la precisión de los números utilizados en los cálculos (por ejemplo, de coma flotante de 32 bits a enteros de 8 bits). Las herramientas disponibles en la Ultralytics Platform ayudan a optimizar estos procesos de optimización, facilitando el despliegue de modelos eficientes en objetivos como TensorRT o OpenVINO. Al comprender y optimizar los FLOPs, los desarrolladores pueden construir sistemas de IA que sean tanto potentes como sostenibles.






