Descubra cómo los FLOP miden la complejidad computacional de los modelos de IA. Descubra cómo calcular los FLOP para Ultralytics y optimizar el rendimiento para Edge AI.
FLOP, o operaciones de punto flotante, es una métrica estándar utilizada para medir la complejidad computacional de un modelo de aprendizaje automático. Concretamente, cuenta el número de cálculos matemáticos —principalmente sumas y multiplicaciones con números decimales— que una red neuronal debe realizar para procesar una sola entrada, como una imagen o una frase. En el mundo del aprendizaje profundo, los FLOP sirven como criterio teórico para estimar lo «pesado» o computacionalmente costoso que es un modelo. Un recuento de FLOP 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 ser eficiente.
Al desarrollar aplicaciones de inteligencia artificial, los ingenieros a menudo se enfrentan a una disyuntiva entre precisión y velocidad. Los FLOP actúan como un indicador independiente del hardware para la latencia de inferencia, lo que permite a los desarrolladores comparar diferentes arquitecturas sin necesidad de evaluarlas en todos los dispositivos posibles. Esta métrica es esencial para elegir el modelo adecuado para escenarios de implementación específicos. Por ejemplo, un investigador que realice experimentos en potentes servidores de computación en la nube podría dar prioridad a la precisión sobre la eficiencia, utilizando modelos con altos FLOP. Por el contrario, un ingeniero que construya dispositivos de IA de vanguardia debe dar prioridad a los bajos FLOP para garantizar que la aplicación funcione correctamente dentro de estrictos límites de potencia y temperatura.
Las implicaciones prácticas de los FLOP son evidentes en diversas industrias en las que los recursos computacionales son un factor crítico .
Es importante distinguir entre «FLOPs» (plural de FLOP) y «FLOPS» (en mayúsculas). Aunque parecen casi idénticos, miden cosas diferentes. FLOPs (con «s» minúscula) se refiere a la cantidad total de operaciones que requiere un modelo; es una medida estática de la complejidad. FLOPS (con la «S» mayúscula) significa «operaciones de coma flotante por segundo» y mide la velocidad o la capacidad de rendimiento del hardware, como una GPU. Se puede pensar en los FLOP como la distancia que debe recorrer un coche (el trabajo a realizar), mientras que los FLOPS son la velocidad máxima del coche (la capacidad del hardware para realizar el trabajo).
Puede calcular fácilmente el coste computacional de un Ultralytics utilizando Python. Esto resulta especialmente útil durante la fase de optimización del modelo para garantizar que su red neuronal se ajusta a su presupuesto de hardware. El siguiente ejemplo muestra cómo cargar un modelo YOLO26 y determinar sus FLOP.
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")
Para que los modelos sean más fáciles de implementar, los investigadores utilizan varias técnicas para reducir los FLOP sin sacrificar significativamente la precisión. La poda de modelos consiste en eliminar las conexiones menos importantes de la red neuronal, lo que la adelgaza de manera efectiva. Otra técnica es la cuantificación, que reduce la precisión de los números utilizados en los cálculos (por ejemplo, de 32 bits en coma flotante a enteros de 8 bits). Las herramientas disponibles en la Ultralytics ayudan a optimizar estos procesos de optimización, facilitando la implementación de modelos eficientes en objetivos como TensorRT o OpenVINO. Al comprender y optimizar los FLOP, los desarrolladores pueden crear sistemas de IA que sean potentes y sostenibles.