执行摘要
multi-layer eagle 添加追踪钩子
为 multi_layer_eagle_worker.py 添加与 V1 EAGLE 相同的可观测性钩子,使 multi-layer eagle 的追踪能力与 V1 对齐,便于调试和性能分析。
值得合并,改动明确、风险低,提升了 multi-layer eagle 的可观测性。
无 review 讨论。
为 multi_layer_eagle_worker.py 添加与 V1 EAGLE 相同的可观测性钩子,使 multi-layer eagle 的追踪能力与 V1 对齐,便于调试和性能分析。
值得合并,改动明确、风险低,提升了 multi-layer eagle 的可观测性。
无 review 讨论。
multi_layer_eagle_worker.py 中导入 set_time_batch 和 get_global_tracing_enabled。forward_batch_generation 方法的 decode 分支中,在 draft/verify 前后插入 set_time_batch 调用以记录各阶段时间。req.time_stats.set_spec_verify_end_time 记录每个请求的正确 draft 数量。GenerationBatchResult 中新增 num_correct_drafts_per_req_cpu 字段,透传 verify_output 中的对应数组。| 文件 | 模块 | 状态 | 重要度 |
|---|---|---|---|
python/sglang/srt/speculative/multi_layer_eagle_worker.py |
投机解码 | modified | 6.58 |
python/sglang/srt/speculative/multi_layer_eagle_worker.py
dependency-wiring
唯一变更文件,添加了追踪钩子和透传字段。
# 新增导入
from sglang.srt.observability.req_time_stats import set_time_batch
from sglang.srt.observability.trace import get_global_tracing_enabled
# 在 forward_batch_generation 的 decode 分支中
# 设置 draft 开始时间(只用于 trace)
set_time_batch(batch.reqs, "set_spec_draft_start_time", trace_only=True)
with (
self.draft_tp_context(self.mtp_model_runner(0).tp_group),
speculative_moe_backend_context(),
):
verify_input = self.draft(batch)
# 记录 draft 结束和 verify 开始时间
set_time_batch(batch.reqs, "set_spec_draft_end_time", trace_only=True)
set_time_batch(batch.reqs, "set_spec_verify_start_time", trace_only=True)
batch.spec_info = verify_input
logits_output, verify_output, can_run_cuda_graph = self.verify(batch)
# 若全局追踪启用,逐个请求记录 verify 结束时间和正确 draft 数
if get_global_tracing_enabled():
for idx, req in enumerate(batch.reqs):
num_correct_drafts = verify_output.num_correct_drafts_per_req_cpu[idx]
req.time_stats.set_spec_verify_end_time(
num_correct_drafts=num_correct_drafts
)
# 记录 draft extend 开始时间
set_time_batch(
batch.reqs, "set_spec_draft_extend_start_time", trace_only=True
)
当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。
较低的回归风险:仅添加可观测性钩子和透传字段,不修改原有逻辑。但需确保 set_time_batch 和 get_global_tracing_enabled 在调用上下文中正确可用。
对用户透明,无接口变化。对开发者有益:multi-layer eagle 的时间追踪和 draft 统计现在与 V1 EAGLE 一致,便于调试和性能分析。
当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。
参与讨论