Prhub

#24203 [AMD] Deepseek v4 Flash / Pro nightly tests for MI35x ROCm 7.2

原始 PR 作者 bingxche 合并时间 2026-05-04 15:02 文件变更 5 提交数 5 评论 3 代码增减 +972 / -0

执行摘要

为 MI35x ROCm 7.2 添加 DSv4 Flash/Pro 的 nightly 测试

确保 DeepSeek-V4 系列模型在 AMD ROCm 7.2 平台的长期正确性和性能,防止回归。

建议阅读工作流中关于避免重建 sglang/aiter 的技巧(--skip-sglang-build 和容器路径隔离),以及动态解析最新 DSv4 镜像标签的做法。测试文件本身的模式可以作为后续添加类似模型的模板。

讨论亮点

无实质性 review 讨论,仅有一位 maintainer 直接批准。HaiShaw 在合并后留言希望改进 nightly 测试的信号,但未在 PR 内展开讨论。

实现拆解

  1. 新增四个测试文件:test_deepseek_v4_fp4.pytest_deepseek_v4_fp8.py(Flash 模型),test_deepseek_v4_pro_fp4.pytest_deepseek_v4_pro_fp8.py(Pro 模型)。每个测试类共享一个服务器进程,依次运行 GSM8K 精度评估和 bench_one_batch_server 性能基准。
  2. 修改 nightly-test-amd-rocm720.yml 工作流,添加两个新 job(flash 和 pro),每个 job 包含:动态解析 DSv4 容器标签(从 Docker Hub 获取最新 rocm720-mi35x-*-DSv4 镜像),启动容器时传递 --skip-sglang-build--skip-aiter-build 以保留容器内预置的运行时。
  3. 环境变量配置集中管理,区分公共通用变量和每个变体特有的变量(如 FP4/FP8 开关)。
  4. 注册 nightly 测试套件并设置超时(Flash 3600s,Pro 5400s),精度阈值分别为 0.91(Flash)和 0.92(Pro)。
文件 模块 状态 重要度
test/registered/amd/test_deepseek_v4_pro_fp4.py 模型测试 added 7.42
test/registered/amd/test_deepseek_v4_pro_fp8.py 模型测试 added 7.42
test/registered/amd/test_deepseek_v4_fp4.py 模型测试 added 7.42
test/registered/amd/test_deepseek_v4_fp8.py 模型测试 added 7.42
.github/workflows/nightly-test-amd-rocm720.yml CI 工作流 modified 5.26

关键符号

setUpClass tearDownClass test_a_gsm8k test_b_perf_8k_1k

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

改进 nightly 测试信号 other

HaiShaw 在 PR 合并后留言 'Can we also work on improved signals from night tests?' 表示希望后续改进测试反馈质量。

结论:未在 PR 内讨论,可能需要后续 PR 处理。 · 待处理

风险与影响

低风险。变更仅涉及测试文件和 CI 工作流,不影响任何生产代码。主要风险在于:若测试机环境配置不正确(如缺少 ROCm 700A 或 tilelang 依赖),可能导致假失败;DSv4 容器标签解析逻辑依赖 Docker Hub 返回次序,若镜像策略改变可能失败。但这些属于基础设施稳定性问题。

对用户无直接影响。对团队影响:增加了对 AMD 平台 DeepSeek-V4 模型的回归保护,有利于及早发现精度或性能退化。CI 执行时间延长(两个 job 各约 1-2 小时)。

依赖外部 Docker Hub 标签解析 测试环境依赖 ROCm 700A 和 tilelang

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论