В эпоху, когда контекстные окна больших языковых моделей (LLM) стремительно расширяются, эффективность передачи и обработки весовых коэффициентов становится критическим фактором производительности. Традиционные подходы к оптимизации часто упираются в ограничения памяти и пропускной способности. Здесь на сцену выходит квантование — техника сжатия весов модели в более компактный формат данных. Одним из самых инновационных решений в этой области является формат NVFP4, 4-битный плавающий формат, представленный вместе с архитектурой NVIDIA Blackwell. Именно этот подход лег в основу нового чекпоинта Nemotron 3 Ultra NVFP4, который демонстрирует впечатляющие результаты: до 5,9-кратного увеличения пропускной способности вывода (inference throughput) на задачах, требующих интенсивного декодирования, по сравнению с моделью GLM-5.1 754B FP4, при этом сохраняя точность, сопоставимую с форматом BF16.
Хотя преимущества производительности NVFP4 хорошо известны широкому сообществу разработчиков, сам процесс создания высококачественного чекпоинта в этом формате остается «черным ящиком». В этой статье мы подробно разберем, как команда NVIDIA использовала NVIDIA Model Optimizer для квантования модели Nemotron 3 Ultra (550B параметров) до NVFP4. Мы не просто перечислим шаги, но и углубимся в технические детали, объясним выбор стратегий масштабирования и покажем, как разработчики могут применить эти знания для оптимизации собственных моделей.
01Архитектура чекпоинта Nemotron 3 Ultra NVFP4
Существует распространенное заблуждение, что все слои в чекпоинте NVFP4 хранятся в едином 4-битном формате. На практике это не так. Как показывает таблица 1, различные слои модели квантуются до разных форматов точности. Этот выбор обусловлен чувствительностью каждого конкретного слоя к квантованию и его влиянием на общую точность модели. Такой гибридный подход позволяет достичь значительного сжатия: после квантования модель Nemotron 3 Ultra уменьшается с 1121 ГБ в формате BF16 до 352,3 ГБ, что дает сокращение объема в 3,2 раза. Это существенно снижает требования к аппаратному обеспечению, фактически уменьшая «аппаратный след» модели вдвое.
Ключевой инновацией чекпоинта Nemotron 3 Ultra NVFP4 является его универсальность: одна и та же модель может работать как на архитектуре NVIDIA Hopper, так и на Blackwell. Это достигается за счет динамического преобразования формата весов в зависимости от оборудования. На Hopper, где отсутствуют нативные тензорные ядра для FP4, фреймворк обслуживания автоматически переключается на формат W4A16 (4-битные веса, 16-битные активации). На Blackwell используется нативный формат W4A4. Выбор W4A16 для Hopper вместо более популярного W8A8 обусловлен необходимостью уместить в память механизм Multi-Token Prediction (MTP), который требует значительных ресурсов. W4A16 обеспечивает лучшее соотношение производительности и потребления памяти для этой задачи.
Гибридная точность слоев
Давайте рассмотрим, как именно распределена точность по слоям модели. Встраивающие слои (Embedding), слои классификации вывода и слои MTP остаются в формате BF16, так как они наиболее чувствительны к потере данных. Эксперты маршрутизации MoE (Mixture of Experts) квантуются до NVFP4, что дает максимальную экономию. Общие эксперты MoE, слои миксера Mamba и кэш KV хранятся в FP8. Это тонкая настройка позволяет сохранить целостность критически важных частей модели, одновременно агрессивно сжимая те, которые лучше переносят низкую точность.

