FLOPs
Узнай, как FLOPs измеряют вычислительную сложность моделей ИИ. Изучи, как рассчитать FLOPs для Ultralytics YOLO26 и оптимизировать производительность Edge AI.
FLOPs, или операции с плавающей запятой, — стандартная метрика, используемая для измерения вычислительной сложности модели машинного обучения. Она подсчитывает именно количество математических вычислений — прежде всего сложений и умножений с участием чисел с плавающей запятой, — которые нейронная сеть должна выполнить для обработки одного входного объекта, например изображения или предложения. В мире глубокого обучения FLOPs служит теоретическим ориентиром для оценки того, насколько «тяжёлой» или вычислительно затратной является модель. Более высокое значение FLOPs обычно означает, что модель сложнее и потребует больше вычислительной мощности и энергии для выполнения, тогда как меньшее значение указывает на лёгкую архитектуру, разработанную с учётом эффективности.
Роль FLOPs при выборе модели#
При разработке приложений искусственного интеллекта инженеры часто сталкиваются с компромиссом между точностью и скоростью. FLOPs служит аппаратно-независимым приближённым показателем задержки инференса, позволяя разработчикам сравнивать разные архитектуры без необходимости тестировать их на каждом возможном устройстве. Эта метрика необходима для выбора подходящей модели под конкретные сценарии развёртывания. Например, исследователь, проводящий эксперименты на мощных серверах облачных вычислений, может поставить точность выше эффективности и использовать модели с высоким значением FLOPs. Напротив, инженер, разрабатывающий систему для устройств периферийного ИИ, должен отдавать приоритет низкому значению FLOPs, чтобы приложение стабильно работало в условиях жёстких ограничений по энергопотреблению и тепловыделению.
Практические применения#
Практическое значение FLOPs очевидно в различных отраслях, где вычислительные ресурсы являются критически важным фактором.
- Автономные дроны: в таких областях, как сельскохозяйственная робототехника, дроны с камерами анализируют состояние посевов в реальном времени. Поскольку ёмкость аккумуляторов дронов ограничена, важна каждая единица энергопотребления. Инженеры специально выбирают модели с низким значением FLOPs, например варианты Nano YOLO26, чтобы минимизировать нагрузку на бортовой процессор и тем самым максимально увеличить время полёта и рабочий радиус.
- Мобильная дополненная реальность: приложения для смартфонов, использующие распознавание лиц в целях безопасности или применяющие фильтры AR, в значительной степени зависят от эффективной обработки данных. Эти приложения должны работать, не вызывая перегрева или задержек в работе устройства. Разработчики используют оценки FLOPs, чтобы выбирать лёгкие модели, соответствующие возможностям мобильных чипсетов, таких как серия Snapdragon или чипы серии A от Apple.
FLOPs и FLOPS (операции с плавающей запятой в секунду)#
Важно различать «FLOPs» (множественное число от FLOP) и «FLOPS» (заглавными буквами). Хотя они выглядят почти одинаково, они измеряют разные величины. FLOPs (с маленькой «s») обозначает общее количество операций, необходимых модели, — это статическая мера сложности. FLOPS (с заглавной «S») расшифровывается как операции с плавающей запятой в секунду и измеряет скорость или производительность аппаратного обеспечения, например GPU. Можно представить FLOPs как расстояние, которое нужно проехать автомобилю (предстоящую работу), а FLOPS — как максимальную скорость автомобиля (способность аппаратного обеспечения выполнить эту работу).
Измерение FLOPs с помощью Python#
Ты можешь легко рассчитать вычислительные затраты модели Ultralytics с помощью Python. Это особенно полезно на этапе оптимизации модели, чтобы убедиться, что нейронная сеть укладывается в доступный вычислительный бюджет оборудования. В следующем примере показано, как загрузить модель YOLO26 и определить её значение 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")Снижение FLOPs для повышения эффективности#
Чтобы сделать модели более пригодными для развёртывания, исследователи применяют несколько методов снижения FLOPs без существенной потери точности. Прунинг модели предполагает удаление менее важных связей в нейронной сети, фактически делая её более разреженной. Другой метод — квантизация, которая снижает точность чисел, используемых в вычислениях (например, с 32-битных чисел с плавающей запятой до 8-битных целых чисел). Инструменты, доступные на платформе Ultralytics, помогают упростить эти процессы оптимизации, облегчая развёртывание эффективных моделей на таких целевых платформах, как TensorRT или OpenVINO. Понимая особенности FLOPs и оптимизируя этот показатель, разработчики могут создавать мощные и одновременно устойчивые системы ИИ.









