-
Notifications
You must be signed in to change notification settings - Fork 5.1k
[AMD CI] Add moonshotai/Kimi-K2-Instruct-0905 testcases #17656
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
c204e16
4fe675a
aedfe79
a95b048
3bf654d
3740c87
5f57007
47a206d
1ae5f25
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,95 @@ | ||||||||||||||||||||||||||||||||||||||||
| import os | ||||||||||||||||||||||||||||||||||||||||
| import unittest | ||||||||||||||||||||||||||||||||||||||||
| from types import SimpleNamespace | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| import requests | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| from sglang.srt.utils import kill_process_tree | ||||||||||||||||||||||||||||||||||||||||
| from sglang.test.ci.ci_register import register_amd_ci | ||||||||||||||||||||||||||||||||||||||||
| from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k | ||||||||||||||||||||||||||||||||||||||||
| from sglang.test.send_one import BenchArgs, send_one_prompt | ||||||||||||||||||||||||||||||||||||||||
| from sglang.test.test_utils import ( | ||||||||||||||||||||||||||||||||||||||||
| DEFAULT_URL_FOR_TEST, | ||||||||||||||||||||||||||||||||||||||||
| CustomTestCase, | ||||||||||||||||||||||||||||||||||||||||
| is_in_ci, | ||||||||||||||||||||||||||||||||||||||||
| popen_launch_server, | ||||||||||||||||||||||||||||||||||||||||
| write_github_step_summary, | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| register_amd_ci(est_time=3600, suite="stage-c-test-large-8-gpu-amd-mi35x") | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| KIMI_K2_MODEL_PATH = "moonshotai/Kimi-K2-Instruct-0905" | ||||||||||||||||||||||||||||||||||||||||
| SERVER_LAUNCH_TIMEOUT = 3600 | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| class TestKimiK2Instruct0905(CustomTestCase): | ||||||||||||||||||||||||||||||||||||||||
| @classmethod | ||||||||||||||||||||||||||||||||||||||||
| def setUpClass(cls): | ||||||||||||||||||||||||||||||||||||||||
| cls.model = KIMI_K2_MODEL_PATH | ||||||||||||||||||||||||||||||||||||||||
| cls.base_url = DEFAULT_URL_FOR_TEST | ||||||||||||||||||||||||||||||||||||||||
| other_args = [ | ||||||||||||||||||||||||||||||||||||||||
| "--tp", | ||||||||||||||||||||||||||||||||||||||||
| "8", | ||||||||||||||||||||||||||||||||||||||||
| "--decode-attention-backend", | ||||||||||||||||||||||||||||||||||||||||
| "triton", | ||||||||||||||||||||||||||||||||||||||||
| "--prefill-attention-backend", | ||||||||||||||||||||||||||||||||||||||||
| "aiter", | ||||||||||||||||||||||||||||||||||||||||
| "--trust-remote-code", | ||||||||||||||||||||||||||||||||||||||||
| "--model-loader-extra-config", | ||||||||||||||||||||||||||||||||||||||||
| '{"enable_multithread_load": true}', | ||||||||||||||||||||||||||||||||||||||||
| ] | ||||||||||||||||||||||||||||||||||||||||
| env = os.environ.copy() | ||||||||||||||||||||||||||||||||||||||||
| env["SGLANG_USE_AITER"] = "1" | ||||||||||||||||||||||||||||||||||||||||
| env["SGLANG_ROCM_FUSED_DECODE_MLA"] = "0" | ||||||||||||||||||||||||||||||||||||||||
| cls.process = popen_launch_server( | ||||||||||||||||||||||||||||||||||||||||
| cls.model, | ||||||||||||||||||||||||||||||||||||||||
| cls.base_url, | ||||||||||||||||||||||||||||||||||||||||
| timeout=SERVER_LAUNCH_TIMEOUT, | ||||||||||||||||||||||||||||||||||||||||
| other_args=other_args, | ||||||||||||||||||||||||||||||||||||||||
| env=env, | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| @classmethod | ||||||||||||||||||||||||||||||||||||||||
| def tearDownClass(cls): | ||||||||||||||||||||||||||||||||||||||||
| kill_process_tree(cls.process.pid) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| def test_a_gsm8k( | ||||||||||||||||||||||||||||||||||||||||
| self, | ||||||||||||||||||||||||||||||||||||||||
| ): # Append an "a" to make this test run first (alphabetically) to warm up the server | ||||||||||||||||||||||||||||||||||||||||
| requests.get(self.base_url + "/flush_cache") | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| args = SimpleNamespace( | ||||||||||||||||||||||||||||||||||||||||
| num_shots=8, | ||||||||||||||||||||||||||||||||||||||||
| data_path=None, | ||||||||||||||||||||||||||||||||||||||||
| num_questions=1319, | ||||||||||||||||||||||||||||||||||||||||
| parallel=1319, | ||||||||||||||||||||||||||||||||||||||||
| max_new_tokens=512, | ||||||||||||||||||||||||||||||||||||||||
| host="http://127.0.0.1", | ||||||||||||||||||||||||||||||||||||||||
| port=int(self.base_url.split(":")[-1]), | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+61
to
+69
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hardcoding the host URL and manually parsing the port is brittle. For instance, if
Suggested change
|
||||||||||||||||||||||||||||||||||||||||
| metrics = run_eval_few_shot_gsm8k(args) | ||||||||||||||||||||||||||||||||||||||||
| print(f"{metrics=}") | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| if is_in_ci(): | ||||||||||||||||||||||||||||||||||||||||
| write_github_step_summary( | ||||||||||||||||||||||||||||||||||||||||
| f"### test_gsm8k (Kimi-K2-Instruct-0905)\n" | ||||||||||||||||||||||||||||||||||||||||
| f'{metrics["accuracy"]=:.3f}\n' | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| self.assertGreater(metrics["accuracy"], 0.94) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| def test_bs_1_speed(self): | ||||||||||||||||||||||||||||||||||||||||
| args = BenchArgs(port=int(self.base_url.split(":")[-1]), max_new_tokens=2048) | ||||||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Similar to
Suggested change
|
||||||||||||||||||||||||||||||||||||||||
| _, speed = send_one_prompt(args) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| print(f"{speed=:.2f}") | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| if is_in_ci(): | ||||||||||||||||||||||||||||||||||||||||
| write_github_step_summary( | ||||||||||||||||||||||||||||||||||||||||
| f"### test_bs_1_speed (Kimi-K2-Instruct-0905)\n" | ||||||||||||||||||||||||||||||||||||||||
| f"{speed=:.2f} token/s\n" | ||||||||||||||||||||||||||||||||||||||||
| ) | ||||||||||||||||||||||||||||||||||||||||
| self.assertGreater(speed, 45) | ||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||
| if __name__ == "__main__": | ||||||||||||||||||||||||||||||||||||||||
| unittest.main() | ||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To robustly parse the base URL, it's recommended to use Python's built-in
urlparsefunction. Please add the necessary import. This will make the URL handling in the test methods less brittle and more maintainable.