From b38c77f87547295927dc5f97ebb0c5880cf08fc0 Mon Sep 17 00:00:00 2001 From: Evandro Fonseca Junior Date: Thu, 26 Mar 2026 17:31:35 -0300 Subject: [PATCH] chore: fix autoresearch benchmark model id --- autoresearch.sh | 3 +++ experiments/bench_chat_latency.py | 40 ++++++++++++++++--------------- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/autoresearch.sh b/autoresearch.sh index 45cd03f..71c8a15 100644 --- a/autoresearch.sh +++ b/autoresearch.sh @@ -6,6 +6,8 @@ ROOT="$SCRIPT_DIR" PORT="${LOCALLLM_BENCH_PORT:-18080}" HOST="127.0.0.1:${PORT}" MODEL_PATH="${LOCALLLM_MODEL:-$ROOT/models/Qwen3.5-4B-Abliterated-Claude-4.6-Opus-Reasoning-Distilled.i1-Q6_K.gguf}" +MODEL_ID="${LOCALLLM_BENCH_MODEL_ID:-$(basename "$MODEL_PATH")}" +MODEL_ID="${MODEL_ID%.gguf}" SERVER_BIN="$ROOT/target/release/localllm.exe" LOG_DIR="$ROOT/logs" SERVER_LOG="$LOG_DIR/autoresearch-server.log" @@ -39,4 +41,5 @@ SERVER_PID=$! python "$ROOT/experiments/bench_chat_latency.py" \ --base-url "http://$HOST" \ + --model-id "$MODEL_ID" \ --server-log "$SERVER_LOG" diff --git a/experiments/bench_chat_latency.py b/experiments/bench_chat_latency.py index ceff1ce..56b6668 100644 --- a/experiments/bench_chat_latency.py +++ b/experiments/bench_chat_latency.py @@ -9,21 +9,6 @@ import urllib.error import urllib.request -PAYLOAD = { - "model": "local-model", - "stream": False, - "temperature": 0.0, - "top_p": 1.0, - "max_completion_tokens": 48, - "messages": [ - { - "role": "user", - "content": "Write a compact Rust function that parses a comma-separated list of u32 values and returns a Vec while ignoring empty segments.", - } - ], -} - - def percentile(sorted_values, pct): if not sorted_values: return 0.0 @@ -63,8 +48,24 @@ def wait_for_health(base_url, timeout_s, server_log): sys.exit(1) -def run_once(base_url): - body = json.dumps(PAYLOAD).encode("utf-8") +def build_payload(model_id): + return { + "model": model_id, + "stream": False, + "temperature": 0.0, + "top_p": 1.0, + "max_completion_tokens": 48, + "messages": [ + { + "role": "user", + "content": "Write a compact Rust function that parses a comma-separated list of u32 values and returns a Vec while ignoring empty segments.", + } + ], + } + + +def run_once(base_url, model_id): + body = json.dumps(build_payload(model_id)).encode("utf-8") req = urllib.request.Request( base_url + "/v1/chat/completions", data=body, @@ -82,6 +83,7 @@ def run_once(base_url): def main(): parser = argparse.ArgumentParser() parser.add_argument("--base-url", required=True) + parser.add_argument("--model-id", required=True) parser.add_argument("--server-log", default="") parser.add_argument("--warmups", type=int, default=1) parser.add_argument("--samples", type=int, default=7) @@ -91,12 +93,12 @@ def main(): wait_for_health(args.base_url, args.health_timeout, args.server_log) for _ in range(args.warmups): - run_once(args.base_url) + run_once(args.base_url, args.model_id) latencies = [] tps_values = [] for _ in range(args.samples): - latency_ms, tps = run_once(args.base_url) + latency_ms, tps = run_once(args.base_url, args.model_id) latencies.append(latency_ms) tps_values.append(tps)