Разберитесь в FLOPs в машинном обучении! Узнайте, как они измеряют сложность модели, влияют на эффективность и помогают в выборе оборудования.
FLOPs, или операции с плавающей точкой, служат фундаментальной метрикой для количественной оценки вычислительной сложности моделей машинного обучения, особенно в в области глубокого обучения. Этот показатель рассчитывает общее количество математических операций, таких как сложение, вычитание, умножение и деление, вычитание, умножение и деление с десятичными числами, - необходимых для выполнения одного прохода вперед нейронной сети. нейронной сети. Определив количество FLOPs, инженеры могут оценить вычислительную мощность, необходимую для выполнения модели, что делает этот показатель важным для выбора и оптимизации аппаратного обеспечения. выбора и оптимизации аппаратного обеспечения. Отличаясь от размера файла или количества параметров, FLOPs обеспечивает теоретическую базу для определения того. насколько "тяжелой" является модель, что напрямую связано с энергопотреблением и скоростью выполнения на процессорах например CPU или GPU.
Понимание вычислительных затрат модели очень важно для эффективной разработки ИИ. Более низкое количество FLOPs обычно указывает на то, что модель требует меньшего количества вычислений для получения прогноза, что очень важно для в условиях ограниченных ресурсов.
Практическое влияние FLOPs наиболее заметно, когда модели переходят из исследовательских в производственные среды, где задержка и мощность ограничены.
Вы можете определить вычислительную сложность модели Ultralytics с помощью встроенных инструментов профилирования. На сайте Следующий фрагмент загружает модель и вычисляет количество FLOP, необходимое для определенного размера входных данных.
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)
Этот метод выводит сводную таблицу, включающую количество параметров, градиентов и GFLOPs (гигафлопс, или миллиарды операций), что поможет вам оценить, соответствует ли модель вашим ограничениям на развертывание.
Важно отличать FLOP от других метрик, описывающих размер и скорость модели, поскольку они измеряют разные аспекты производительности.
Хотя FLOP обеспечивают полезный базовый уровень, они не дают полного представления о производительности модели. Они не учитывают стоимость доступа к памяти (энергия и время на перемещение данных в процессор), которая часто является узким местом в современных системах глубокого обучения. Кроме того, такие операции такие как функции активации (например, ReLU) или слои нормализации имеют низкое количество FLOP, но все равно потребляют время. Поэтому FLOP следует использовать в сочетании с с реальными бенчмарками на целевом оборудовании, таком как Raspberry Pi, чтобы получить точную картину производительности.