02Поиск оптимального чекпоинта NVFP4
Создание оптимального чекпоинта NVFP4 — это итеративный процесс, требующий глубокого понимания математики квантования. Главная проблема при квантовании до FP4 заключается в том, что существует всего 8 положительных значений, которые можно представить: [0, 0.5, 1, 1.5, 2, 3, 4 и 6]. Задача состоит в том, чтобы правильно отобразить исходный диапазон весов на эти ограниченные значения. Это управление осуществляется через параметр scale (масштаб) — множитель, определяющий granularity (зернистость) представления. Неправильный выбор масштаба приводит либо к потере точности на малых значениях, либо к обрезке больших значений, что негативно сказывается на качестве модели.
Проблема масштабирования Max (Absmax)
Самый простой подход — Max scaling (или absmax), при котором масштаб устанавливается так, чтобы наибольшее значение в блоке весов соответствовало максимальному представимому значению FP4. Однако этот метод крайне чувствителен к выбросам (outliers). Если в блоке есть одно большое аномальное значение, масштаб будет задан им, что приведет к сжатию всех остальных значений в узкий диапазон. В результате многие веса могут быть округлены до нуля, что вызывает потерю информации и снижение точности модели.

Именно с этой проблемой столкнулась команда при работе с предыдущей моделью Nemotron 3 Super. Наивное применение absmax NVFP4 PTQ (Post-Training Quantization) оставило заметный разрыв в точности. Чтобы решить эту проблему, исследователи оценили ряд альтернативных стратегий калибровки, которые не позволяют единичному выбросу диктовать масштаб для всего блока. Среди них были масштабирование на основе среднеквадратичной ошибки (MSE) и метод GPTQ, использующий информацию второго порядка.
Масштабирование на основе MSE
Альтернативный подход — Mean Squared Error (MSE) scaling — ищет масштаб, который минимизирует среднюю ошибку реконструкции для всего блока. Логично предположить, что меньшая MSE должна приводить к лучшей точности модели. Однако на практике это не всегда так. В экспериментах с Nemotron 3 Ultra калибровка по MSE снизила ошибку весов на 27,1% по сравнению с другим методом, но не дала последовательного улучшения в downstream-задачах. Это связано с тем, что MSE усредняет ошибки, не учитывая специфику распределения весов в сетке FP4.

Решение: Four-over-Six Scaling
Для Nemotron 3 Ultra команда разработала новый метод масштабирования, который учитывает разрывы в сетке значений FP4. Вспомним, что после значения 4 следующее доступное значение — 6. Любой вес, попадающий в этот промежуток, будет агрессивно округлен либо до 4, либо до 6, что может привести к ошибке более 13% для одного значения. Метод Four-over-Six решает эту проблему, позволяя каждому блоку весов независимо выбирать между масштабированием до максимума M=4 или M=6. Выбирается тот вариант, который минимизирует ошибку реконструкции для конкретного блока.

Этот метод работает с весами и использует стандартный NVFP4 для активаций. Когда M=6 выигрывает (например, в блоке [2, 4, 5.9, 6]), значения 2, 4 и 6 отображаются точно, а 5.9 округляется до 6 с минимальной ошибкой. Когда M=4 выигрывает (например, в блоке [10, 20, 30, 40]), масштабирование до M=6 привело бы к ошибке 13% для значения 30, тогда как масштабирование до M=4 отображает все значения точно на сетку 1, 2, 3, 4. Использование Four-over-Six для весов маршрутизируемых экспертов в Nemotron 3 Ultra повысило глобальный масштаб весов в 1,75 раза и снизило медианную ошибку MSE реконструкции на 16,4% по сравнению со стандартной калибровкой. Это дало лучший результат в downstream-задачах: 98,5% восстановления точности относительно BF16.
03Эффективные биты на элемент (Bits-per-Element)
Понятие эффективных битов на элемент (BPE) описывает среднее количество бит, необходимых для хранения всех весов модели. Модель со всеми весами BF16 использует 16 BPE, а модель с половиной FP8 и половиной BF16 — 12 BPE. NVFP4 добавляет накладные расходы на масштабирование (per-block и per-tensor), что снижает минимальное значение до 4,5 BPE. Цель оптимизации — найти конфигурацию, которая снижает эффективный BPE до минимума без ущерба для точности.
Поскольку слои модели имеют разную устойчивость к квантованию, некоторые из них должны оставаться в более высокой точности, что повышает общий BPE. Перебор всех возможных комбинаций невозможен из-за экспоненциального роста вариантов. Здесь на помощь приходит функция mtq.auto_quantize в NVIDIA Model Optimizer. Она позволяет задать целевой бюджет бит (например, 4.8 BPE) и список кандидатов форматов. Алгоритм оценивает чувствительность каждого слоя и назначает оптимальный формат, сохраняя чувствительные слои в высокой точности.

