GPT-OSS utiliza la cuantificación MXFP4 (que MLX ahora admite). Hay dos formatos FP4 circulando en este momento: MXFP4 y NVFP4 (NV para Nvidia). Al observar cómo GPT-OSS usa MXFP4, es algo subóptimo. Creo que NVFP4 será el formato más utilizado en el futuro. Más detalles a continuación: Ambos formatos cuantifican pesos a punto flotante de 4 bits (e2 m1) con una escala única por grupo. La diferencia es el tamaño del grupo y cómo se codifica la escala de cada grupo. - MXFP4 utiliza una escala e8m0 (punto fijo, 8 bits) con un tamaño de grupo de 32. Se eleva a la potencia de 2 antes de multiplicar el peso. - NVFP4 utiliza una escala e4m3 (fp8) con un tamaño de grupo de 16. Se multiplica por el peso directamente La codificación de escala en MXFP4 es bastante subóptima porque no tiene representaciones para muchos valores en el rango que necesitamos. De hecho, si observa la distribución de escalas para GPT-OSS, está extremadamente concentrada en solo un par de valores. Por ejemplo, para la segunda capa de MoE que estoy viendo, solo se usan 8/256 valores posibles. (Ver trama).
17.42K