Prhub

#42111 [CI] Add DSV4-Flash to gsm8k moe-refactor/config-b200.txt

原始 PR 作者 mgoin 合并时间 2026-05-20 11:21 文件变更 6 提交数 5 评论 3 代码增减 +12 / -1

执行摘要

为 DeepSeek-V4-Flash 添加 GSM8K 评估配置

为了将 DeepSeek-V4-Flash 纳入 GSM8K MoE 重构评估集合,验证 deep_gemm_mega_moe 后端的正确性和性能。PR body 未详细说明动机,但从变更看是为了扩展 CI 测试覆盖。

该 PR 值得 CI 维护者和 DeepSeek 模型负责人关注,以确认 server_args 的实际解析行为并验证阈值合理性。当前配置可作为 baseline,后续宜在真实环境中验证其有效性。

讨论亮点
  • 准确性阈值过低:gemini-code-assist[bot] 指出 accuracy_threshold 初始为 0.29,远低于同类模型预期(通常 >90%),会导致测试无法有效捕捉回归。该问题在后续 commit 中得到修正,最终合并版本已上调至 0.95。
  • server_args 格式兼容性:同一评论质疑 --attention_config.use_fp4_indexer_cache=True 等点记号和下划线参数是否被标准 CLI 解析器支持。最终版本未更改此格式,暗示内部自定义 runner 支持此类参数,或存在未修复的兼容性风险。
  • CI 加载失败:作者 mgoin 在 issue 评论中报告 SafetensorError 反序列化错误,可能与 safetensors 版本升级有关,最终通过更新依赖解决。

实现拆解

  1. 新增 GSM8K 评估配置文件tests/evals/gsm8k/configs/moe-refactor/DeepSeek-V4-Flash-deepgemm-mega-moe.yaml),指定模型名称、准确率阈值(0.95)、问题数、fewshot 数及 server 参数,启用 MoE 后端、MTP 推测解码等特性。
  2. 更新 safetensors 依赖:将 requirements/test/cuda.txt 中的 safetensors 版本从 0.4.5 升级至 0.7.0,并在 requirements/common.txt 中添加最低版本约束(>=0.6.2)以支持 MXFP4/MXFP6 dtype。同步更新 rocm.txtxpu.txt 的注释格式。
  3. 注册新配置到测试列表tests/evals/gsm8k/configs/moe-refactor/config-b200.txt),追加一行引用新 YAML 文件,使其在批量评估时被包含。
文件 模块 状态 重要度
tests/evals/gsm8k/configs/moe-refactor/DeepSeek-V4-Flash-deepgemm-mega-moe.yaml 评估配置 added 4.5
requirements/test/cuda.txt 依赖配置 modified 1.98
requirements/common.txt 依赖配置 modified 1.3
tests/evals/gsm8k/configs/moe-refactor/config-b200.txt 评估列表 modified 1.3
requirements/test/rocm.txt 依赖配置 modified 1.54
requirements/test/xpu.txt 依赖配置 modified 1.3

关键源码片段

tests/evals/gsm8k/configs/moe-refactor/DeepSeek-V4-Flash-deepgemm-mega-moe.yaml test-coverage

核心新增文件,定义了 DeepSeek-V4-Flash 在 GSM8K 上的评估参数和 MoE 后端配置,影响测试覆盖。

# DeepSeek-V4-Flash 的 GSM8K 评估配置
# 指定模型、阈值、问题数及 MoE 相关启动参数
model_name: "deepseek-ai/DeepSeek-V4-Flash"
# 准确率阈值,若低于此值测试将被视为失败
accuracy_threshold: 0.95
# 评估问题总数(1319 对应于 GSM8K 测试集规模)
num_questions: 1319
# 上下文示例(few-shot)个数
num_fewshot: 5
# 服务启动参数,注意点记法参数(如 --attention_config.use_fp4_indexer_cache)
# 可能依赖自定义参数解析器,标准 CLI 可能不兼容
server_args: "--trust-remote-code --kv-cache-dtype fp8 --block-size 256 --enable-expert-parallel --tensor-parallel-size 2 --attention_config.use_fp4_indexer_cache=True --moe-backend deep_gemm_mega_moe --tokenizer-mode deepseek_v4 --tool-call-parser deepseek_v4 --enable-auto-tool-choice --reasoning-parser deepseek_v4 --speculative_config.method=mtp --speculative_config.num_speculative_tokens=2"

评论区精华

准确性阈值过低 正确性

gemini-code-assist[bot] 指出 accuracy_threshold 为 0.29 远低于预期,会降低测试有效性。

结论:阈值已在后续 commit 调整为 0.95,认为已解决。 · 已解决

server_args 格式兼容性 设计

gemini-code-assist[bot] 质疑点记法参数(如 --attention_config.use_fp4_indexer_cache)和布尔值写法是否被标准 vLLM CLI 支持。

结论:最终合并版本未修改 server_args 格式,可能依赖自定义解析器,或存在未修复的兼容性风险。 · unresolved

CI 加载失败 other

作者 mgoin 报告 safetensors 反序列化错误,可能与依赖版本有关。通过升级 safetensors 解决。

结论:通过依赖升级解决,但未深入根因。 · 已解决

风险与影响

  1. 测试有效性风险:若 server_args 格式不被标准解析器支持,实际测试可能未按预期参数运行,导致 MoE 后端未得到验证。
  2. 依赖升级风险:safetensors 版本从 0.4.5 提升至 0.7.0(跳过大版本),可能引入与旧权重格式的兼容问题。已在 common.txt 增加最小版本约束,但未覆盖全部路径。
  3. 阈值合理性:0.95 的阈值仍低于 DeepSeek-V4 类模型典型表现(可达 95%+),可能遗漏轻微精度退化。

影响范围:仅影响 CI 中的 GSM8K 评估流水线,不涉及核心推理或训练代码。若配置正确,可为 MoE 后端性能回归提供预警;若配置有误,则测试无效且不阻塞其他变更。影响程度:低至中,取决于测试的可信度。

测试有效性不足 依赖升级范围 配置兼容性未验证

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论