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

Половинная точность

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

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

Механика полуточности

Стандарт IEEE 754 определяет структуру чисел с плавающей точкой В стандарте FP16 1 бит отводится под знак, 5 бит - под экспоненту и 10 бит - под дробь (мантиссу). Такое компактное представление контрастирует с FP32, в котором для экспоненты используется 8 бит, а для дроби - 23. На сайте Основное преимущество использования FP16 в компьютерном зрении и других задачах искусственного интеллекта является ускорение математических операций. Современные аппаратные ускорители, такие как NVIDIA Tensor Cores, специально разработаны для выполнения матричных умножений с половинной точностью на значительно более высоких скоростях, чем операции с одинарной точностью.

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

Приложения реального мира в искусственном интеллекте

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

  1. Развертывание краевого ИИ: При развертывании моделей на При развертывании моделей на краевых устройствах ИИ, таких как беспилотники, интеллектуальные камеры или мобильные телефоны телефоны, память и время автономной работы являются ограничениями премиум-класса. Преобразование такой модели, как YOLO11 в FP16 уменьшает размер модели примерно на 50 %, что позволяет ей поместиться в ограниченную оперативную память встраиваемых систем, таких как NVIDIA Jetson или Raspberry Pi. Это позволяет ускорить задержку выводов, что позволяет в реальном времени в таких приложениях, как автономная навигация.
  2. Обучение крупномасштабным моделям: Обучение массивных архитектур, таких как большие языковые модели (LLM) или модели технического зрения, требует обработки терабайтов данных. Использование FP16 позволяет центрам обработки данных удвоить удвоить размер пакета, помещающегося в памятиGPU , что значительно сокращает циклы обучения. Такая эффективность крайне важна для быстрого проведения экспериментов и итераций в рамках следующего поколения архитектуры следующего поколения, такой как грядущая YOLO26.

Реализация полуточности с помощью Ultralytics

Такие фреймворки, как PyTorch и такие библиотеки, как ultralytics позволяют легко использовать полуточность. Следующий пример демонстрирует, как экспортировать модель YOLO11 в TensorRT формат с использованием FP16, что является распространенная практика для оптимизации скорости вычислений на графических процессорах NVIDIA .

from ultralytics import YOLO

# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TensorRT engine with half-precision enabled
# The 'half=True' argument ensures weights are converted to FP16
model.export(format="engine", half=True)

Различение смежных терминов

Для понимания полуточности необходимо отличать ее от связанных с ней методов оптимизации, которые можно найти в глоссарии:

  • Полуточная точность и смешанная точность: В то время как полуточная точность относится именно к 16-битному формату данных, смешанная точность - это техника обучения, которая сочетает FP16 для тяжелых вычислений и FP32 для чувствительных накоплений (например, обновления веса), чтобы предотвратить потерю информации.
  • Полупрецизионность против модельной квантизации. Квантование по образцу: Полупрецизионность сохраняет представление с плавающей точкой, просто уменьшая ширину битов. Квантование обычно преобразует веса в целочисленные форматы, такие как INT8 (8-битные целые числа), что обеспечивает еще большее сжатие и скорость. но требует тщательной калибровки, например Обучение с учетом квантования (QAT) во избежание снижения точности.
  • Полупрецизионность по сравнению с Bfloat16: Bfloat16 (Brain Floating Point) - это альтернативный 16-битный формат, часто используемый в TPU. Он сохраняет 8-битную экспоненту FP32 для поддержания динамического диапазона, но жертвует точностью дробей, что делает его в целом более стабильным для обучения, чем стандартный IEEE FP16, не требуя масштабирования с потерями.

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

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

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

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