Prhub

#22405 [CICD] [prefill-only] Consolidate prefill-only model E2E tests

原始 PR 作者 sundar24295s 合并时间 2026-04-09 15:54 文件变更 16 提交数 4 评论 2 代码增减 +757 / -1398

执行摘要

统一 prefill-only 模型测试目录结构,提升代码维护性和 CI 覆盖。

根据PR body描述,问题在于'prefill-only model tests were scattered across four unrelated directories with no consistent home',导致维护困难和CI覆盖不全(如test/srt/test_multi_item_scoring.py未注册在CI中)。目标是'consolidate prefill-only model E2E tests'以提供统一测试结构,解决测试混杂和可维护性问题。

建议精读以了解测试组织最佳实践,特别是如何按功能模块(如prefill-only vs input-embedding)划分测试目录。重点关注test_score_engine.pytest_score_api.py的设计,它们展示了不同API层(引擎vs HTTP)的测试策略和验证方法。

讨论亮点

review评论中无实质性讨论,仅有一位审核者(hnyls2002)批准。PR body中作者详细阐述了变更理由、验证过程和测试结果,但没有外部交互讨论或争议点。

实现拆解

实现方案按模块拆解:

1) 创建新目录test/registered/prefill_only/,将分散在core/models/openai_server/basic/embedding/的prefill-only测试文件移动至此;
2) 将test/registered/embedding/重命名为test/registered/input_embedding/,仅保留输入嵌入功能测试文件;
3) 移动单元测试文件test_pooler_score_and_pool.pyunit/根目录到unit/layers/以匹配源码层级;
4) 重新组织计分测试,用两个新文件test_score_engine.py(引擎API测试)和test_score_api.py(HTTP API测试)替换旧文件;
5) 更新.github/CODEOWNERS以反映新路径。

文件 模块 状态 重要度
test/registered/prefill_only/test_score_engine.py 测试 added 6.0
test/registered/prefill_only/test_score_api.py 测试 added 6.0
.github/CODEOWNERS 基础设施 modified 4.0
test/registered/input_embedding/test_input_embeddings.py 测试 renamed 3.0

关键符号

TestCausalLMScoring TestSeqClsScoring TestCausalLMScoringHTTP _hf_scores _assert_scores_close

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

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险较低但需注意:

1) 文件移动和路径变更可能导致现有CI脚本或外部引用失效,但作者已更新CODEOWNERS并本地验证测试通过;
2) 新目录结构需开发团队适应,可能短期增加学习成本;
3) 移除旧文件如test/registered/core/test_score_api.py可能影响git历史追踪,但通过提交记录可追溯。

影响范围有限:

1) 对终端用户无直接影响,仅涉及内部测试代码重构;
2) 系统测试更结构化,可能提升CI效率和问题定位速度;
3) 开发团队需更新本地环境以匹配新目录,但长期维护成本降低;
4) 关联CODEOWNERS更新确保了代码所有权清晰。

路径变更风险 测试覆盖验证

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论