[tiny] migrate /get_server_info; print accept length in accuracy tests (#22282)
This commit is contained in:
@@ -9,12 +9,16 @@ from sglang.test.test_utils import is_in_amd_ci, is_in_ci, write_github_step_sum
|
|||||||
_THRESHOLD_NOT_SET = float("nan")
|
_THRESHOLD_NOT_SET = float("nan")
|
||||||
|
|
||||||
|
|
||||||
def _check_accept_length(test_case, base_url, threshold):
|
def _check_accept_length(test_case, base_url, threshold=None):
|
||||||
"""Check speculative decoding accept length from server info."""
|
"""Print accept length; optionally assert it exceeds threshold."""
|
||||||
server_info = requests.get(base_url + "/get_server_info").json()
|
try:
|
||||||
avg_spec_accept_length = server_info["internal_states"][0]["avg_spec_accept_length"]
|
server_info = requests.get(base_url + "/server_info").json()
|
||||||
print(f"{avg_spec_accept_length=}")
|
val = server_info["internal_states"][0]["avg_spec_accept_length"]
|
||||||
test_case.assertGreater(avg_spec_accept_length, threshold)
|
except (KeyError, IndexError, requests.RequestException):
|
||||||
|
return
|
||||||
|
print(f"avg_spec_accept_length={val:.4f}")
|
||||||
|
if threshold is not None:
|
||||||
|
test_case.assertGreater(val, threshold)
|
||||||
|
|
||||||
|
|
||||||
class GSM8KMixin:
|
class GSM8KMixin:
|
||||||
@@ -57,8 +61,7 @@ class GSM8KMixin:
|
|||||||
|
|
||||||
self.assertGreaterEqual(metrics["score"], self.gsm8k_accuracy_thres)
|
self.assertGreaterEqual(metrics["score"], self.gsm8k_accuracy_thres)
|
||||||
|
|
||||||
if self.gsm8k_accept_length_thres is not None:
|
_check_accept_length(self, self.base_url, self.gsm8k_accept_length_thres)
|
||||||
_check_accept_length(self, self.base_url, self.gsm8k_accept_length_thres)
|
|
||||||
|
|
||||||
|
|
||||||
class MMLUMixin:
|
class MMLUMixin:
|
||||||
@@ -95,8 +98,7 @@ class MMLUMixin:
|
|||||||
|
|
||||||
self.assertGreaterEqual(metrics["score"], self.mmlu_score_threshold)
|
self.assertGreaterEqual(metrics["score"], self.mmlu_score_threshold)
|
||||||
|
|
||||||
if self.mmlu_accept_length_thres is not None:
|
_check_accept_length(self, self.base_url, self.mmlu_accept_length_thres)
|
||||||
_check_accept_length(self, self.base_url, self.mmlu_accept_length_thres)
|
|
||||||
|
|
||||||
|
|
||||||
class HumanEvalMixin:
|
class HumanEvalMixin:
|
||||||
@@ -136,6 +138,8 @@ class HumanEvalMixin:
|
|||||||
|
|
||||||
self.assertGreaterEqual(metrics["score"], threshold)
|
self.assertGreaterEqual(metrics["score"], threshold)
|
||||||
|
|
||||||
|
_check_accept_length(self, self.base_url)
|
||||||
|
|
||||||
|
|
||||||
class MGSMEnMixin:
|
class MGSMEnMixin:
|
||||||
"""Mixin for MGSM English evaluation.
|
"""Mixin for MGSM English evaluation.
|
||||||
@@ -169,3 +173,5 @@ class MGSMEnMixin:
|
|||||||
write_github_step_summary(f"### test_mgsm_en\n{metrics['score']=:.4f}\n")
|
write_github_step_summary(f"### test_mgsm_en\n{metrics['score']=:.4f}\n")
|
||||||
|
|
||||||
self.assertGreaterEqual(metrics["score"], self.mgsm_en_score_threshold)
|
self.assertGreaterEqual(metrics["score"], self.mgsm_en_score_threshold)
|
||||||
|
|
||||||
|
_check_accept_length(self, self.base_url)
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ class TestNgramSpeculativeDecodingFlashinfer(TestNgramSpeculativeDecodingBase):
|
|||||||
return outputs
|
return outputs
|
||||||
|
|
||||||
def get_accept_length():
|
def get_accept_length():
|
||||||
info = requests.get(self.base_url + "/get_server_info").json()
|
info = requests.get(self.base_url + "/server_info").json()
|
||||||
return info["internal_states"][0]["avg_spec_accept_length"]
|
return info["internal_states"][0]["avg_spec_accept_length"]
|
||||||
|
|
||||||
# Phase 1: baseline — no SAM corpus loaded, only trie
|
# Phase 1: baseline — no SAM corpus loaded, only trie
|
||||||
|
|||||||
Reference in New Issue
Block a user