执行摘要
- 一句话:Diffusion CI 一致性 GT 迁移至新仓库
- 推荐动作:该 PR 属于基础设施清理,技术含量低,但作为 CI 链路的一部分值得关注。建议阅读以了解 diffusion CI 的数据管理方式。
功能与动机
原先的 GT 数据发布在 sgl-project/ci-data,但该仓库已被冻结且只读。为了支持独立的 GT 生成工作流以及更灵活的平台管理,需要将 GT 发布到新的 sgl-project/ci-data-diffusion 仓库。PR body 的注释和代码注释也说明了这一背景。
实现拆解
- 更新数据源仓库和 commit SHA:在
python/sglang/multimodal_gen/test/test_utils.py 中,将 SGL_TEST_FILES_CI_DATA_REPO 从 "sgl-project/ci-data" 改为 "sgl-project/ci-data-diffusion",并将 SGL_TEST_FILES_CI_DATA_REVISION 从旧的 commit 320949e... 更新为新仓库的 commit 6d689f4...。
- 合并 NPU 平台的 commit 为同一值:原先 NPU 平台使用独立的 revision
6b62f4b...,现在将其改为与默认平台相同的 commit 6d689f4...,并在注释中说明 NPU pin 保留为独立分支以支持独立更新节奏。
- 同步更新单元测试断言:在
python/sglang/multimodal_gen/test/unit/test_consistency_metrics.py 的 test_consistency_gt_urls_are_pinned_to_ci_data_revision 测试中,修改断言逻辑:新增 SGL_TEST_FILES_CI_DATA_REVISION != "main" 的检查,并将硬编码的 /ci-data/ 路径改为动态拼接 repo 和 revision 的路径格式,同时移除旧的对 /ci-data/main/ 的否定断言。确保测试与新的 repo/revision 组合兼容。
关键文件:
python/sglang/multimodal_gen/test/test_utils.py(模块 测试工具;类别 test;类型 test-coverage): 核心变更文件,更新了 GT 数据仓库和 commit SHA,并调整了 NPU 平台的 revision 策略。
python/sglang/multimodal_gen/test/unit/test_consistency_metrics.py(模块 一致性测试;类别 test;类型 test-coverage): 更新单元测试以匹配新的 repo 和 revision 格式,确保断言仍然有效。
关键符号:未识别
关键源码片段
python/sglang/multimodal_gen/test/test_utils.py
核心变更文件,更新了 GT 数据仓库和 commit SHA,并调整了 NPU 平台的 revision 策略。
# GT is read from <repo>@<revision>. A given SHA only exists in the repo it was
# committed to, so REPO and REVISION must be bumped together. All GT (CUDA and
# NPU/ascend) is read from sgl-project/ci-data-diffusion, where the GT-gen workflows
# publish.
SGL_TEST_FILES_CI_DATA_REPO = "sgl-project/ci-data-diffusion"
SGL_TEST_FILES_CI_DATA_REVISION = "6d689f4833e8c106ff0d853865f50496d1f2b453"
# The NPU pin is kept as a separate branch so ascend GT can be bumped independently
# when it's regenerated on its own cadence.
if current_platform.is_npu():
SGL_TEST_FILES_CI_DATA_REVISION = "6d689f4833e8c106ff0d853865f50496d1f2b453"
python/sglang/multimodal_gen/test/unit/test_consistency_metrics.py
更新单元测试以匹配新的 repo 和 revision 格式,确保断言仍然有效。
def test_consistency_gt_urls_are_pinned_to_ci_data_revision():
# GT must be pinned to an immutable commit (not a moving branch) so results are
# reproducible and the per-URL download cache invalidates on regeneration.
assert test_utils.SGL_TEST_FILES_CI_DATA_REVISION != "main"
pinned_revision_path = (
f"/{test_utils.SGL_TEST_FILES_CI_DATA_REPO}/"
f"{test_utils.SGL_TEST_FILES_CI_DATA_REVISION}/"
)
assert (
pinned_revision_path in test_utils.SGL_TEST_FILES_OFFICIAL_CONSISTENCY_GT_BASE
)
assert pinned_revision_path in test_utils.SGL_TEST_FILES_SGLANG_CONSISTENCY_GT_BASE
评论区精华
无实质性 review 讨论。PR 获得 mickqian 的批准,无评论。
风险与影响
- 风险:低风险。变更仅涉及 CI 配置常量和单元测试断言,不触及任何运行时逻辑。风险主要在于新仓库
ci-data-diffusion 中是否存在对应 commit 的实际 GT 文件,但这是一个 CI 数据准备问题,非代码缺陷。
- 影响:影响范围仅限于 diffusion 模型的 CI 测试流程。对用户无影响;对系统的影响是 GT 数据来源的变更。团队需要确保
ci-data-diffusion 仓库中的 GT 数据与测试同步更新。
- 风险标记:CI 数据源变更
关联脉络
参与讨论