Session final: bakeoff fix, branding fonts, 3-GPU parallel self-play
Current running state: - Prod: mortdecai-v4 on RTX 4000, single-call, error correction, fall protection - Dev: Gemini 3.1 Flash Lite (preview) + 5 bots generating training data - Bake-off: v4 running on steel141 (3090 Ti) - Self-play: ready for overnight — 3 GPUs parallel (3090 Ti + 2080 Ti + RTX 4000) Changes: - Bakeoff parser: strips think blocks, handles dict/list types - Branding fonts: Rajdhani-Bold (official), Exo2, Orbitron, Oxanium, SpaceGrotesk - Gemini 3.1 pricing added to cost tracker Active data collection: - Gemini 3.1 Flash Lite bots on dev ($20 budget, ~$4/hr with 5 bots) - Self-play overnight: 3 tiers × 3 GPUs = ~9x throughput - Training audit logging on all servers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+18
-4
@@ -64,10 +64,24 @@ def ollama_chat(model: str, messages: list, ollama_url: str,
|
||||
|
||||
|
||||
def parse_response(content: str) -> dict:
|
||||
"""Parse LLM JSON response."""
|
||||
"""Parse LLM JSON response, stripping think blocks."""
|
||||
# Strip think blocks
|
||||
content = re.sub(r'<think>[\s\S]*?</think>\s*', '', content).strip()
|
||||
try:
|
||||
return json.loads(content)
|
||||
parsed = json.loads(content)
|
||||
# Ensure commands is a list of strings
|
||||
cmds = parsed.get("commands", [])
|
||||
if isinstance(cmds, list):
|
||||
parsed["commands"] = [c for c in cmds if isinstance(c, str)]
|
||||
return parsed
|
||||
except json.JSONDecodeError:
|
||||
# Try to extract JSON from markdown wrapper
|
||||
match = re.search(r'\{[\s\S]*\}', content)
|
||||
if match:
|
||||
try:
|
||||
return json.loads(match.group())
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
cmds = re.findall(r'"(/?\w[^"]*)"', content)
|
||||
return {"commands": cmds, "message": "", "reasoning": "parse_fallback"}
|
||||
|
||||
@@ -239,8 +253,8 @@ def run_bakeoff(models: list, ollama_url: str, no_think: bool = False):
|
||||
|
||||
if not scores["cmd_match"]:
|
||||
expected_cmds = ex["output"].get("commands", [])
|
||||
print(f" Expected: {expected_cmds[:2]}")
|
||||
print(f" Got: {actual_cmds[:2]}")
|
||||
print(f" Expected: {expected_cmds[:2] if isinstance(expected_cmds, list) else expected_cmds}")
|
||||
print(f" Got: {actual_cmds[:2] if isinstance(actual_cmds, list) else actual_cmds}")
|
||||
|
||||
results.append({
|
||||
"id": eid,
|
||||
|
||||
Reference in New Issue
Block a user