Add DeepSeek V4 MTP acceptance length checks (#28098)

This commit is contained in:
Baizhou Zhang
2026-06-12 18:53:20 -07:00
committed by GitHub
parent 45f8d48994
commit a14d1a5656
6 changed files with 36 additions and 3 deletions
@@ -14,6 +14,7 @@ from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin
from sglang.test.kits.eval_accuracy_kit import GSM8KMixin from sglang.test.kits.eval_accuracy_kit import GSM8KMixin
from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
from sglang.test.test_utils import ( from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST, DEFAULT_URL_FOR_TEST,
CustomTestCase, CustomTestCase,
@@ -33,6 +34,7 @@ _DEEPEP_ENV = {
class TestDSV4FlashFP4B200Balanced_CP( class TestDSV4FlashFP4B200Balanced_CP(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -40,6 +42,8 @@ class TestDSV4FlashFP4B200Balanced_CP(
"""Balanced recipe: TP=4, DP=4, DeepEP, EAGLE (1-step spec).""" """Balanced recipe: TP=4, DP=4, DeepEP, EAGLE (1-step spec)."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 1.8
bs_1_speed_thres = 100
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -82,6 +86,7 @@ class TestDSV4FlashFP4B200Balanced_CP(
class TestDSV4FlashFP4B200Balanced_CP_NonDeepEP( class TestDSV4FlashFP4B200Balanced_CP_NonDeepEP(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -89,6 +94,8 @@ class TestDSV4FlashFP4B200Balanced_CP_NonDeepEP(
"""Balanced recipe: TP=4, DP=4, EAGLE (1-step spec).""" """Balanced recipe: TP=4, DP=4, EAGLE (1-step spec)."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 1.8
bs_1_speed_thres = 100
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -2,6 +2,7 @@ import unittest
from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.kits.eval_accuracy_kit import GSM8KMixin from sglang.test.kits.eval_accuracy_kit import GSM8KMixin
from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
from sglang.test.server_fixtures.disaggregation_fixture import ( from sglang.test.server_fixtures.disaggregation_fixture import (
PDDisaggregationServerBase, PDDisaggregationServerBase,
) )
@@ -38,9 +39,10 @@ _EAGLE_SPEC_ARGS = [
] ]
class TestDisaggregationDSV4(PDDisaggregationServerBase, GSM8KMixin): class TestDisaggregationDSV4(SpecDecodingMixin, PDDisaggregationServerBase, GSM8KMixin):
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 1.8
bs_1_speed_thres = 140
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -128,7 +130,6 @@ class TestDisaggregationDSV4(PDDisaggregationServerBase, GSM8KMixin):
class TestDisaggregationDSV4HiSparseMooncake(PDDisaggregationServerBase, GSM8KMixin): class TestDisaggregationDSV4HiSparseMooncake(PDDisaggregationServerBase, GSM8KMixin):
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
gsm8k_num_questions = 200 gsm8k_num_questions = 200
gsm8k_num_shots = 20 gsm8k_num_shots = 20
@@ -13,6 +13,7 @@ from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin
from sglang.test.kits.eval_accuracy_kit import GSM8KMixin from sglang.test.kits.eval_accuracy_kit import GSM8KMixin
from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
from sglang.test.test_utils import ( from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST, DEFAULT_URL_FOR_TEST,
CustomTestCase, CustomTestCase,
@@ -32,6 +33,7 @@ _DEEPEP_ENV = {
class TestDSV4FlashFP4B200( class TestDSV4FlashFP4B200(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -39,6 +41,8 @@ class TestDSV4FlashFP4B200(
"""LowLatency recipe: TP=4, FP4 (mxfp4), EAGLE spec decoding.""" """LowLatency recipe: TP=4, FP4 (mxfp4), EAGLE spec decoding."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 2.6
bs_1_speed_thres = 220
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -75,6 +79,7 @@ class TestDSV4FlashFP4B200(
class TestDSV4FlashFP4B200Balanced( class TestDSV4FlashFP4B200Balanced(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -82,6 +87,8 @@ class TestDSV4FlashFP4B200Balanced(
"""Balanced recipe: TP=4, DP=4, DeepEP, EAGLE (1-step spec).""" """Balanced recipe: TP=4, DP=4, DeepEP, EAGLE (1-step spec)."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 1.8
bs_1_speed_thres = 100
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -13,6 +13,7 @@ from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin
from sglang.test.kits.eval_accuracy_kit import GSM8KMixin from sglang.test.kits.eval_accuracy_kit import GSM8KMixin
from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
from sglang.test.test_utils import ( from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST, DEFAULT_URL_FOR_TEST,
CustomTestCase, CustomTestCase,
@@ -41,6 +42,7 @@ DEEPEP_CONFIG = '{"normal_dispatch":{"num_sms":96},"normal_combine":{"num_sms":9
class TestDSV4FlashFP4H200( class TestDSV4FlashFP4H200(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -48,6 +50,8 @@ class TestDSV4FlashFP4H200(
"""LowLatency recipe: TP=4, Marlin FP4, EAGLE spec decoding.""" """LowLatency recipe: TP=4, Marlin FP4, EAGLE spec decoding."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 2.8
bs_1_speed_thres = 240
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -87,6 +91,7 @@ class TestDSV4FlashFP4H200(
"FlashInfer build lacks SM90 mixed-input MXFP4 helpers (PR #3084, >= 0.6.11)", "FlashInfer build lacks SM90 mixed-input MXFP4 helpers (PR #3084, >= 0.6.11)",
) )
class TestDSV4FlashFP4H200FlashInferCutlass( class TestDSV4FlashFP4H200FlashInferCutlass(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -99,6 +104,8 @@ class TestDSV4FlashFP4H200FlashInferCutlass(
""" """
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 2.8
bs_1_speed_thres = 230
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -13,6 +13,7 @@ from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin
from sglang.test.kits.eval_accuracy_kit import GSM8KMixin from sglang.test.kits.eval_accuracy_kit import GSM8KMixin
from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
from sglang.test.test_utils import ( from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST, DEFAULT_URL_FOR_TEST,
CustomTestCase, CustomTestCase,
@@ -39,6 +40,7 @@ _W4A4_MEGAMOE_ENV = {
class TestDSV4FlashFP4B200W4A8MegaMoE( class TestDSV4FlashFP4B200W4A8MegaMoE(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -46,6 +48,8 @@ class TestDSV4FlashFP4B200W4A8MegaMoE(
"""Balanced recipe: TP=4, DP=4, MegaMoE.""" """Balanced recipe: TP=4, DP=4, MegaMoE."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 1.8
bs_1_speed_thres = 100
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -83,6 +87,7 @@ class TestDSV4FlashFP4B200W4A8MegaMoE(
class TestDSV4FlashFP4B200W4A4MegaMoE( class TestDSV4FlashFP4B200W4A4MegaMoE(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -90,6 +95,8 @@ class TestDSV4FlashFP4B200W4A4MegaMoE(
"""Balanced recipe: TP=4, DP=4, MegaMoE.""" """Balanced recipe: TP=4, DP=4, MegaMoE."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 2.6
bs_1_speed_thres = 100
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):
@@ -14,6 +14,7 @@ from sglang.srt.utils import kill_process_tree
from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.ci.ci_register import register_cuda_ci
from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin from sglang.test.kits.basic_decode_correctness_kit import BasicDecodeCorrectnessMixin
from sglang.test.kits.eval_accuracy_kit import GSM8KMixin from sglang.test.kits.eval_accuracy_kit import GSM8KMixin
from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
from sglang.test.test_utils import ( from sglang.test.test_utils import (
DEFAULT_URL_FOR_TEST, DEFAULT_URL_FOR_TEST,
CustomTestCase, CustomTestCase,
@@ -29,6 +30,7 @@ DEEPEP_CONFIG = '{"normal_dispatch":{"num_sms":96},"normal_combine":{"num_sms":9
class TestDSV4FlashFP8H200( class TestDSV4FlashFP8H200(
SpecDecodingMixin,
BasicDecodeCorrectnessMixin, BasicDecodeCorrectnessMixin,
GSM8KMixin, GSM8KMixin,
CustomTestCase, CustomTestCase,
@@ -36,6 +38,8 @@ class TestDSV4FlashFP8H200(
"""LowLatency recipe: TP=4, Marlin FP4, EAGLE spec decoding.""" """LowLatency recipe: TP=4, Marlin FP4, EAGLE spec decoding."""
gsm8k_accuracy_thres = 0.93 gsm8k_accuracy_thres = 0.93
accept_length_thres = 1.8
bs_1_speed_thres = 140
@classmethod @classmethod
def setUpClass(cls): def setUpClass(cls):