Add metrics for speculative decoding (acceptance rate, average acceptance length) (#11441)

This commit is contained in:
Scott Lee
2025-10-13 11:24:27 -07:00
committed by GitHub
parent f4aa78801e
commit b6fb5d7666
9 changed files with 70 additions and 1 deletions
+8
View File
@@ -127,6 +127,7 @@ class SchedulerStats:
# Speculative decoding
spec_accept_length: float = 0.0
spec_accept_rate: float = 0.0
# Retract
num_retracted_reqs: int = 0
@@ -220,6 +221,12 @@ class SchedulerMetricsCollector:
labelnames=labels.keys(),
multiprocess_mode="mostrecent",
)
self.spec_accept_rate = Gauge(
name="sglang:spec_accept_rate",
documentation="The average acceptance rate of speculative decoding (`accepted tokens / total draft tokens` in batch).",
labelnames=labels.keys(),
multiprocess_mode="mostrecent",
)
# Retract
self.num_retracted_reqs = Gauge(
@@ -520,6 +527,7 @@ class SchedulerMetricsCollector:
# Speculative decoding
self._log_gauge(self.spec_accept_length, stats.spec_accept_length)
self._log_gauge(self.spec_accept_rate, stats.spec_accept_rate)
# PD disaggregation
self._log_gauge(