[Feature] Add Muse Glimmer model support - #34262
Conversation
Co-Authored-By: Brayden Zhong <brayden.zhong@radixark.ai> Co-Authored-By: Jimmy Shong <69131491+Jiminator@users.noreply.github.com> Co-Authored-By: hnyls2002 <lsyincs@gmail.com> Co-Authored-By: Alex Nails <alex.nails@radixark.ai>
This reverts commit d3c5493.
flashinfer_mxfp8_blockscaled_linear swaps cutlass -> cute-dsl at M <= 64 for the small-M speedup, but CuTe-DSL has no mm_mxfp8 kernel at capability 120, so the swap raises BackendSupportedError. Prefill CUDA graph capture uses small batch shapes, so an MXFP8-containing checkpoint (e.g. the MIXED_PRECISION NVFP4 build, whose down_proj is MXFP8) fails at startup on SM120. Running FlashInfer autotune over mxfp8_gemm happened to mask this, so it only surfaces when that op is skipped or autotune is off. Gate the swap on SM100, which keeps the speedup where CuTe-DSL has the kernel.
…lush stream parsers once; drop redundant write
…es skip_special_tokens assertion
…p token oracle on draft
|
I tested this PR on my M4 Pro with 48GB, it turns out that the PR can’t load the public |
Hey @jasonge27, for the MLX backend on Sglang, use one of the three MLX checkpoints we host under https://huggingface.co/RadixArk: Muse-Glimmer-q4-MLX, Muse-Glimmer-q4km-gs128-MLX, or Muse-Glimmer-q4k-dynamic-MLX. The two k-quant repacks preserve the exact quantization codes of the GGUFs in meta-models/Muse-Glimmer-30B-GGUF (bit-identical code), and q4 is the fastest variant. The mlx-community checkpoint's text weights are actually the same 4-bit quantization as our q4, but it is stored as a pre-quantized mlx-lm conversion of the full multimodal export, which isn't an input shape sanitize() supports. The loader accepts either the raw bf16 HF export, where it applies the fusion and norm folding itself, or our packaged artifacts, since those transforms can't be applied to already-quantized weights. Image input is also not supported on our MLX backend, so the vision tower it carries wouldn't be usable regardless. |
Co-authored-by: sglang-bot <232288953+sglang-bot@users.noreply.github.com> Co-authored-by: Brayden Zhong <brayden.zhong@radixark.ai> Co-authored-by: Jimmy Shong <69131491+Jiminator@users.noreply.github.com> Co-authored-by: hnyls2002 <lsyincs@gmail.com> Co-authored-by: Alex Nails <alex.nails@radixark.ai> Co-authored-by: Liangsheng Yin <hnyls2002@gmail.com>
…rdening Cherry-pick and squash of three PRs: - sgl-project#34262 infra: BaseFormatDetector.finish(), FunctionCallParser.parse_stream_end(), flush param in serving_chat._process_tool_call_stream - sgl-project#34458: chunk-invariance — partial token holdback, _ends_with_partial_token, tool_start_token for DeepSeekV4Detector, MalformedJSON catch, preamble preservation - sgl-project#34600: hardening — buffer retention on error, rstrip→removesuffix, narrow potentially_dsml to tool-call tags, finish() override on DeepSeekV32Detector, narrow tool_start_token to <|DSML|tool_calls, holdback at think_end boundary Co-authored-by: hnyls2002 <hnyls2002@gmail.com> Co-authored-by: Leoyzen <leoyzen@gmail.com>
…rdening Cherry-pick and squash of three PRs: - sgl-project#34262 infra: BaseFormatDetector.finish(), FunctionCallParser.parse_stream_end(), flush param in serving_chat._process_tool_call_stream - sgl-project#34458: chunk-invariance — partial token holdback, _ends_with_partial_token, tool_start_token for DeepSeekV4Detector, MalformedJSON catch, preamble preservation - sgl-project#34600: hardening — buffer retention on error, rstrip→removesuffix, narrow potentially_dsml to tool-call tags, finish() override on DeepSeekV32Detector, narrow tool_start_token to <|DSML|tool_calls, holdback at think_end boundary Co-authored-by: hnyls2002 <hnyls2002@gmail.com> Co-authored-by: Leoyzen <leoyzen@gmail.com>
…rdening Cherry-pick and squash of three PRs: - sgl-project#34262 infra: BaseFormatDetector.finish(), FunctionCallParser.parse_stream_end(), flush param in serving_chat._process_tool_call_stream - sgl-project#34458: chunk-invariance — partial token holdback, _ends_with_partial_token, tool_start_token for DeepSeekV4Detector, MalformedJSON catch, preamble preservation - sgl-project#34600: hardening — buffer retention on error, rstrip→removesuffix, narrow potentially_dsml to tool-call tags, finish() override on DeepSeekV32Detector, narrow tool_start_token to <|DSML|tool_calls, holdback at think_end boundary Co-authored-by: hnyls2002 <hnyls2002@gmail.com> Co-authored-by: Leoyzen <leoyzen@gmail.com>
Co-authored-by: sglang-bot <232288953+sglang-bot@users.noreply.github.com> Co-authored-by: Brayden Zhong <brayden.zhong@radixark.ai> Co-authored-by: Jimmy Shong <69131491+Jiminator@users.noreply.github.com> Co-authored-by: hnyls2002 <lsyincs@gmail.com> Co-authored-by: Alex Nails <alex.nails@radixark.ai> Co-authored-by: Liangsheng Yin <hnyls2002@gmail.com>
Adds native Muse Glimmer model support across the CUDA and MLX backends.
CI States
Latest PR Test (Base): ❌ Run #31538429682
Latest PR Test (Extra): 🚫 Run #31543535341