¡Comprenda los FLOPs en el aprendizaje automático! Aprenda cómo miden la complejidad del modelo, impactan la eficiencia y ayudan en la selección del hardware.
Las operaciones en coma flotante (FLOP) son una medida fundamental para cuantificar la complejidad computacional de los modelos de aprendizaje automático. computacional de los modelos de aprendizaje el ámbito del aprendizaje profundo. Esta medida calcula el número total de operaciones matemáticas, como sumas, restas, multiplicaciones y divisiones, como la suma, la resta, la multiplicación y la división de números decimales- necesarias para completar una sola pasada de una red neuronal. red neuronal. Al determinar el recuento de FLOPs los ingenieros pueden estimar la potencia de procesamiento necesaria para ejecutar un modelo, lo que la convierte en una estadística vital para la selección y optimización del hardware. para la selección y optimización del hardware. Aunque son distintos del tamaño del archivo o del recuento de parámetros, los FLOP proporcionan una base teórica para determinar lo "pesado" que es un modelo. lo "pesado" que es un modelo, lo que está directamente relacionado con el consumo de energía y la velocidad de ejecución en procesadores como una CPU o GPU.
Comprender el coste computacional de un modelo es esencial para un desarrollo de la IA. Un recuento de FLOPs generalmente indica que un modelo requiere menos cálculos para producir una predicción, lo que es crítico para entornos con recursos limitados. entornos con recursos limitados.
El impacto práctico de los FLOP es más visible cuando los modelos pasan de la investigación a entornos de producción en los que la latencia latencia y la potencia.
Puede determinar la complejidad computacional de un modelo de Ultralytics utilizando las herramientas de creación de perfiles integradas. El siguiente fragmento de siguiente fragmento carga un modelo y calcula los FLOP necesarios para un tamaño de entrada específico.
from ultralytics import YOLO
# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")
# Profile the model to see FLOPs, parameters, and speed
# The 'imgsz' argument defines the input resolution (e.g., 640x640)
model.profile(imgsz=640)
Este método genera una tabla resumen que incluye el número de parámetros, gradientes y GFLOPs (GigaFLOPs, o miles de millones de operaciones). miles de millones de operaciones), ayudándole a evaluar si el modelo se ajusta a sus restricciones de despliegue.
Es importante distinguir los FLOPs de otras métricas que describen el tamaño y la velocidad del modelo, ya que miden diferentes aspectos del rendimiento. aspectos del rendimiento.
Aunque los FLOP proporcionan una referencia útil, no cuentan toda la historia del rendimiento del modelo. No tienen en cuenta los costes de acceso a la memoria (la energía y el tiempo necesarios para trasladar los datos al procesador), que suele ser el cuello de botella de los sistemas modernos de aprendizaje profundo. modernos de aprendizaje profundo. Además, las operaciones como las funciones de activación (por ejemplo, ReLU) o las capas de normalización tienen un recuento de FLOP bajo, pero aún así consumen tiempo. Por lo tanto, los FLOP deben utilizarse junto con en el mundo real en hardware de destino, como una Raspberry Pi, para obtener una imagen precisa del rendimiento.