O GPT-OSS utiliza a quantização MXFP4 (que agora é suportada pela MLX). Atualmente, existem dois formatos FP4 em circulação: MXFP4 e NVFP4 (NV para Nvidia). Ao observar como o GPT-OSS utiliza o MXFP4, parece ser um pouco subótimo. Estou pensando que o NVFP4 será o formato mais comumente utilizado no futuro. Mais detalhes abaixo: Ambos os formatos quantizam pesos para ponto flutuante de 4 bits (e2 m1) com uma escala única por grupo. A diferença está no tamanho do grupo e em como a escala para cada grupo é codificada. - O MXFP4 utiliza uma escala e8m0 (ponto fixo, 8 bits) com um tamanho de grupo de 32. Ela é elevada à potência de 2 antes de multiplicar o peso. - O NVFP4 utiliza uma escala e4m3 (fp8) com um tamanho de grupo de 16. Ela é multiplicada diretamente com o peso. A codificação da escala no MXFP4 é bastante subótima porque não possui representações para muitos valores na faixa que precisamos. Na verdade, se você observar a distribuição das escalas para o GPT-OSS, ela está extremamente concentrada em apenas alguns valores. Por exemplo, para a segunda camada MoE, estou vendo que apenas 8/256 valores possíveis são realmente utilizados. (Veja o gráfico).
17,89K