From 4641e5a3d2bbeaaa1988528fde4f2e4571e2016d Mon Sep 17 00:00:00 2001 From: McZyWu Date: Mon, 23 Mar 2026 19:06:38 +0800 Subject: [PATCH] [NPU] enhance accuracy for model minimaxm2 from 16.5% to 95.5% (#17695) --- .../srt/hardware_backend/npu/moe/topk.py | 2 +- .../sglang/test/ascend/test_ascend_utils.py | 1 + .../llm_models/test_ascend_minimax_m2.py | 43 +++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 test/registered/ascend/llm_models/test_ascend_minimax_m2.py diff --git a/python/sglang/srt/hardware_backend/npu/moe/topk.py b/python/sglang/srt/hardware_backend/npu/moe/topk.py index 920787ed2..6447d9a67 100644 --- a/python/sglang/srt/hardware_backend/npu/moe/topk.py +++ b/python/sglang/srt/hardware_backend/npu/moe/topk.py @@ -26,7 +26,7 @@ def fused_topk_npu( renormalize = topk_config.renormalize correction_bias = topk_config.correction_bias - if not use_grouped_topk: + if not use_grouped_topk and correction_bias is None: topk_weights, topk_ids, _ = torch.ops.npu.npu_moe_gating_top_k_softmax( router_logits, k=topk_config.top_k, diff --git a/python/sglang/test/ascend/test_ascend_utils.py b/python/sglang/test/ascend/test_ascend_utils.py index a5328fd97..43a078287 100644 --- a/python/sglang/test/ascend/test_ascend_utils.py +++ b/python/sglang/test/ascend/test_ascend_utils.py @@ -148,6 +148,7 @@ STABLELM_2_1_6B_WEIGHTS_PATH = os.path.join( MODEL_WEIGHTS_DIR, "stabilityai/stablelm-2-1_6b" ) XVERSE_MOE_A36B_WEIGHTS_PATH = os.path.join(MODEL_WEIGHTS_DIR, "xverse/XVERSE-MoE-A36B") +MINIMAX_M2_WEIGHTS_PATH = os.path.join(MODEL_WEIGHTS_DIR, "cyankiwi/MiniMax-M2-BF16") # VLM model weights path DEEPSEEK_VL2_WEIGHTS_PATH = os.path.join(MODEL_WEIGHTS_DIR, "deepseek-ai/deepseek-vl2") diff --git a/test/registered/ascend/llm_models/test_ascend_minimax_m2.py b/test/registered/ascend/llm_models/test_ascend_minimax_m2.py new file mode 100644 index 000000000..f2f958a71 --- /dev/null +++ b/test/registered/ascend/llm_models/test_ascend_minimax_m2.py @@ -0,0 +1,43 @@ +import unittest + +from sglang.test.ascend.gsm8k_ascend_mixin import GSM8KAscendMixin +from sglang.test.ascend.test_ascend_utils import MINIMAX_M2_WEIGHTS_PATH +from sglang.test.ci.ci_register import register_npu_ci +from sglang.test.test_utils import CustomTestCase + +register_npu_ci( + est_time=400, + suite="nightly-8-npu-a3", + nightly=True, +) + + +class TestMiniMaxM2(GSM8KAscendMixin, CustomTestCase): + """Testcase: Verify that the inference accuracy of the cyankiwi/MiniMax-M2-BF16 model on the GSM8K dataset is no less than 0.9. + + [Test Category] Model + [Test Target] cyankiwi/MiniMax-M2-BF16 + """ + + model = MINIMAX_M2_WEIGHTS_PATH + accuracy = 0.9 + other_args = [ + "--trust-remote-code", + "--mem-fraction-static", + "0.9", + "--attention-backend", + "ascend", + "--tp-size", + "8", + "--disable-cuda-graph", + "--disable-radix-cache", + "--disable-overlap-schedule", + "--max-running-requests", + "64", + "--chunked-prefill-size", + "-1", + ] + + +if __name__ == "__main__": + unittest.main()