Prhub

#21804 [Misc] Fix comparator e2e tests: add polars dep + fix dp-attention test

原始 PR 作者 alisonshao 合并时间 2026-04-02 06:44 文件变更 2 提交数 2 评论 6 代码增减 +29 / -4

执行摘要

修复比较器端到端测试:添加 polars 依赖并修正 dp-attention 测试逻辑。

修复比较器端到端测试中的两个缺陷:

1) 由于缺少polars依赖,比较器子进程在运行前就因ModuleNotFoundError崩溃,导致测试从未真正执行比较;
2) dp-attention测试中的mlp_output维度标注错误,且解码步骤的令牌分布在多个DP rank上,违反了单rank假设。这些问题在之前的dump比较器PR系列(#19274, #19681)中引入但未被发现。

该PR值得快速浏览,特别是对于维护测试基础设施的工程师。关注点:

1) 依赖管理的完整性;
2) 测试中硬件特定假设(如dp-attention模式)的准确性;
3) 允许特定张量比较失败的权衡。

讨论亮点

无review评论,但PR body中详细说明了修复原因和测试计划,并通过多个CI运行链接验证了修复效果。

实现拆解

实现分为两部分:

1) 在python/pyproject.toml的test依赖组中添加polars包,确保比较器模块能正常导入;
2) 在test/registered/debug_utils/test_engine_dumper_comparator_e2e.py中修正dp-attention测试:将mlp_output的dims从't h # tp:replicated'改为't h[moe_tp:partial] # tp:replicated',添加--end-step 0参数限制比较到预填充步骤,并添加--allow-failed-pattern mlp_output允许mlp_output比较失败。

文件 模块 状态 重要度
python/pyproject.toml 依赖管理 modified 5.0
test/registered/debug_utils/test_engine_dumper_comparator_e2e.py 测试框架 modified 6.0

关键符号

test_dp_attention _run_e2e_scenario

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

评论区精华

测试依赖缺失 正确性

比较器模块需要 polars 但未在依赖中声明,导致测试提前崩溃。

结论:在 python/pyproject.toml 的 test 依赖组中添加 polars。 · 已解决

dp-attention 测试逻辑错误 正确性

mlp_output 维度标注错误且解码步骤违反单 DP rank 假设。

结论:修正维度标注,限制比较到预填充步骤,并允许 mlp_output 失败。 · 已解决

风险与影响

风险较低:

1) 依赖添加仅影响测试环境,不改变运行时行为;
2) 测试逻辑修正使比较更准确,但允许mlp_output失败可能掩盖潜在问题;
3) 限制比较到预填充步骤可能遗漏解码步骤的回归。

影响范围限于测试基础设施:修复后比较器端到端测试能正常运行,有助于发现未来代码变更引入的回归问题。对用户和系统无直接影响,但提升了测试覆盖的可靠性。

测试逻辑修正 依赖管理

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论