FLOPs
Узнай, как FLOPs измеряют вычислительную сложность моделей ИИ. Научись вычислять FLOPs для Ultralytics YOLO26 и оптимизировать производительность для Edge AI.
FLOPs или Floating Point Operations (операции с плавающей запятой) — это стандартная метрика, используемая для измерения вычислительной сложности модели machine learning. Она конкретно подсчитывает количество математических вычислений (в основном сложений и умножений десятичных чисел), которые должна выполнить neural network для обработки одного входного сигнала, например, изображения или предложения. В мире deep learning FLOPs служат теоретическим мерилом того, насколько «тяжелой» или вычислительно затратной является модель. Более высокое значение FLOPs обычно указывает на то, что модель более сложная и потребует больше вычислительной мощности и энергии для выполнения, тогда как более низкое значение указывает на облегченную архитектуру, разработанную для эффективности.
Link to this sectionРоль FLOPs в выборе модели#
При разработке приложений artificial intelligence инженеры часто сталкиваются с необходимостью выбора между точностью и скоростью. FLOPs выступает в качестве аппаратно-независимого прокси-показателя inference latency, позволяя тебе сравнивать различные архитектуры без необходимости проводить их бенчмаркинг на каждом возможном устройстве. Эта метрика важна для выбора подходящей модели для конкретных сценариев развертывания. Например, исследователь, запускающий эксперименты на мощных серверах cloud computing, может отдать предпочтение точности, а не эффективности, используя модели с высокими FLOPs. И наоборот, инженер, создающий решения для устройств edge AI, должен отдавать приоритет низким FLOPs, чтобы обеспечить бесперебойную работу приложения в рамках строгих ограничений по питанию и тепловыделению.
Link to this sectionРеальные приложения#
Практическое значение FLOPs проявляется в различных отраслях, где вычислительные ресурсы являются критическим фактором.
- Автономные дроны: В таких областях, как agricultural robotics, дроны, оснащенные камерами, анализируют состояние сельскохозяйственных культур в режиме реального времени. Поскольку аккумуляторы дронов ограничены, каждый бит потребляемой мощности имеет значение. Инженеры специально выбирают модели с низкими FLOPs, такие как Nano-варианты YOLO26, чтобы минимизировать нагрузку на бортовой процессор, тем самым увеличивая время полета и радиус действия.
- Мобильная дополненная реальность: Приложения для смартфонов, которые используют facial recognition для обеспечения безопасности или применяют AR-фильтры, сильно зависят от эффективной обработки данных. Эти приложения должны работать так, чтобы устройство не перегревалось и не тормозило. Разработчики используют оценки FLOPs, чтобы выбирать легкие модели, которые комфортно вписываются в возможности мобильных чипсетов, таких как серия Snapdragon или A-series chips от Apple.
Link to this sectionFLOPs против FLOPS (Floating Point Operations Per Second)#
Важно различать «FLOPs» (множественное число от FLOP) и «FLOPS» (заглавные буквы). Хотя они выглядят почти идентично, они измеряют разные вещи. FLOPs (со строчной «s») относится к общему количеству операций, требуемых моделью — это статическая мера сложности. FLOPS (с заглавной «S») расшифровывается как Floating Point Operations Per Second (операции с плавающей запятой в секунду) и измеряет скорость или производительность оборудования, такого как GPU. Ты можешь представить FLOPs как расстояние, которое нужно проехать автомобилю (объем работы, которую нужно сделать), в то время как FLOPS — это максимальная скорость автомобиля (способность оборудования выполнить эту работу).
Link to this sectionИзмерение FLOPs с помощью Python#
Ты можешь легко рассчитать вычислительную стоимость модели Ultralytics с помощью Python. Это особенно полезно на этапе model optimization, чтобы убедиться, что твоя нейронная сеть укладывается в бюджет аппаратных ресурсов. Следующий пример демонстрирует, как загрузить модель 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")Link to this sectionСнижение FLOPs для повышения эффективности#
Чтобы сделать модели более пригодными для развертывания, исследователи используют несколько методов снижения FLOPs без существенной потери точности. Model pruning включает удаление менее важных связей в нейронной сети, эффективно облегчая ее. Еще один метод — quantization, который снижает точность чисел, используемых в вычислениях (например, с 32-битных чисел с плавающей запятой до 8-битных целых чисел). Инструменты, доступные на Ultralytics Platform, помогают оптимизировать эти процессы, облегчая развертывание эффективных моделей на таких целевых устройствах, как TensorRT или OpenVINO. Понимая и оптимизируя FLOPs, ты можешь создавать системы ИИ, которые одновременно мощны и устойчивы.






