На ранних этапах развития нейросетей вычисления почти всегда выполнялись в одном фиксированном формате, сначала это был FP32, затем более лёгкий и быстрый FP16. Такой подход казался универсальным: один формат —> одна модель —> одно поведение.
Однако с ростом масштабов моделей, особенно трансформеров, стало очевидно: фиксированная точность мешает добиться баланса между производительностью, экономией памяти и сохранением качества. Большие языковые модели, такие как GPT и Qwen, требуют сотен гигабайт видеопамяти и колоссальных вычислительных ресурсов, поэтому каждый бит в представлении числа стал иметь значение.
На этом фоне появился инновационный подход: адаптивная точность, при которой формат представления данных может динамически меняться в зависимости от задачи, фазы инференса или чувствительности конкретного слоя. Именно этот принцип лежит в основе форматов FP4, FP8 и FP16, которые сегодня становятся стандартом для ускорения и сжатия нейросетей.
В этой статье мы разберём, как устроены эти адаптивные форматы, почему они важны и как используются в современных ИИ-моделях на примере GPT-OSS от OpenAI и Qwen от Alibaba.
Какие форматы используются в современных моделях
Современные языковые модели всё чаще отходят от универсального формата вычислений. Вместо одной фиксированной точности используется набор числовых представлений, каждый из которых решает свою задачу: от ускорения до агрессивного сжатия. Рассмотрим три формата, которые определяют облик современных нейросетей.
FP16 и BF16 — прежний стандарт
FP16 и его более устойчивый к перепадам значений вариант BF16 были основой большинства моделей последних лет. Они обеспечивают хороший баланс между скоростью и точностью и идеально подходят для обучения и инференса на современных GPU. Однако при работе с языковыми моделями масштабом в десятки и сотни миллиардов параметров этот формат становится избыточным. FP16 занимает слишком много памяти, ограничивая возможности запуска на одном ускорителе.
На схеме показано, как распределяются биты в числовых форматах FP32, TF32, FP16 и BF16: 1 бит знака, 8/5 бит экспоненты и 23/10/7 бит мантиссы.
FP8 — новый мейнстрим
Формат FP8 был представлен с выходом архитектуры NVIDIA Hopper. Он стал следующим логичным шагом в компромиссе между размером числа и его точностью. Существует два основных варианта FP8: E4M3 и E5M2. Первый предоставляет более широкий динамический диапазон, второй же более точное представление чисел при ограниченном диапазоне. Оба формата активно применяются как в обучении, так и в инференсе. FP8 уже поддерживается в трансформерах, особенно при использовании Transformer Engine на GPU с архитектурой Hopper и выше (начиная с H100).
FP4 — экспериментальный, но многообещающий
FP4 самый компактный из всех адаптивных форматов. Он позволяет запускать модели с числом параметров более 100 миллиардов на одном GPU, что ещё недавно считалось невозможным. При этом формат требует аппаратной поддержки, которая появилась только с выходом архитектуры Blackwell. FP4 особенно хорошо работает в сочетании с Mixture-of-Experts (о котором мы рассказывали в этой статье) и другими адаптивными архитектурами. Несмотря на свою молодость, этот формат уже демонстрирует высокую эффективность при минимальных потерях точности.
Что такое адаптивные форматы (и зачем они нужны)
Адаптивные форматы позволяют гибко управлять точностью вычислений в зависимости от задачи, особенностей слоя и чувствительности к ошибкам. Вместо одного универсального числового формата, как это было раньше, современные модели используют несколько вариантов представления данных одновременно. Такой подход помогает сократить объём памяти и ускорить вычисления без ощутимой потери качества.
Например, для линейных слоёв подходит компактный формат FP4. Большинство весов в этих слоях устойчивы к пониженной точности. С другой стороны, нормализации чувствительны к числовым искажением, поэтому требуют более надёжных форматов, таких как FP8 или FP16. Для вычислений, где особенно важна стабильность, например в softmax или логитах, может понадобиться FP16 или даже FP32. Адаптация точности под конкретную операцию позволяет использовать ресурсы более эффективно и подстраивать модель под особенности оборудования.
Пример: GPT-OSS и MoE-веса
В модели GPT-OSS от OpenAI часть весов хранится в формате FP4, а точнее в его варианте под названием MXFP4 (который мы тоже разбирали в этой статье). Этот формат был разработан специально для компактного хранения параметров в больших языковых моделях. В первую очередь, это касается весов экспертов в архитектуре Mixture of Experts, на которых сосредоточена основная масса параметров. Остальная часть модели, включая управляющие и выходные блоки, продолжает работать в FP16 или FP32. Благодаря такому распределению удаётся запускать модель с 117 миллиардами параметров на одном GPU с 80 гигабайтами видеопамяти. Это стало возможным только за счёт перехода к адаптивной точности.
Пример: Qwen3 и FP8-трассировка
В ряде версий моделей Qwen3 используется другой подход. Некоторые слои, в том числе infill и attention, обрабатываются в формате FP8 с разметкой E4M3. Это даёт ощутимый прирост скорости, особенно в многопоточном режиме, при этом практически не влияя на качество генерации. Такой способ подчёркивает, что управление точностью больше не ограничивается настройками в конце обучения. Это становится частью общей архитектуры и важным инструментом при проектировании эффективных ИИ-систем.
Как это реализуется технически
Переход к адаптивной точности требует не только новых форматов данных, но и полной поддержки на всех уровнях, от фреймворков до железа. Чтобы модель могла эффективно использовать разные форматы в разных частях, необходимо, чтобы программная и аппаратная инфраструктура это позволяла.
Механизм переключения точности
Современные фреймворки машинного обучения умеют автоматически переключать точность на лету. Эта возможность называется автоматическим кастингом. Например, при инференсе часть операции может выполняться в FP16, а другая в FP8 или FP4, в зависимости от заранее заданной политики. Такой механизм уже реализован в PyTorch и JAX, а также активно используется в средах оптимизации инференса, таких как TensorRT. Именно эти инструменты позволяют адаптивным форматам работать прозрачно для разработчика и эффективно с точки зрения производительности.
Поддержка в аппаратуре
Для полноценной работы адаптивных форматов требуется соответствующая поддержка на уровне железа. Архитектуры NVIDIA Hopper и Blackwell включают тензорные ядра, которые обрабатывают FP4, FP8 и FP16 напрямую, без эмуляции (Hopper только FP16 и FP8). Это делает возможным использование этих форматов не только для хранения, но и для активных вычислений.
Видеокарта NVIDIA Hopper H100 - именно с неё началась аппаратная поддержка адаптивных форматов.
У AMD до недавнего ситуация была куда скромнее. Однако их новые ускорители поддерживают все актуальные форматы, включая FP4 и FP8.
Кроме самого железа, требуется и поддержка со стороны компиляторов и CUDA-ядер. Адаптивные форматы работают эффективно только тогда, когда фреймворк и компилятор могут правильно распределить точность по слоям, оптимизировать соответствующие kernel-функции и избегать дорогостоящих преобразований между форматами во время исполнения.
Преимущества адаптивных форматов
Использование адаптивных числовых форматов даёт сразу несколько ощутимых преимуществ при работе с крупными нейросетями. Главное из них это значительное ускорение инференса. На видеокартах с архитектурой Hopper и Blackwell время выполнения сокращается в два, а иногда и в три раза по сравнению с моделями, использующими только FP16. Это достигается за счёт того, что более лёгкие форматы, такие как FP4 или FP8, требуют меньше операций и быстрее обрабатываются на тензорных ядрах нового поколения.
На схеме показано, как распределяются биты в числовых форматах FP4 (E2M1), FP8 (E4M3 и E5M2) и FP16: 1 бит знака, 2/4/5 бит экспоненты и 1/3/10 бит мантиссы.
Второе преимущество: сокращение объёма памяти. Переход на компактные форматы позволяет снизить потребление видеопамяти на 50–70 процентов без критической потери точности. Это особенно важно для запуска моделей на локальных машинах, где ресурсы ограничены.
Ещё один важный плюс: возможность гибко настраивать компромисс между скоростью и точностью. Разработчик может выбрать, какие части модели можно агрессивно сжать, а какие оставить в более надёжных форматах. Такой подход позволяет балансировать качество генерации и производительность в зависимости от задач.
Наконец, адаптивная точность открывает путь к масштабируемости. Теперь крупные модели помещаются в память одного GPU и не требуют распределённых вычислений. Благодаря снижению объёма и более эффективному исполнению, их можно запускать даже на одиночных ускорителях, что упрощает экспериментирование и снижает технический порог.
Почему это стало возможно только сейчас
Идея адаптивной точности в нейросетях не нова, но долгое время она оставалась теоретической. Основное ограничение заключалось в отсутствии аппаратной поддержки. Форматы вроде FP4 и FP8 просто не могли эффективно обрабатываться на прежних поколениях GPU. Все вычисления приходилось выполнять либо в FP16, либо в FP32, что сводило потенциальную выгоду от более компактных представлений на нет.
Кроме того, фреймворки машинного обучения не были готовы к одновременному использованию разных числовых форматов. Инфраструктура ожидала, что все веса и операции будут приведены к одному типу. Любая попытка вручную смешивать точности приводила к дополнительным затратам на преобразование данных и к нестабильности при обучении или инференсе.
Лишь недавно ситуация начала меняться. Появились архитектуры, такие как NVIDIA Hopper и Blackwell, которые изначально проектировались с учётом поддержки низкоразрядных форматов. Вместе с ними развивались и фреймворки. PyTorch, TensorRT и JAX научились автоматически определять, какая точность нужна в каждом конкретном случае, и выполнять переходы между форматами с минимальными издержками. Появились инструменты, которые позволяют профилировать модель, измерять чувствительность к ошибкам и на этой основе подбирать оптимальное распределение точности по слоям.
Всё это сделало возможным то, что ещё несколько лет назад казалось слишком сложным: обучение и инференс в условиях смешанной точности с минимальной потерей качества и максимальным ускорением.
Заключение: гибкая точность — новая норма
Современные нейросетевые модели больше не ограничиваются одним фиксированным числовым форматом. Вместо этого они переходят к адаптивной точности, где каждый блок, слой или операция может использовать подходящий уровень представления данных. Такой подход помогает ускорить вычисления, уменьшить объём памяти и адаптировать модель под конкретные задачи и ресурсы.
Использование форматов FP4, FP8 и FP16 больше не рассматривается как альтернатива, а становится частью стандартной практики. Эти форматы не конкурируют между собой, а работают вместе. Их можно комбинировать внутри одной модели, выбирая, где допустимо сжать, а где необходима высокая точность.
Раньше такой уровень гибкости был невозможен. Не хватало ни аппаратной поддержки, ни софтверных инструментов. Сегодня ситуация изменилась. Аппаратные ускорители научились обрабатывать разные форматы напрямую, а фреймворки научились распределять точность автоматически. Идея, которая долгое время оставалась концепцией, теперь реализуется в реальных продуктах. Гибкая точность перестала быть экспериментом и стала новой нормой в работе с масштабными ИИ.
Продолжная использовать наш сайт, вы даете согласие на использование файлов Cookie, пользовательских данных (IP-адрес, вид операционной системы, тип браузера, сведения о местоположении, источник, откуда пришел на сайт пользователь, с какого сайта или по какой рекламе, какие страницы
открывает и на какие страницы нажимает пользователь) в целях функционирования сайта, проведения статистических исследований и обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.