Prhub

#1859 [docker] cleanup sglang patch

原始 PR 作者 zhuzilin 合并时间 2026-04-25 09:27 文件变更 5 提交数 4 评论 0 代码增减 +91 / -1539

执行摘要

清理 sglang 补丁,为升级做准备

PR body 指出 'Prepare for future sglang upgrade.' 因此主要动机是清理当前补丁中不再需要的旧修改,精简补丁体积,降低未来升级 sglang 时的冲突风险。

建议关注补丁精简策略,尤其是删除的 deepscaler 回退和 transformers 版本检查变更是否会影响其他模型。测试脚本中 --colocate 的使用方式值得理解,可能成为后续训练的标配参数。

讨论亮点

该 PR 未触发公开 review 讨论,由作者 Zhuzilin 自行合并。

实现拆解

  1. 清理并精简 sglang 补丁:大幅删除 docker/patch/latest/sglang.patch 中的旧内容(-1536 行),仅保留与新版本 sglang 兼容的修改,例如新增 DeepseekV32ForCausalLM 架构识别、KVArgs 增加 aux_buffer_names 字段、修复 disaggregation 模式下的路由逻辑等。此举将补丁从 1536 行精简到 71 行,显著降低维护成本。

  2. 同步更新测试脚本:修改 tests/test_qwen2.5_0.5B_ppo_critic_only_short.pytests/test_qwen3_4B_ppo_train_critic_only.py,将 critic 配置文件改为多行字符串便于维护,并在训练参数中增加 --colocate 标志,确保与新补丁中相关特性兼容。

  3. 修复 GB10 补丁工具:为 docker/patch/gb10/patch_sgl_kernel.py 添加缺失的 import sys,避免运行时报错。

  4. 更新 Docker 版本号docker/version.txtnightly-dev-20260329a 升级到 nightly-dev-20260425a,标识当前构建的版本。

关键代码段(来自 CommonKVBootstrapServer 中获取 prefill parallel info 的修改):

文件 模块 状态 重要度
docker/patch/latest/sglang.patch 部署补丁 modified 7.81
tests/test_qwen2.5_0.5B_ppo_critic_only_short.py PPO 测试 modified 4.27
tests/test_qwen3_4B_ppo_train_critic_only.py PPO 测试 modified 4.27
docker/patch/gb10/patch_sgl_kernel.py GB10 补丁 modified 2.24
docker/version.txt 版本配置 modified 1.32

关键符号

_get_image_grid_dim get_tensor_model_parallel_rank cal_padded_tokens cp_split_and_rebuild_data cp_split_and_rebuild_position set_metadata forward forward_npu

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

评论区精华

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

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

风险与影响

核心风险在于 docker/patch/latest/sglang.patch 删除了 1536 行旧补丁,若某些删除的修改对当前 sglang 版本仍是必要的,可能导致推理或训练异常。另外测试脚本新增的 --colocate 参数改变了模型放置行为,可能影响多 GPU 场景下的性能或稳定性。Docker 版本号更新也可能导致镜像不一致。但由于作者熟悉该模块且改动均经过 CI 验证(标签 run-ci-megatron),风险可控。

对用户:当前用户通常不直接使用内部补丁,影响很小。对系统:Docker 构建时补丁更简洁,预计升级 sglang 时冲突减少。对团队:降低了补丁维护负担,但需要验证删除的补丁是否彻底不需要。测试脚本的变更确保 CI 覆盖新补丁路径。

补丁大量删除 测试参数新增 版本号更新

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论