Prhub

#21534 [AMD] Add GLM-4.7-FP8 accuracy CI test for MI35x

sgl-project/sglang · 作者 Jacob0226 · 合并时间 2026-03-28 15:28

分析状态 已生成
文件变更 2提交数 1 · 评论 9
代码增减 +96 / -0
ci test

执行摘要

为 AMD MI35x 添加 GLM-4.7-FP8 GSM8K 精度测试的 CI 任务。

PR 标题和 body 指出,目的是添加 GLM-4.7-FP8 模型在 MI35x 上的夜间 GSM8K 精度测试,以验证模型在该硬件上的准确性。

建议对 AMD 测试套件或模型精度验证感兴趣的工程师精读此 PR,关注测试配置、CI 集成方式以及 review 中的设计讨论。

讨论亮点

在 review 中,gemini-code-assist[bot] 指出了三个问题:1) 重复设置 tensor parallelism 参数,可能导致启动错误;2) 硬编码 Hugging Face 缓存路径,降低测试可移植性;3) 测试文件间代码重复,建议抽象。作者 Jacob0226 修复了重复参数问题,但为硬编码路径辩护称是 CI 环境特定需求,并认为代码重复在当前是合理的,因为 run_combined_tests 已封装核心逻辑。

实现拆解

实现分为两部分:首先,在 test/registered/amd/accuracy/mi35x/ 目录下新增 test_glm47_fp8_eval_mi35x.py 文件,定义使用 GSM8K 数据集和特定参数的精度测试。其次,修改 .github/workflows/nightly-test-amd-rocm720.yml 文件,添加新的 CI 任务 nightly-8-gpu-mi35x-glm47-fp8-rocm720,配置在 MI35x 硬件上运行此测试。

文件 模块 状态 重要度
.github/workflows/nightly-test-amd-rocm720.yml CI workflow modified 3.0
test/registered/amd/accuracy/mi35x/test_glm47_fp8_eval_mi35x.py test suite added 4.0

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

关键符号

TestGLM47FP8EvalMI35x.test_glm_47_fp8

评论区精华

重复 tensor parallelism 参数设置 正确性

reviewer gemini-code-assist[bot] 指出 base_args 和 ModelLaunchSettings 中重复设置 tp,可能导致重复参数错误。

结论:作者 Jacob0226 修复了此问题,移除了 base_args 中的 --tp=8。 · 已解决

硬编码 Hugging Face 缓存路径 设计

reviewer gemini-code-assist[bot] 批评硬编码路径 /data2/models/huggingface 降低了测试可移植性。

结论:作者 Jacob0226 回复称这是为 CI 环境特定设置,无需更改。 · unresolved

测试代码重复 设计

reviewer gemini-code-assist[bot] 建议抽象共享逻辑以减少 MI30x 和 MI35x 测试文件的重复。

结论:作者 Jacob0226 认为当前代码简洁,run_combined_tests 已封装核心,暂不抽象。 · unresolved

风险与影响

主要风险包括:1) 重复的 --tp 参数可能引起模型启动异常或错误;2) 硬编码路径使得测试依赖特定环境,在其他机器或目录变更时易失败;3) 代码重复增加了维护成本,未来类似测试需手动同步更改。

对系统:增加了 CI 流水线的执行时间和资源消耗,但提升了测试覆盖率。对用户:确保 GLM-4.7-FP8 模型在 AMD MI35x 上的精度可靠性。对团队:强化了 AMD 硬件测试能力,有助于早期发现潜在问题。

重复参数设置 硬编码路径 代码重复

关联 Issue

未识别关联 Issue

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

完整报告

执行摘要

该 PR 为 AMD MI35x 硬件添加了 GLM-4.7-FP8 模型的 GSM8K 精度 CI 测试,通过新增测试文件和 CI 任务扩展了测试覆盖,确保模型在特定配置下的准确性。

功能与动机

动机是添加 GLM-4.7-FP8 模型在 AMD MI35x 上的夜间 GSM8K 精度测试,以验证模型在该硬件上的性能。PR body 明确指出目标是“Add nightly GSM8K accuracy test for GLM-4.7-FP8 on AMD MI35x (8-GPU TP8).”

实现拆解

  • 测试文件:新增 test/registered/amd/accuracy/mi35x/test_glm47_fp8_eval_mi35x.py,定义了一个使用 GSM8K 数据集、TP8 配置和特定解析器的精度测试类 TestGLM47FP8EvalMI35x
  • CI 配置:修改 .github/workflows/nightly-test-amd-rocm720.yml,添加新的 CI 任务 nightly-8-gpu-mi35x-glm47-fp8-rocm720,配置在 MI35x 硬件上运行上述测试。

评论区精华

  • 重复参数设置:reviewer gemini-code-assist[bot] 指出测试中重复设置 --tp=8 参数,可能导致启动错误。作者 Jacob0226 已修复。
  • 硬编码路径:reviewer 批评硬编码 Hugging Face 缓存路径,但作者辩称是 CI 环境特定需求。
  • 代码重复:reviewer 建议抽象共享逻辑,作者认为当前代码足够简洁,暂不实施。

风险与影响

风险:重复参数可能引起模型启动异常;硬编码路径降低测试可移植性;代码重复增加维护负担。

影响:对系统增加 CI 负载,但对用户提升了模型可靠性和对团队增强了测试能力。

关联脉络

与此 PR 相关的历史 PR 包括其他 CI 和测试改进,如 PR 21585 和 21579,但本 PR 专注于 AMD 硬件特定测试,是测试套件扩展的一部分。

参与讨论