GPT-OSS verwendet die MXFP4-Quantisierung (die jetzt von MLX unterstützt wird). Es gibt derzeit zwei FP4-Formate, die im Umlauf sind: MXFP4 und NVFP4 (NV für Nvidia). Wenn man sich anschaut, wie GPT-OSS MXFP4 verwendet, ist es etwas suboptimal. Ich denke, dass NVFP4 das in Zukunft häufiger verwendete Format sein wird. Weitere Details unten: Beide Formate quantisieren Gewichte auf 4-Bit-Gleitkomma (e2 m1) mit einem einzigartigen Maßstab pro Gruppe. Der Unterschied liegt in der Gruppengröße und wie der Maßstab für jede Gruppe kodiert ist. - MXFP4 verwendet einen e8m0-Maßstab (Festkomma, 8-Bit) mit einer Gruppengröße von 32. Er wird vor der Multiplikation mit dem Gewicht auf die Potenz von 2 erhöht. - NVFP4 verwendet einen e4m3 (fp8) Maßstab mit einer Gruppengröße von 16. Er wird direkt mit dem Gewicht multipliziert. Die Maßstabs-Kodierung in MXFP4 ist ziemlich suboptimal, da sie keine Darstellungen für viele Werte im benötigten Bereich hat. Tatsächlich, wenn man sich die Verteilung der Maßstäbe für GPT-OSS ansieht, ist sie extrem konzentriert auf nur ein paar Werte. Zum Beispiel, für die zweite MoE-Schicht, die ich mir anschaue, werden nur 8/256 mögliche Werte überhaupt verwendet. (Siehe Diagramm).
17,47K