Смешанная тренировка точности
Обучение смешанной точности ускоряет обучение нейронной сети и сокращает использование памяти, выполняя большую часть математических вычислений с 16-битной плавающей запятой вместо 32-битной.
Обзор
It lets the same GPU train bigger models faster with almost no loss in accuracy.
Глубокое погружение
Традиционное обучение сохраняет веса и выполняет математические вычисления в 32-битной системе с плавающей запятой (FP32). Смешанная точность использует 16-битные форматы более низкой точности (FP16 или bfloat16) для тяжелых матричных умножений, сохраняя при этом 32-битную «основную копию» весов для стабильных обновлений. Поскольку 16-битные числа вдвое меньше, в памяти графического процессора помещается больше, а тензорные ядра обрабатывают их примерно в 2–8 раз быстрее. Загвоздка заключается в узком диапазоне FP16: крошечные градиенты могут опускаться до нуля. Стандартным решением является масштабирование потерь, которое умножает потери на большой коэффициент перед обратным распространением ошибки, чтобы небольшие градиенты оставались представимыми, а затем обратно делит их перед обновлением веса. Apex от NVIDIA и встроенный AMP (автоматическая смешанная точность) в PyTorch и TensorFlow автоматизируют это.
Техническая информация
FP16 имеет только 5 битов экспоненты, что дает небольшой динамический диапазон, который приводит к потере градиента. Bfloat16 сохраняет 8 бит экспоненты (соответствует диапазону FP32), но меньше битов мантиссы, поэтому масштабирование потерь требуется редко — основная причина, по которой Google TPU и современные графические процессоры предпочитают его. Тензорные ядра ускоряют работу, умножая 16-битные операнды, но накапливая частичные суммы в FP32, сохраняя точность там, где в противном случае ошибки суммирования могли бы усугубляться.
Стратегическое воздействие
Стоимость и бюджет
Архитектурные решения влияют на производительность и эксплуатационные расходы на протяжении многих лет.
Более четкие решения
Техническое образование помогает командам выбрать правильный стек, а не только самый новый.
Контроль качества
Лучший инженерный выбор снижает вероятность возникновения проблем с надежностью на производстве.
Будущее тренировок смешанной точности
Точность продолжает падать. Обучение FP8, поддерживаемое графическими процессорами NVIDIA Hopper и Blackwell, становится стандартом для передовых моделей, а исследования в области FP4 и форматов микромасштабирования (MXFP) продвигаются дальше. Ожидайте, что платформы будут автоматически выбирать точность каждого слоя, аппаратное обеспечение будет самостоятельно обрабатывать все более узкие форматы, а обучение с учетом квантования стирает грань между обучением с низкой точностью и логическим выводом, сокращая стоимость обучения моделей с триллионом параметров.
Реальная реализация
Torch.cuda.amp.autocast от PyTorch завершает цикл обучения, чтобы примерно вдвое сократить объем памяти и удвоить пропускную способность на одном графическом процессоре.
Обучение больших языковых моделей, таких как преобразователи в стиле GPT, в bfloat16 на TPU, чтобы избежать настройки с масштабированием потерь.
Установка большего размера пакета на потребительском графическом процессоре RTX путем переключения обучения изображений ResNet с FP32 на FP16.
Смешанная точность FP8 на графических процессорах NVIDIA H100 для сокращения затрат на предварительное обучение моделей пограничного масштаба
Риски и ограничения
Оптимизация одного теста может скрыть более широкие недостатки системы.
Затраты на инфраструктуру и техническое обслуживание часто недооцениваются.
Пробелы в безопасности и наблюдаемости могут увеличиваться по мере усложнения систем.
Дорожная карта реализации
Определите целевые показатели задержки, качества и стоимости перед внедрением.
Тестирование при реалистичной нагрузке и условиях данных.
Мониторинг прибора на наличие ошибок, дрейфа и влияния пользователя.
Перед масштабированием подготовьте пути отката и реагирования на инциденты.
Продолжайте исследовать
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the Mixed Precision Training quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Следующее руководство
Псевдомаркировка и самообучение
Часто задаваемые вопросы
What is Mixed Precision Training?
Обучение смешанной точности ускоряет обучение нейронной сети и сокращает использование памяти, выполняя большую часть математических вычислений с 16-битной плавающей запятой вместо 32-битной. Это позволяет тому же графическому процессору быстрее обучать более крупные модели практически без потери точности.
Почему при обучении смешанной точности сохраняется 32-битная «мастер-копия» весов?
Обновления веса часто очень малы; накопление их в 16-битном формате приведет к потере точности, поэтому мастер-копия с полной точностью сохраняет точность обновлений.
Какую проблему решает масштабирование потерь при обучении FP16?
FP16 имеет ограниченный динамический диапазон, поэтому небольшие градиенты могут округляться до нуля; умножение потерь до обратного распространения делает их репрезентативными.
Какое преимущество имеет bfloat16 перед FP16?
Bfloat16 сохраняет 8 бит экспоненты, как и FP32, поэтому его динамический диапазон велик, а потеря градиента встречается редко.
Как тензорные ядра сохраняют точность при использовании 16-битных входных данных?
Тензорные ядра умножают 16-битные операнды, но накапливают 32-битные, предотвращая накопление ошибок суммирования.
В чем основное преимущество использования 16-битных значений вместо 32-битных во время обучения?
Числа половинного размера помещают больше данных в память графического процессора и позволяют специализированному оборудованию обрабатывать матричную математику в несколько раз быстрее.