GPT-OSS utilise la quantification MXFP4 (que MLX prend désormais en charge). Il existe actuellement deux formats FP4 en circulation : MXFP4 et NVFP4 (NV pour Nvidia). En regardant comment GPT-OSS utilise MXFP4, il est quelque peu suboptimal. Je pense que NVFP4 sera le format le plus couramment utilisé à l'avenir. Plus de détails ci-dessous : Les deux formats quantifient les poids en flottant 4 bits (e2 m1) avec une échelle unique par groupe. La différence réside dans la taille du groupe et la manière dont l'échelle pour chaque groupe est codée. - MXFP4 utilise une échelle e8m0 (point fixe, 8 bits) avec une taille de groupe de 32. Elle est élevée à la puissance de 2 avant de multiplier le poids. - NVFP4 utilise une échelle e4m3 (fp8) avec une taille de groupe de 16. Elle est multipliée directement avec le poids. Le codage de l'échelle dans MXFP4 est assez suboptimal car il n'a pas de représentations pour beaucoup de valeurs dans la plage dont nous avons besoin. En fait, si vous regardez la distribution des échelles pour GPT-OSS, elle est extrêmement concentrée autour de seulement quelques valeurs. Par exemple, pour la deuxième couche MoE, je constate que seulement 8/256 valeurs possibles sont même utilisées. (Voir le graphique).
17,35K