执行摘要
为 DeepSeek V4 增加非 MTP 模式测试覆盖
PR body 明确指出 "Cherrypicked from #25801",目的是为非 MTP 模式的 DeepSeek V4 配置增加端到端测试覆盖,确保在没有推测解码的配置下模型推理的正确性和稳定性。
值得查阅,了解 DeepSeek V4 在 B200 和 H200 上的非 MTP 测试配置差异,为后续类似测试添加提供模板。
无 review 讨论。
PR body 明确指出 "Cherrypicked from #25801",目的是为非 MTP 模式的 DeepSeek V4 配置增加端到端测试覆盖,确保在没有推测解码的配置下模型推理的正确性和稳定性。
值得查阅,了解 DeepSeek V4 在 B200 和 H200 上的非 MTP 测试配置差异,为后续类似测试添加提供模板。
无 review 讨论。
test/registered/models_e2e/test_deepseek_v4_flash_fp4_b200.py 中新增 TestDSV4FlashFP4NonMTPB200 类,继承 BasicDecodeCorrectnessMixin、GSM8KMixin 和 CustomTestCase,验证在 TP=4、DP=4、DeepEP 后端、不使用推测解码(无 --speculative-algorithm 等参数)时 GSM8K 准确率 ≥ 0.93。test/registered/models_e2e/test_deepseek_v4_flash_fp4_h200.py 中新增 TestDSV4FlashFP4NonMTPH200 类,使用 TP=4、Marlin FP4 后端、--watchdog-timeout 900,同样无推测解码参数,GSM8K 准确率阈值 0.93。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
test/registered/models_e2e/test_deepseek_v4_flash_fp4_b200.py |
测试脚本 | modified | 6.82 |
test/registered/models_e2e/test_deepseek_v4_flash_fp4_h200.py |
测试脚本 | modified | 6.76 |
test/registered/models_e2e/test_deepseek_v4_flash_fp4_b200.py
test-coverage
新增非 MTP 测试类,验证 B200 上 FP4 无推测解码的正确性。
class TestDSV4FlashFP4NonMTPB200(
BasicDecodeCorrectnessMixin, GSM8KMixin, CustomTestCase
):
"""Non-MTP recipe: TP=4, DP=4, DeepEP, no speculative decoding."""
# GSM8K 准确率阈值,与 MTP 版本保持一致
gsm8k_accuracy_thres = 0.93
@classmethod
def setUpClass(cls):
cls.model = try_cached_model(MODEL)
cls.base_url = DEFAULT_URL_FOR_TEST
cls.process = popen_launch_server(
cls.model,
cls.base_url,
timeout=SERVER_LAUNCH_TIMEOUT,
other_args=[
"--trust-remote-code",
"--tp",
"4", # Tensor 并行度 4
"--dp",
"4", # Data 并行度 4
"--enable-dp-attention",
"--moe-a2a-backend",
"deepep", # DeepEP MoE All-to-All 后端
"--deepep-config",
DEEPEP_CONFIG,
],
env=_DEEPEP_ENV,
)
@classmethod
def tearDownClass(cls):
if hasattr(cls, "process") and cls.process:
kill_process_tree(cls.process.pid)
test/registered/models_e2e/test_deepseek_v4_flash_fp4_h200.py
test-coverage
新增非 MTP 测试类,验证 H200 上 FP4 无推测解码的正确性。
class TestDSV4FlashFP4NonMTPH200(
BasicDecodeCorrectnessMixin, GSM8KMixin, CustomTestCase
):
"""LowLatency recipe without MTP: TP=4, Marlin FP4, no speculative decoding."""
gsm8k_accuracy_thres = 0.93
@classmethod
def setUpClass(cls):
cls.model = try_cached_model(MODEL)
cls.base_url = DEFAULT_URL_FOR_TEST
cls.process = popen_launch_server(
cls.model,
cls.base_url,
timeout=SERVER_LAUNCH_TIMEOUT,
other_args=[
"--trust-remote-code",
"--tp",
"4", # Tensor 并行度 4
"--moe-runner-backend",
"marlin", # Marlin FP4 MoE 后端
"--watchdog-timeout",
"900", # 超时保护
],
)
@classmethod
def tearDownClass(cls):
if hasattr(cls, "process") and cls.process:
kill_process_tree(cls.process.pid)
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
低风险。变更仅添加测试用例,不修改任何生产代码或源码逻辑。测试覆盖的配置(无 MTP)可能在特定条件下暴露潜在缺陷,但测试本身不会引入回归风险。
对用户和系统无直接影响。对团队影响:增强了对 DeepSeek V4 非推测解码模式的 CI 验证覆盖,有助于在后续重构中快速捕获回归。影响范围仅限于两个测试文件。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论