GPT-OSS utiliza la cuantización MXFP4 (que ahora es compatible con MLX). Actualmente hay dos formatos FP4 en circulación: MXFP4 y NVFP4 (NV por Nvidia). Al observar cómo GPT-OSS utiliza MXFP4, es algo subóptimo. Estoy pensando que NVFP4 será el formato más utilizado en el futuro. Más detalles a continuación: Ambos formatos cuantizan pesos a punto flotante de 4 bits (e2 m1) con una escala única por grupo. La diferencia radica en el tamaño del grupo y cómo se codifica la escala para 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 directamente con el peso. La codificación de la escala en MXFP4 es bastante subóptima porque no tiene representaciones para muchos valores en el rango que necesitamos. De hecho, si observas la distribución de escalas para GPT-OSS, está extremadamente concentrada alrededor de solo un par de valores. Por ejemplo, para la segunda capa MoE que estoy analizando, solo se utilizan 8/256 valores posibles. (Ver gráfico).
17,35K