GPT-OSS använder MXFP4-kvantisering (som MLX nu stöder). Det finns två FP4-format i omlopp just nu: MXFP4 och NVFP4 (NV för Nvidia). Om man tittar på hur GPT-OSS använder MXFP4 är det något suboptimalt. Jag tänker att NVFP4 kommer att vara det vanligaste formatet i framtiden. Mer information nedan: Båda formaten kvantiserar vikter till 4-bitars flyttal (e2 m1) med en unik skala per grupp. Skillnaden är gruppstorleken och hur skalan för varje grupp kodas. - MXFP4 använder en e8m0-skala (fast punkt, 8-bitars) med en gruppstorlek på 32. Den höjs till potensen av 2 innan vikten multipliceras. - NVFP4 använder en e4m3 (fp8) skala med en gruppstorlek på 16. Den multipliceras med vikten direkt Skalningskodningen i MXFP4 är ganska suboptimal eftersom den inte har representationer för många värden i det intervall vi behöver. Faktum är att om man tittar på fördelningen av skalor för GPT-OSS är den extremt koncentrerad kring bara ett par värden. Till exempel, för det andra MoE-lagret jag tittar på används bara 8/256 möjliga värden. (Se diagrammet).
17,83K