fix(critical): 3 bugs causing 0.0 score — OOM crash + thinking param + multimodal

Bug 1 (FATAL): computility-run.yaml max-model-len 256000 → 131072,
gpu-memory-utilization 0.95 → 0.90, max-num-batched-tokens 4096 → 8192.
Server OOM'd on t2_n_2, killed all subsequent modules (replay=0, opencompass=0).

Bug 2 (functional): protocol.py thinking={enable:true/false} was accepted
but NEVER mapped to chat_template_kwargs.enable_thinking. Qwen3 template
never received the parameter → t1a, t1c, d07, d10 all FAIL.

Bug 3 (functional): chat_utils.py _placeholder_str didn't handle qwen3_5
model_type for multimodal → d05_multimodal HTTP 400 TypeError.

Expected: functional pass rate 0.41 → 0.90+, server stays alive for all
4 modules, total score 0.0 → 60000+ (matching reference sub 168).
This commit is contained in:
Claude
2026-08-07 07:05:40 +00:00
parent 539fe7745b
commit 16f0b30d2e
3 changed files with 18 additions and 5 deletions

View File

@@ -408,6 +408,17 @@ class ChatCompletionRequest(OpenAIBaseModel):
if data.get("max_completion_tokens") is not None and data.get("max_tokens") is None:
data["max_tokens"] = data["max_completion_tokens"]
# Map thinking={enable:true/false} → chat_template_kwargs.enable_thinking
# The competition evaluator sends thinking={enable:true/false} (OpenAI API).
# Qwen3's chat template expects enable_thinking=True/False in kwargs.
thinking = data.get("thinking")
if isinstance(thinking, dict):
enable = thinking.get("enable")
if enable is not None:
ctk = data.get("chat_template_kwargs") or {}
ctk["enable_thinking"] = bool(enable)
data["chat_template_kwargs"] = ctk
messages = data.get("messages")
if not isinstance(messages, list):
return data