Глоссарий

FLOPs

Поймите, что такое FLOPs в машинном обучении! Узнайте, как он измеряет сложность модели, влияет на эффективность и помогает в выборе оборудования.

FLOPs, или операции с плавающей точкой, - это фундаментальная метрика, используемая в машинном обучении (ML) для измерения вычислительной сложности модели. Операции с плавающей точкой - это любые математические вычисления, такие как сложение, вычитание, умножение или деление, в которых участвуют числа с десятичными точками, что является стандартным для нейронных сетей. Хотя технически этот термин может означать операции в секунду, в контексте глубокого обучения FLOPs обычно определяют общее количество этих операций, необходимых для одного прохода модели вперед. Эта метрика позволяет оценить, насколько интенсивными будут вычисления в модели во время вывода. Часто эти цифры настолько велики, что их выражают в гигафлопах (GFLOPs) - миллиардах операций, или терафлопах (TFLOPs) - триллионах операций.

Почему FLOP важны в машинном обучении?

Количество FLOP - важнейший показатель эффективности модели. Меньшее количество FLOP обычно говорит о том, что модель работает быстрее и требует меньше вычислительной мощности. Это особенно важно для приложений, где ресурсы ограничены, например в краевом ИИ и на мобильных устройствах. Анализируя FLOPs, разработчики могут:

  • Сравните архитектуры моделей: При выборе между различными моделями, например, теми, что представлены на наших страницах сравнения моделей, FLOP предлагают стандартизированный способ оценки вычислительной эффективности наряду с точностью.
  • Оптимизируйте для развертывания: Для развертывания модели на таком оборудовании, как Raspberry Pi или NVIDIA Jetson, выбор модели с соответствующим количеством FLOP очень важен для достижения желаемого уровня производительности.
  • Руководство по проектированию моделей: Исследователи, разрабатывающие новые архитектуры, например, серии Ultralytics YOLO, часто рассматривают минимизацию количества FLOP как ключевое ограничение при проектировании. Методы, используемые в таких моделях, как EfficientNet, направлены на снижение вычислительных затрат без ущерба для производительности.

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

FLOPs - это практическая метрика, которая ежедневно используется при разработке и внедрении решений в области искусственного интеллекта.

  1. Приложения для мобильного зрения: Разработчику, создающему функцию обнаружения объектов в реальном времени для приложения на смартфоне, необходимо выбрать модель, которая будет работать быстро и не разряжать аккумулятор. Сравнивая FLOPs легких моделей, таких как небольшой вариант Ultralytics YOLO11, с другими, они могут выбрать модель, которая обеспечивает хороший баланс скорости и точности для CPU или GPU устройства.

  2. Автономные транспортные средства: При автономном вождении модели восприятия должны обрабатывать данные с камер с чрезвычайно низкой задержкой. Инженеры, разрабатывающие такие системы, анализируют FLOP различных моделей, чтобы убедиться, что выбранная архитектура может работать на специализированном оборудовании автомобиля. Такая модель, как YOLO11, может быть выбрана вместо более сложной, если ее более низкий уровень FLOP позволит ей соответствовать строгим временным требованиям для безопасной работы.

FLOPs по сравнению с другими показателями

Важно отличать FLOP от других распространенных показателей:

  • Параметры против FLOPs: Количество весов модели (параметров) указывает на размер модели с точки зрения объема памяти. FLOPs, с другой стороны, измеряет вычислительную работу. Модель может иметь небольшое количество параметров, но большое количество FLOP, если эти параметры многократно используются в вычислительно интенсивных операциях.
  • MACs против FLOPs: MAC, или операции умножения и сложения, являются распространенными операциями в нейронных сетях. Один MAC часто считается эквивалентным двум FLOP (одно умножение и одно сложение). В некоторых исследовательских работах и фреймворках вычислительные затраты могут указываться в MACs, что составляет примерно половину от FLOPs. Вы можете увидеть это различие в таких ресурсах, как Papers with Code.
  • Латентность против FLOPs: Латентность вывода - это фактическое время, которое требуется модели, чтобы сделать предсказание. Хотя FLOPs дают хорошую теоретическую оценку, на реальную задержку влияют факторы, которые FLOPs не учитывает, такие как пропускная способность памяти, аппаратный параллелизм и эффективность программных библиотек, таких как PyTorch.

Ограничения

Несмотря на свою полезность, FLOP имеют свои ограничения:

  • Они не учитывают стоимость доступа к памяти, которая может быть существенным узким местом.
  • Они не отражают степень параллелизма, возможного в операциях.
  • Фактическая производительность в значительной степени зависит от оптимизаций, специфичных для конкретного оборудования, и эффективности программных библиотек(cuDNN, Intel MKL).
  • Некоторые операции (например, функции активации, такие как ReLU) имеют небольшое количество FLOP, но все же могут влиять на задержку.

Поэтому для получения полной картины эффективности модели следует рассматривать FLOPs наряду с другими показателями производительности, параметрами и реальными эталонами. Такие инструменты, как Ultralytics HUB, помогут управлять моделями и отслеживать различные аспекты производительности в процессе разработки и развертывания.

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

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

Присоединяйтесь сейчас
Ссылка копируется в буфер обмена