GPT-OSS использует квантование MXFP4 (которое теперь поддерживается MLX). В настоящее время циркулируют два формата FP4: MXFP4 и NVFP4 (NV для Nvidia). Судя по тому, как GPT-OSS использует MXFP4, это несколько неоптимально. Я думаю, что NVFP4 станет более распространенным форматом в будущем. Более подробная информация ниже: Оба формата квантуют веса до 4-битного плавающего числа (e2 m1) с уникальным масштабом для каждой группы. Разница заключается в размере группы и в том, как масштаб для каждой группы кодируется. - MXFP4 использует масштаб e8m0 (фиксированная точка, 8 бит) с размером группы 32. Он возводится в степень 2 перед умножением на вес. - NVFP4 использует масштаб e4m3 (fp8) с размером группы 16. Он умножается на вес напрямую. Кодирование масштаба в MXFP4 довольно неоптимально, потому что у него нет представлений для многих значений в диапазоне, который нам нужен. На самом деле, если посмотреть на распределение масштабов для GPT-OSS, оно крайне сосредоточено вокруг всего лишь нескольких значений. Например, для второго слоя MoE, который я рассматриваю, используется только 8 из 256 возможных значений. (См. график).
17,35K