Prhub

#28382 refactor(runner): unify pp_proxy_tensors forward kwarg into one helper

原始 PR 作者 ch-wan 合并时间 2026-06-18 17:23 文件变更 1 提交数 1 评论 2 代码增减 +11 / -9

执行摘要

抽取 pp_proxy_tensors 关键字为统一辅助方法

forward_decode / forward_extend / forward_idle 各自重复了 kwargs = {}; if support_pp: kwargs[\"pp_proxy_tensors\"] = ... 的惯用写法,抽取为 _pp_kwargs(pp_proxy_tensors) 以集中维护,避免未来新增 forward 模式时再次复制粘贴。

值得精读的程度不高,但可以作为“小步重构”的示例:一次只消除一个重复模式,附带清晰的文档字符串。建议未来新增任何 forward 模式都使用 _pp_kwargs

讨论亮点

该 PR 没有 review 评论和 discussions,唯一的 comments 来自自动 bot(gemini-code-assist 和 chatgpt-codex-connector),内容为日常提醒,与技术决策无关。

实现拆解

  1. 新增 _pp_kwargs 方法:在 model_runner.pyModelRunner 类中新增私有方法 _pp_kwargs(self, pp_proxy_tensors) -> dict,根据 self.support_pp 决定是否将 pp_proxy_tensors 放入返回的 dict 中。该方法紧接在 _eager_fb_view 之后定义。
  2. 替换 forward_decode 中的重复逻辑:将原来 kwargs = {}; if self.support_pp: kwargs[\"pp_proxy_tensors\"] = pp_proxy_tensors 替换为一行 kwargs = self._pp_kwargs(pp_proxy_tensors)
  3. 替换 forward_extend 中的重复逻辑:同样将 kwargs = {}; if self.support_pp: ... 替换为一行调用,且 _pp_kwargs 返回的 dict 后续仍可添加 input_embeds/get_embedding 等额外键值。
  4. 替换 forward_idle 中的重复逻辑:同样替换为 kwargs = self._pp_kwargs(pp_proxy_tensors)
  5. 保持不变区域_dummy_run 方法中的 pp 路径因契约不同而保持原样,未使用 _pp_kwargs
文件 模块 状态 重要度
python/sglang/srt/model_executor/model_runner.py 运行器 modified 6.05

关键符号

_pp_kwargs

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

评论区精华

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

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

风险与影响

该 PR 是纯行为保持的辅助方法抽取,不改变任何运行时逻辑。风险极低:

  • _pp_kwargs 中的条件与原来完全一致(均基于 self.support_pp)。
  • 三个调用点均被替换,没有遗漏。
  • 没有性能影响(创建小 dict 的成本可忽略)。
  • 未引入新的依赖或修改现有契约。

影响范围局限于 ModelRunner 类内部,对用户、系统、API 无任何影响。团队维护成本略有降低,新增 forward 模式时只需调用 _pp_kwargs 即可。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论