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

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

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

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

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

Основная идея смешанной точности заключается в использовании скорости и эффективности памяти типов данных с более низкой точностью. Современное оборудование, особенно графические процессоры NVIDIA с Tensor Cores, может выполнять операции с 16-битными числами намного быстрее, чем с 32-битными числами. Процесс обычно включает в себя три ключевых этапа:

  1. Приведение к более низкой точности: Большинство операций модели, особенно ресурсоемкие матричные умножения и свертки, выполняются с использованием полуточной арифметики (FP16). Это уменьшает объем занимаемой памяти и ускоряет вычисления.
  2. Поддержание основной копии весов: Для поддержания точности и стабильности модели основная копия весов модели хранится в стандартном 32-битном формате с плавающей запятой (FP32). Эта основная копия используется для накопления градиентов и обновления весов в процессе обучения.
  3. Масштабирование потерь: Чтобы предотвратить численное переполнение (когда небольшие значения градиента становятся равными нулю при преобразовании в FP16), используется метод, называемый масштабированием потерь. Он включает в себя умножение потерь на коэффициент масштабирования перед обратным распространением, чтобы сохранить значения градиента в пределах представимого диапазона для FP16. Перед обновлением весов градиенты масштабируются обратно.

Фреймворки глубокого обучения, такие как PyTorch и TensorFlow, имеют встроенную поддержку автоматического смешанного формата, что упрощает их реализацию.

Приложения и примеры

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

  • Обучение больших языковых моделей (LLM): Модели, такие как GPT-3 и BERT, имеют миллиарды параметров. Обучение их, используя только FP32, потребовало бы непомерного объема памяти GPU и времени. Смешанная точность делает обучение таких базовых моделей возможным за счет значительного сокращения потребностей в памяти и ускорения вычислений. Это позволяет исследователям быстрее выполнять итерации и создавать еще более мощные языковые модели.
  • Ускорение моделей компьютерного зрения: В компьютерном зрении (CV) смешанная точность ускоряет обучение сложных моделей, таких как сверточные нейронные сети (CNN) и Vision Transformers (ViTs). Для таких задач, как обнаружение объектов и сегментация изображений, модели Ultralytics YOLO, включая последнюю Ultralytics YOLO11, используют смешанную точность для более быстрой сходимости. Это особенно полезно для настройки гиперпараметров и быстрой разработки в рамках таких платформ, как Ultralytics HUB. Более быстрое обучение также облегчает более быстрое экспериментирование на больших наборах данных, таких как COCO. Смешанная точность также может использоваться во время вывода для ускорения развертывания модели, особенно при экспорте в такие форматы, как TensorRT, который в значительной степени оптимизирован для более низкой точности.

Связанные понятия

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

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

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

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

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