Для Nemotron 3 Ultra был проведен поиск по пяти точкам от 4.85 до 7.19 BPE. Ключевым индикатором стала задача AA-LCR (Long Context Retrieval). Переход с 4.85 до 5.03 BPE улучшил результат на 2,4 балла, после чего прирост замедлился. Таким образом, 5.03 BPE стало «золотой серединой» для этой модели, обеспечивая оптимальный баланс между размером и интеллектом.
04Практическая реализация с NVIDIA Model Optimizer
В отличие от Nemotron 3 Super (120B), Nemotron 3 Ultra (550B) требует значительных вычислительных ресурсов для квантования. Поэтому NVIDIA Model Optimizer поддерживает два пути: через Hugging Face Transformers и через Megatron-LM. Второй путь значительно быстрее благодаря распараллеливанию.
При использовании Megatron-LM на 16 GPU B300, время загрузки и калибровки сокращается с 85 минут до 9 минут. Общий процесс квантования занимает всего 45 минут против 120 минут в однопоточном режиме. Калибровка выполняется на датасете nemotron-post-training-dataset-v2, а политика точности полностью управляется конфигурацией.
import modelopt.torch.quantization as mtq
model, search_state = mtq.auto_quantize(
model,
constraints={"auto_quantize_bits": 4.8},
quantization_formats=["NVFP4_DEFAULT_CFG", "FP8_DEFAULT_CFG"],
data_loader=calib_dataloader,
forward_step=forward_step,
loss_func=loss_func
)Для применения метода Four-over-Six в NVIDIA Model Optimizer версии 0.46 (доступной в июле) используется следующая команда в среде Megatron-LM:
HF_MODEL_CKPT=nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16
# Шаг 1 — Квантование в NVFP4 с Four-over-Six
TP=4 \
MLM_MODEL_SAVE=/tmp/Nemotron-3-Ultra_quant \
./quantize.sh nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16 huggingface/models/nvidia/Nemotron-3-Ultra-550B-A55B/ptq/nvfp4-4o6
# Шаг 2 — Экспорт чекпоинта
PP=1 \
MLM_MODEL_CKPT=/tmp/Nemotron-3-Ultra_quant \
EXPORT_DIR=/tmp/Nemotron-3-Ultra_NVFP4_46_HF \
./export.sh nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF1605Что это значит на практике
Разработка чекпоинта Nemotron 3 Ultra NVFP4 демонстрирует, что квантование — это не просто «сжатие», а тонкая настройка архитектуры. Использование гибридных форматов точности, таких как NVFP4 для одних слоев и BF16/FP8 для других, позволяет сохранить интеллектуальные способности модели, радикально снижая требования к памяти. Метод Four-over-Six scaling решает фундаментальную проблему разрывов в сетке FP4, обеспечивая более точную реконструкцию весов по сравнению с традиционными методами MSE или Max scaling.
Для разработчиков это означает возможность запуска моделей с сотнями миллиардов параметров на более доступном оборудовании, включая архитектуру Hopper, без потери качества. Оптимизация через NVIDIA Model Optimizer с использованием AutoQuantize и специализированных рецептов (как nvfp4-4o6) делает этот процесс воспроизводимым и масштабируемым. В условиях растущих требований к контексту и скорости ответа LLM, такие техники квантования становятся не просто опцией, а необходимостью для эффективного развертывания больших моделей в продакшене.
Источник: NVIDIA Developer ↗
