Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

FLOPs

Узнайте, как FLOP измеряют вычислительную сложность моделей ИИ. Узнайте, как рассчитать FLOP для Ultralytics и оптимизировать производительность для Edge AI.

FLOPs, или операции с плавающей запятой, — это стандартный показатель, используемый для измерения вычислительной сложности модели машинного обучения. Он конкретно подсчитывает количество математических вычислений — в основном сложений и умножений с десятичными числами — которые нейронная сеть должна выполнить для обработки одного входа, такого как изображение или предложение. В мире глубокого обучения FLOPs служит теоретическим критерием для оценки «тяжести» или вычислительной затратности модели. Более высокое значение FLOPs, как правило, означает, что модель более сложна и для ее выполнения потребуется больше вычислительной мощности и энергии, тогда как более низкое значение указывает на легкую архитектуру, разработанную с целью обеспечения эффективности.

Роль FLOP в выборе модели

При разработке приложений искусственного интеллекта инженеры часто сталкиваются с необходимостью выбора между точностью и скоростью. FLOPs действует как независимый от аппаратного обеспечения прокси для задержки вывода, позволяя разработчикам сравнивать различные архитектуры без необходимости тестирования их на каждом возможном устройстве. Этот показатель имеет важное значение для выбора правильной модели для конкретных сценариев развертывания. Например, исследователь, проводящий эксперименты на мощных облачных вычислительных серверах, может отдать приоритет точности перед эффективностью, используя модели с высоким FLOPs. И наоборот, инженер, создающий периферийные устройства искусственного интеллекта, должен отдать приоритет низкому FLOPs, чтобы обеспечить бесперебойную работу приложения в строгих пределах мощности и тепловыделения.

Применение в реальном мире

Практические последствия FLOP очевидны в различных отраслях, где вычислительные ресурсы являются критически важным фактором.

  • Автономные дроны: в таких областях, как сельскохозяйственная робототехника, дроны, оснащенные камерами, анализируют состояние урожая в режиме реального времени. Поскольку батареи дронов имеют ограниченный ресурс, каждое потребление энергии имеет значение. Инженеры специально выбирают модели с низким FLOP, такие как варианты Nano YOLO26, чтобы минимизировать нагрузку на бортовой процессор, тем самым максимально увеличивая время полета и дальность действия.
  • Мобильная дополненная реальность: приложения для смартфонов, которые используют распознавание лиц для обеспечения безопасности или применяют AR-фильтры, в значительной степени зависят от эффективности обработки данных. Эти приложения должны функционировать без перегрева устройства или задержек. Разработчики используют оценки FLOPs для выбора легких моделей, которые комфортно вписываются в возможности мобильных чипсетов, таких как серия Snapdragon или чипы Apple серии A.

FLOPs против FLOPS (операции с плавающей запятой в секунду)

Важно различать «FLOPs» (множественное число от FLOP) и «FLOPS» (все буквы заглавные). Хотя они выглядят почти одинаково, они измеряют разные вещи. FLOPs (с маленькой буквой «s») относится к общему количеству операций, требуемых моделью — это статическая мера сложности. FLOPS (с большой буквой «S») означает «операции с плавающей запятой в секунду» и измеряет скорость или производительность аппаратного обеспечения, например GPU. Можно представить FLOPs как расстояние, которое должен пройти автомобиль (выполняемая работа), а FLOPS — как максимальную скорость автомобиля (способность аппаратного обеспечения выполнять работу).

Измерение FLOP с помощью Python

Вы можете легко рассчитать вычислительную стоимость Ultralytics с помощью Python. Это особенно полезно на этапе оптимизации модели, чтобы убедиться, что ваша нейронная сеть соответствует вашему аппаратному бюджету. В следующем примере показано, как загрузить модель YOLO26 и определить ее 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")

Снижение FLOP для повышения эффективности

Чтобы сделать модели более пригодными для внедрения, исследователи используют несколько методов для уменьшения FLOP без значительной потери точности. Обрезка модели включает удаление менее важных связей в нейронной сети, что позволяет эффективно ее упростить. Другой метод — квантование, которое снижает точность чисел, используемых в вычислениях (например, с 32-разрядных чисел с плавающей запятой до 8-разрядных целых чисел). Инструменты, доступные на Ultralytics , помогают оптимизировать эти процессы, упрощая развертывание эффективных моделей на таких целевых устройствах, как TensorRT или OpenVINO. Понимая и оптимизируя FLOP, разработчики могут создавать мощные и устойчивые системы искусственного интеллекта.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас