Prhub

#21793 Add latency and throughput metrics to run_eval

原始 PR 作者 hnyls2002 合并时间 2026-04-01 09:36 文件变更 2 提交数 2 评论 2 代码增减 +22 / -0

执行摘要

为 run_eval 添加延迟和吞吐量指标,支持 CI 回归检查。

根据 PR body,动机是 'Track completion_tokens in ChatCompletionSampler and compute output_throughput + latency in run_eval metrics. Foundation for regression CI checks.'

建议对 CI 工程师和测试开发者精读,以了解新的 metrics 计算方式;对于其他开发者,快速浏览即可。

讨论亮点

review 评论为空,表示没有进行讨论,变更直接通过。

实现拆解

实现包括两个关键改动:

1) 在 simple_eval_common.py 中,为 ChatCompletionSampler 类添加 _completion_tokens 列表属性,并在 __call__ 方法中收集每个响应的完成令牌。
2) 在 run_eval.pyrun_eval 函数中,为单个重复(repeat == 1)和多个重复(repeat > 1)场景分别计算总延迟和平均延迟,并根据累积完成令牌计算输出吞吐量,更新 metrics 字典。

文件 模块 状态 重要度
python/sglang/test/run_eval.py test modified 4.0
python/sglang/test/simple_eval_common.py test modified 3.0

关键符号

run_eval ChatCompletionSampler.__init__ ChatCompletionSampler.__call__

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

评论区精华

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

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

风险与影响

风险较低:代码逻辑简单,已处理除零情况(total_completion_tokens > 0 and latency > 0)。但需要确保 _completion_tokens 正确累积,避免在并发或错误情况下数据不一致。修改仅影响测试 metrics 收集,不涉及核心推理路径。

影响范围小:主要面向 CI 测试流程,添加了额外的性能指标,有助于监控模型变化。不影响最终用户功能,但可能影响基于这些 metrics 的自动化测试结果。

条件判断依赖 测试数据收集

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论