执行摘要
- 一句话:为AMD MI355X添加GLM-5.1-MXFP4 TP=2 GSM8K准确率门控测试
- 推荐动作:该PR结构清晰、用途明确,值得在AMD CI相关维护者中了解。其中
_raise_nofile_limit 和 _get_model_path 是硬件测试中常见的实用工具,可复用于未来测试。建议关注其CI运行稳定性,并根据实际硬件资源调整 num_questions 和 parallel 等参数。
功能与动机
关联Issue #25742报告了GLM-5.1-MXFP4在AMD MI355X上TP=2时GSM8K准确率大幅下降(off: 0.32, EAGLE-MTP: 0.18),而TP=8仍保持正常。现有8-GPU覆盖未能捕获此回归,因此需要为TP=2添加特定的准确率门控测试,防止未来aiter或SGLang变更无声地重新引入该退化。
实现拆解
该PR仅新增一个测试文件,整体实现拆解如下:
- 注册CI套件:通过
register_amd_ci(est_time=3600, suite="stage-c-test-large-8-gpu-amd-mi35x") 将测试加入AMD大型GPU CI阶段。
- 定义模型路径和阈值:设置模型ID
amd/GLM-5.1-MXFP4,提供本地回退路径,并设定准确率阈值≥0.92、无效率≤0.02。默认并行1200个请求。
- 启动服务器(setUpClass):在
setUpClass 中提升进程文件描述符软限制(避免 Too many open files),然后调用 popen_launch_server 启动SGLang服务,配置TP=2、DSA tilelang prefill/decode、FP8 KV Cache、GLM解析器以及其他必要参数。
- 运行GSM8K测试(test_gsm8k_accuracy):从环境变量获取问题数量和并行度,调用
sglang.test.few_shot_gsm8k.run_eval 执行5-shot GSM8K评估,收集准确率和无效率指标并断言满足阈值。同时在CI中输出Markdown摘要。
- 清理(tearDownClass):通过
kill_process_tree 终止服务器进程。
关键文件:
test/registered/amd/accuracy/mi35x/test_glm51_mxfp4_tp2_gsm8k_mi35x.py(模块 CI门控;类别 test;类型 test-coverage;符号 _raise_nofile_limit, _get_model_path, TestGLM51MXFP4TP2GSM8KMI35x, setUpClass): 该文件是PR的唯一变更,实现了整个准确率门控测试:包含CI注册、服务器启动、GSM8K评估和阈值断言。
关键符号:_raise_nofile_limit, _get_model_path, TestGLM51MXFP4TP2GSM8KMI35x.setUpClass, TestGLM51MXFP4TP2GSM8KMI35x.tearDownClass, TestGLM51MXFP4TP2GSM8KMI35x.test_gsm8k_accuracy
评论区精华
无实质性讨论。仅作者提交后由 HaiShaw 快速批准(APPROVED),无任何review评论。
风险与影响
- 风险:低风险:该PR仅添加测试文件,不修改任何运行时代码。风险主要来自外部依赖:
- 测试依赖特定硬件(AMD MI355X/gfx950)和本地模型路径,若CI环境不匹配则可能跳过或失败。
est_time=3600 可能导致CI超时(实际约250秒,留有余量但仍有阻塞风险)。
- 使用
kill_process_tree 如果进程异常可能留下孤儿进程,但已在 tearDownClass 中处理。
- 影响:影响范围:仅限于AMD CI流程中的
stage-c-test-large-8-gpu-amd-mi35x 套件。每次PR提交(AMD相关)将额外运行约4分钟的GSM8K评估(实际测得249秒),增加了CI总耗时但保证了关键模型TP=2的精度回归检测。对用户和其他平台无影响。
- 风险标记:硬件依赖, CI耗时增加, 环境路径敏感
关联脉络
参与讨论