GPT-OSS gebruikt MXFP4-kwantisatie (waar MLX nu ondersteuning voor biedt). Er zijn momenteel twee FP4-formaten in omloop: MXFP4 en NVFP4 (NV voor Nvidia). Als ik kijk naar hoe GPT-OSS MXFP4 gebruikt, is het enigszins suboptimaal. Ik denk dat NVFP4 het meer gebruikte formaat in de toekomst zal zijn. Meer details hieronder: Beide formaten kwantificeren gewichten naar 4-bits drijvende komma (e2 m1) met een unieke schaal per groep. Het verschil is de groepsgrootte en hoe de schaal voor elke groep is gecodeerd. - MXFP4 gebruikt een e8m0-schaal (vast punt, 8-bits) met een groepsgrootte van 32. Het wordt tot de macht van 2 verheven voordat het gewicht wordt vermenigvuldigd. - NVFP4 gebruikt een e4m3 (fp8) schaal met een groepsgrootte van 16. Het wordt direct met het gewicht vermenigvuldigd. De schaalcodering in MXFP4 is behoorlijk suboptimaal omdat het geen representaties heeft voor veel waarden in het bereik dat we nodig hebben. In feite, als je kijkt naar de verdeling van schalen voor GPT-OSS, is het extreem geconcentreerd rond slechts een paar waarden. Bijvoorbeeld, voor de tweede MoE-laag waar ik naar kijk, worden er slechts 8/256 mogelijke waarden gebruikt. (Zie plot).
17,71K