FP16 и BF16 описывают форматы чисел. Квантование задаёт преобразование выбранных тензоров, шкалы и способ исполнения; надпись «4 бита» не устанавливает тип данных остальных операций или KV-кэша.
Почему это важно
Модель может помещаться в память и при этом получать переполнения или потерю значимых разностей. Перед выбором ускорителя нужно проверить отдельно тип данных весов, формат операций и накопления результата, а затем качество на конкретной задаче.
Что подтверждено
Двоичный формат с плавающей точкой распределяет биты между знаком, порядком и дробной частью значащего. Биты порядка задают диапазон степеней, а биты значащего — различимость близких чисел; часть комбинаций отведена специальным значениям.
Граница применимости: Двоичные форматы FP16/BF16; не описание целочисленного INT8/INT4 или произвольного пользовательского кодирования.
У FP16 binary16 один бит знака, пять бит порядка и десять бит дробной части; у BF16 — один, восемь и семь соответственно. У нормальных чисел учитывается также неявный старший бит, поэтому семь дробных бит BF16 не означают всего семь бит значащего.
Граница применимости: Различаются хранимая дробная часть и полная точность нормального числа; субнормальные и специальные значения требуют отдельных правил формата.
BF16 имеет ширину поля порядка как FP32, но меньшую точность значащего, чем FP16. Для положительных нормальных чисел в интервале от 1 включительно до 2 не включительно шаг FP16 равен 1/1024, а BF16 — 1/128. Более широкий диапазон BF16 не означает более точное различение соседних значений.
Граница применимости: Арифметика шага по 10 и 7 дробным битам; характеристики формата, а не обещание одинакового качества двух запусков модели.
Плотно хранимое значение FP16 и BF16 занимает 16 бит, то есть два байта. Замена одного этим другим при неизменном числе значений сама по себе не сокращает объём данных весов вдвое; иной расход процесса возникает из-за размещения, дополнительных буферов и выбранных операций.
Граница применимости: Только плотное представление заданных значений; упаковка файла, служебные затраты выделения памяти и временные тензоры не включены.
Формат хранимых операндов, формат умножения и формат накопления суммы могут различаться. Например, документация Cloud TPU описывает умножение BF16 с накоплением FP32; это конкретный режим оборудования, который нельзя автоматически приписать любой GPU-операции с BF16 входом.
Граница применимости: Режим операции подтверждают для точных устройства, библиотеки и вычислительной процедуры; тип файла весов не доказывает формат накопления результата.
Численное переполнение связано с непредставимым результатом в выбранном формате, а нехватка памяти — с размещением данных и буферов. Увеличение объёма VRAM не расширяет диапазон FP16; переход на другой тип данных тоже не заменяет проверку численной устойчивости вычислений.
Граница применимости: Различение ограничений числового формата и выделения памяти; обработка Inf/NaN и округления зависит от операции.
Поддержка типа данных означает возможность выполнить конкретные операции, но не гарантирует тот же результат или скорость, что у другого формата. При смене формата фиксируют исполняющую библиотеку и режим накопления, сравнивают качество на тех же заданиях и измеряют фактическую память и задержку.
Граница применимости: Приёмка инференса на выбранном стеке; паспортная поддержка тензорных ядер и тип данных файла сами по себе недостаточны.
Не путать
Числовой формат определяет представление значений, а тензорное ядро — аппаратное выполнение поддержанных операций. Возможность хранить BF16 не доказывает, что нужная операция использует конкретную ускоренную реализацию.
Веса — значения параметров модели; формат определяет их конкретное представление. Один и тот же размер два байта у FP16/BF16 сохраняет объём данных, но меняет диапазон и точность, поэтому файл нельзя оценивать только по объёму.
Что проверить
- Запишите типы данных весов, входов, промежуточных тензоров и KV отдельно.
- Сверьте поддержанные операции и формат накопления у точной библиотеки и устройства.
- Не путайте 7 дробных бит BF16 с полной точностью нормального числа.
- Проверьте переполнения, Inf/NaN и чувствительные к округлению результаты.
- Сравните качество на одном наборе задач с одинаковыми правилами генерации.
- Измерьте память и задержку; одинаковая разрядность не доказывает одинаковую реализацию операций.
- Отдельно посчитайте объём данных весов и запас под остальные данные процесса.
Первоисточники
Cloud TPU: bfloat16
Google Cloud · документация Google Cloud TPU, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникCUDA C++ Programming Guide
NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникTransformers 4.44.2: Generation
Hugging Face · документация Hugging Face Transformers v4.44.2, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникAWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration
Ji Lin и соавторы · arXiv:2306.00978, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникAttention Is All You Need
Ashish Vaswani и соавторы · arXiv:1706.03762, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник