sgl-project/sglang · error · NotImplementedError

Requantization in QuarkW4A4MXFp4MoE from {self.dequantizatio

Error message

Requantization in QuarkW4A4MXFp4MoE from {self.dequantization_config.__class__.__name__} is not supported.

What it means

QuarkW4A4MXFp4MoE.create_weights only knows how to requantize from specific dequantization configs (e.g. Fp8Config). It hit an unrecognized dequantization_config class, so no requantization path exists.

Source

Thrown at python/sglang/srt/layers/quantization/quark/schemes/quark_w4a4_mxfp4_moe.py:174

                # Create FP8 MoE weight parameters on meta device to avoid device memory overhead during weight loading, as the resulting model uses MXFP4 using less device memory.
                # The weight loader handles progressive FP8 weight materialization on device.
                with torch.device("meta"):
                    Fp8MoEMethod.create_fp8_moe_weight_(
                        layer=layer,
                        num_experts=num_experts,
                        hidden_size=hidden_size,
                        intermediate_size_per_partition=intermediate_size_per_partition,
                        block_quant=block_quant,
                        quant_config=self.dequantization_config,
                        use_mxfp8=False,
                        is_checkpoint_fp8_serialized=True,
                        is_fp4_expert=False,
                        params_dtype=params_dtype,
                        with_bias=with_bias,
                        **extra_weight_attrs,
                    )
            else:
                raise NotImplementedError(
                    f"Requantization in QuarkW4A4MXFp4MoE from {self.dequantization_config.__class__.__name__} is not supported."
                )
            return

        w13_up_dim, w2_down_dim, weight_padded = get_moe_weight_sizes(
            intermediate_size_per_partition,
            is_aiter_moe=_use_aiter,
            is_concat=True,
            is_packed=True,
        )

        # Add the quantization method used (per tensor/grouped/channel)
        # to ensure the weight scales are loaded in properly
        extra_weight_attrs.update(
            {
                "quant_method": FusedMoeWeightScaleSupported.BLOCK.value,
                "weight_padded": weight_padded,
            },

View on GitHub (pinned to 0132848349)

Solutions

  1. Use an MXFP4-serialized checkpoint so the requantization branch is skipped
  2. Re-export checkpoint with a supported dequantization config (plain block FP8)
  3. Upgrade sglang to a version supporting this dequantization_config class
Defensive patterns

Strategy: validation

Validate before calling

from sglang.srt.layers.quantization.quark.schemes.quark_w4a4_mxfp4_moe import *
supported = type(quant_config.dequantization_config).__name__ in ('Fp8Config',)
assert supported or quant_config.is_checkpoint_mxfp4_serialized

Prevention

When it happens

Trigger: Quark config where dequantization_config is some class other than the supported FP8 configs while weights are not MXFP4-serialized.

Common situations: New quark export formats (int8, int4, mxfp8) pointed at the W4A4 MXFP4 MoE scheme; version skew between checkpoint format and sglang.

Related errors


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/dab97f10bb5cc4a4. Report an issue: GitHub.