Mixed Precision
Узнай, как смешанная точность ускоряет обучение и снижает требования к памяти для моделей, таких как Ultralytics YOLO26. Изучи преимущества FP16 и FP32 для более быстрого получения результатов ИИ.
Смешанная точность — это ключевой метод оптимизации моделей, который используется для ускорения обучения моделей глубокого обучения и снижения потребления памяти. Благодаря стратегическому сочетанию разных числовых форматов — обычно 16- и 32-битных чисел с плавающей точкой — этот метод позволяет алгоритмам машинного обучения выполнять вычисления быстрее без ущерба для итоговой точности модели. Смешанная точность стала стандартной практикой в современной разработке ИИ, особенно для ресурсоёмких задач, таких как обучение архитектуры YOLO26 на огромных наборах данных.
Как работает смешанная точность#
В традиционных рабочих процессах глубокого обучения модели обычно выполняют вычисления в формате чисел с плавающей точкой одинарной точности (FP32). Каждое число в FP32 требует 32 бита памяти. Хотя этот формат обеспечивает высокую точность, он может требовать значительных вычислительных ресурсов и большого объёма памяти.
Смешанная точность предполагает использование полуточности (FP16), для которой требуется всего 16 бит. Однако использование только FP16 может привести к численной нестабильности из-за меньшего динамического диапазона. Чтобы решить эту проблему, методы смешанной точности хранят «основную копию» весов модели в FP32 для обеспечения стабильности, а FP16 используют для наиболее ресурсоёмких математических операций, таких как свёртки и умножение матриц.
Обычно процесс включает три основных этапа:
-
Приведение типов: Преобразование входных данных и активаций модели в FP16 для ускорения выполнения на совместимом оборудовании, например тензорных ядрах NVIDIA.
-
Масштабирование потерь: Увеличение значений функции потерь, чтобы предотвратить «потерю разрядности», при которой небольшие обновления градиентов становятся нулями в FP16.
-
Накопление: Выполнение арифметических операций в FP16 с накоплением результатов в FP32 для сохранения необходимой информации перед обновлением основных весов.
Преимущества при обучении ИИ#
Использование смешанной точности даёт разработчикам и исследователям значительные преимущества при эффективном использовании вычислительных ресурсов:
- Более высокая скорость обучения: Операции в FP16 требуют меньшей пропускной способности памяти и быстрее выполняются на современных GPU. Это может значительно сократить время, необходимое для одной эпохи.
- Снижение потребления памяти: Поскольку тензоры FP16 занимают вдвое меньше памяти, чем тензоры FP32, разработчики фактически могут вдвое увеличить размер пакета. Большие размеры пакетов часто обеспечивают более стабильные оценки градиентов и более быструю сходимость.
- Энергоэффективность: Снижение вычислительной нагрузки приводит к уменьшению энергопотребления, что особенно важно для крупномасштабных операций обучения в облаке.
Практические применения#
Смешанная точность используется в различных отраслях для эффективной работы со сложными моделями и большими наборами данных.
Автономное вождение#
При разработке автономных транспортных средств инженерам необходимо обучать модели обнаружения объектов на миллионах видеокадров высокого разрешения. Использование смешанной точности позволяет эффективно обучать современные модели, такие как YOLO26. Уменьшенный объём памяти, необходимый для модели, позволяет обрабатывать входные данные более высокого разрешения, что критически важно для обнаружения небольших объектов, например дорожных знаков или пешеходов на расстоянии.
Анализ медицинских изображений#
Анализ медицинских изображений часто связан с трёхмерными объёмными данными, полученными при МРТ- или КТ-сканировании, которые требуют чрезвычайно большого объёма памяти. Обучение моделей сегментации на таких данных с полной точностью FP32 часто приводит к ошибкам «нехватки памяти» (OOM). Смешанная точность позволяет исследователям размещать такие ресурсоёмкие модели в памяти GPU, способствуя разработке ИИ, который помогает врачам раньше диагностировать заболевания.
Реализация смешанной точности с Ultralytics#
Современные фреймворки, такие как PyTorch, обычно автоматически справляются со сложностями смешанной точности благодаря функции автоматической смешанной точности (AMP). Пакет ultralytics по умолчанию включает AMP во время обучения, обеспечивая оптимальную производительность.
Ниже приведён краткий пример запуска обучения с Ultralytics YOLO26, где смешанная точность активна по умолчанию и управляется с помощью аргумента amp:
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model on the COCO8 dataset
# amp=True is the default setting for mixed precision training
results = model.train(data="coco8.yaml", epochs=5, imgsz=640, amp=True)Смешанная точность и связанные понятия#
Чтобы избежать путаницы, полезно отличать смешанную точность от похожих терминов в глоссарии:
- Квантизация моделей: В то время как смешанная точность использует числа с плавающей точкой более низкой точности (FP16) во время обучения, квантизация обычно преобразует веса в целые числа (например, INT8) после обучения для развёртывания. Квантизация в первую очередь направлена на снижение задержки инференса на периферийных устройствах, тогда как смешанная точность ориентирована на скорость и стабильность обучения.
- Полуточность: Этот термин относится непосредственно к формату данных FP16. Смешанная точность — это методика совместного использования FP16 и FP32. Использование только полуточности без «смешанной» основной копии в FP32 часто приводит к тому, что модели не сходятся из-за численных ошибок.
Заключение#
Смешанная точность преобразила процесс обучения нейронных сетей, став критически важным фактором развития масштабных фундаментальных моделей и систем компьютерного зрения, которые мы видим сегодня. Уравновешивая потребность в математической точности с ограничениями скорости оборудования и объёма памяти, она позволяет разработчикам быстрее выполнять итерации и создавать более функциональные решения на основе ИИ.
Тем, кто хочет удобно управлять наборами данных и обучать оптимизированные модели, платформа Ultralytics предлагает комплексную среду, которая автоматически использует эти современные методы оптимизации.









