Глоссарий

Полупрецизионный

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

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

Узнай больше

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

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

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

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

Использование половинной точности дает несколько неоспоримых преимуществ, особенно в контексте обучения и развертывания моделей глубокого обучения, таких как Ultralytics YOLO .

  • Уменьшение использования памяти: Самое непосредственное преимущество - сокращение вдвое памяти, необходимой для хранения параметров модели и промежуточных расчетов. Это крайне важно при работе с большими моделями или при развертывании на устройствах с ограниченным объемом памяти, таких как краевые устройства или мобильные платформы. Например, развертывание Ultralytics YOLO моделей на NVIDIA устройствах Jetson может значительно выиграть от уменьшения занимаемой памяти.
  • Более быстрые вычисления: Современные графические процессоры, такие как NVIDIA, хорошо оптимизированы для вычислений с половинной точностью. Операции, выполняемые с половинной точностью, могут быть значительно быстрее, чем с одинарной точностью, что приводит к более быстрому обучению и более высокой скорости вывода. Такое ускорение особенно полезно для задач обнаружения объектов в реальном времени с помощью Ultralytics YOLO .
  • Увеличение пропускной способности: Благодаря снижению требований к пропускной способности памяти и более быстрым вычислениям, полуточность может привести к увеличению пропускной способности, позволяя использовать большие объемы партий при обучении и обрабатывать больше данных за то же время.
  • Более низкое энергопотребление: Уменьшение количества обращений к памяти и более быстрые вычисления могут также привести к снижению энергопотребления, что является значительным преимуществом для мобильных и пограничных развертываний, делая полуточность идеальной для применения на таких устройствах, как Raspberry Pi, или в искусственном интеллекте в самодвижущихся автомобилях.

Соображения и проблемы

Несмотря на свои преимущества, использование полуточности не лишено сложностей.

  • Уменьшенная точность и диапазон: Самый существенный недостаток - уменьшенная точность и диапазон вычислений по сравнению с одинарной точностью. Иногда это может привести к проблемам с переполнением или недополнением, особенно в моделях, которые требуют широкого динамического диапазона значений или чувствительны к небольшим изменениям весов.
  • Потенциал снижения точности: В некоторых случаях обучение или составление выводов с половинной точностью может привести к небольшому снижению точности модели. Это связано с тем, что пониженная точность может повлиять на стабильность алгоритмов обучения и точность вычислений. Однако такие методы, как обучение со смешанной точностью, призваны смягчить эту проблему.
  • Сложность реализации: Хотя такие фреймворки, как PyTorch и TensorFlow , предлагают инструменты для обеспечения полуточности, их реализация может потребовать тщательного рассмотрения численной стабильности и потенциальных корректировок в процедурах обучения. Например, при экспорте моделей Ultralytics YOLO в такие форматы, как TensorRT для оптимизированных выводов, настройками точности нужно тщательно управлять.

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

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

  1. Обнаружение объектов в реальном времени: В таких приложениях, как автономное вождение или видеоаналитика в реальном времени, быстрое умозаключение имеет первостепенное значение. Использование полуточности в таких моделях, как Ultralytics YOLO , позволяет быстрее обрабатывать кадры, обеспечивая обнаружение объектов в реальном времени при высокой частоте кадров. Решения для систем охранной сигнализации и компьютерного зрения в умных городах часто используют полуточность для эффективной работы.
  2. Выводы по большим языковым моделям (LLM): Обслуживание больших языковых моделей, таких как GPT-4, требует значительных вычислительных ресурсов. Использование полуточности для выводов может существенно снизить вычислительные затраты и задержки, сделав LLM более доступными и отзывчивыми для таких приложений, как чат-боты и генерация текста.
  3. Развертывание краевого ИИ: Развертывание моделей ИИ на граничных устройствах, таких как мобильные телефоны, дроны или встраиваемые системы, часто требует использования полуточности, чтобы соответствовать ограничениям ограниченных вычислительных ресурсов, памяти и мощности. Запуск Ultralytics YOLO на NVIDIA Jetson или Raspberry Pi значительно выигрывает от оптимизации полуточности.

Полуточная точность против смешанной точности

Важно отличать обучение с половинной точностью от обучения со смешанной точностью. Если полуточная точность подразумевает использование 16-битного формата с плавающей точкой для всех вычислений, то обучение со смешанной точностью выборочно использует полуточность для определенных частей модели и вычислений, сохраняя одинарную точность для других, особенно для численно чувствительных операций, таких как накопление градиента. Смешанная точность направлена на то, чтобы использовать преимущества полуточной точности в скорости и при этом снизить потенциальные проблемы с точностью. Современные конвейеры обучения, включая те, что используются в Ultralytics YOLO , часто используют обучение со смешанной точностью по умолчанию для достижения оптимальной производительности и точности.

В общем, полуточность - это мощная техника для повышения эффективности ИИ и ML-моделей, особенно в средах с ограниченными ресурсами и в приложениях, требующих производительности в реальном времени. Хотя она создает определенные проблемы, их часто можно решить с помощью тщательной реализации и таких техник, как обучение со смешанной точностью, что делает полуточность ценным инструментом в арсенале специалиста по ИИ.

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