Глоссарий

Смешанная точность

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

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

Обучение со смешанной точностью - это техника, используемая в глубоком обучении для ускорения вычислений и снижения требований к памяти без существенного снижения производительности модели. Это достигается за счет стратегического использования различных форматов точности вычислений - в основном 16-битных с плавающей точкой (FP16 или половинная точность) и 32-битных с плавающей точкой (FP32 или одинарная точность) - для различных частей модели во время обучения и вывода. Такой подход позволяет сбалансировать скорость и эффективность использования памяти при более низкой точности с численной стабильностью и точностью, обеспечиваемыми более высокой точностью.

Понимание точности чисел

Модели глубокого обучения традиционно опираются на стандарт IEEE 754 с плавающей точкой одинарной точности (FP32) для хранения весов, активаций и градиентов. FP32 предлагает широкий динамический диапазон и точность, что делает его надежным для сложных вычислений. Однако операции с FP32 требуют значительной вычислительной мощности и пропускной способности памяти. Форматы с более низкой точностью, например FP16, используют всего 16 бит, вдвое сокращая объем памяти и зачастую позволяя гораздо быстрее выполнять вычисления на совместимом оборудовании, например на современных GPU, оснащенных Tensor ядрамиNVIDIA .

Как работает смешанная точность

Обучение со смешанной точностью разумно сочетает FP16 и FP32. Основная идея заключается в том, чтобы выполнять вычислительно интенсивные операции, такие как свертки и матричные умножения внутри слоев модели, используя более быстрый формат FP16. Однако некоторые операции чувствительны к уменьшенному диапазону и точности FP16. Чтобы сохранить стабильность и точность модели, критические части процесса обучения, такие как расчет потерь и обновление градиента, часто выполняются в более надежном формате FP32. Такие техники, как динамическое масштабирование потерь, используются для предотвращения проблем с численным недополнением или переполнением, когда градиенты становятся слишком маленькими или слишком большими для представления в FP16. Такие фреймворки, как PyTorch (через Automatic Mixed Precision - AMP) и TensorFlow (через tf.keras.mixed_precision API), предоставляют автоматизированную поддержку для реализации обучения со смешанной точностью.

Преимущества смешанной точности

Внедрение смешанной точности дает несколько ключевых преимуществ:

  • Более быстрое обучение: Операции FP16 могут быть значительно быстрее на поддерживаемом оборудовании, что приводит к сокращению времени обучения.
  • Уменьшение потребления памяти: Хранение весов и активаций модели в FP16 вдвое сокращает потребность в памяти, что позволяет использовать более крупные модели или увеличивать размер партии, что может улучшить динамику обучения.
  • Энергоэффективность: Более быстрые вычисления и уменьшение количества перемещений данных приводят к снижению энергопотребления во время обучения и вывода.
  • Точность сохраняется: При правильной реализации таких приемов, как масштабирование потерь, смешанная точность обычно достигает точности, сравнимой с полным обучением на FP32. Более подробно об оптимизации обучения читай в этих советах по обучению моделей.

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

Смешанная точность широко используется в различных областях ИИ:

  1. Компьютерное зрение: Самые современные модели обнаружения объектов, включая Ultralytics YOLO такие модели, как YOLOv8 и YOLO11часто используют смешанную точность при обучении. Это позволяет им быстрее обучаться и работать с большими наборами данных, такими как COCO или Objects365, что в конечном итоге обеспечивает эффективное развертывание на различных платформах - от облачных серверов до пограничных устройств, таких как NVIDIA Jetson.
  2. Обработка естественного языка (NLP): Обучение массивных больших языковых моделей (LLM), таких как GPT-3 и BERT, требует больших вычислительных затрат. Обучение со смешанной точностью очень важно для управления требованиями к памяти и вычислениям, что делает возможным обучение этих моделей для таких задач, как генерация текста, машинный перевод и анализ настроения.

Соображения и связанные с ними концепции

Несмотря на то, что это очень полезно, для успешного внедрения смешанной точности требуется:

  • Аппаратная поддержка: Для оптимального ускорения требуется аппаратное обеспечение, специально разработанное для ускоренных вычислений FP16 (например, NVIDIA Volta, Turing, Ampere или более новые GPU).
  • Числовая стабильность: Чтобы избежать проблем, связанных с ограниченным диапазоном FP16, необходима тщательная обработка, часто с помощью автоматизированных рамочных инструментов и масштабирования потерь.
  • Интеграция с фреймворками: Используй встроенную поддержку фреймворков глубокого обучения, таких как PyTorch или TensorFlow упрощает реализацию.

Важно отличать обучение со смешанной точностью от квантования модели. Хотя и то, и другое подразумевает использование более низкой точности, квантование обычно преобразует модели в еще более низкие битовые форматы (например, INT8), главным образом для оптимизации скорости вывода и уменьшения размера модели для развертывания на устройствах с ограниченными ресурсами, часто после первоначального обучения. Смешанная точность направлена на ускорение самого процесса обучения за счет сочетания FP16 и FP32.

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

Читать полностью