← TinyGPT · docs · devlog · roadmap · speedup
source: docs/prds/local-model-arena-selfplay.md · view on GitHub ↗

Local-model arena (self-play RLVR on turn-based strategy games)

Pit Mac-local models against each other — and against a frontier model — in turn-based strategy games, then RL a local model in-environment until it beats the frontier model that plays the same game zero-shot.

Why this is the sharpest version of the north star

Steal first (do NOT build an arena from scratch)

Game selection (the one real design call)

Pick for: turn-based, crisp + cheap-to-check win condition, RL-improvable (learned heuristics beat brute reasoning), cheap to simulate many rollouts, low observation/action token cost.

Design

  1. Player adapter — wrap mlx_lm generate as a TextArena agent (observation string → legal action string). Frontier agent reuses the OpenAI-style client from scripts/bfcl_multiturn_deepseek.py.
  2. Baseline tournament (“before”) — local-stock vs frontier-zero-shot vs scripted/random; record win rates (TrueSkill).
  3. Self-play RLVR — GRPO on the local policy; reward = game outcome (win +1 / lose −1, optional shaping). Opponent = a frozen snapshot / past-self pool so the policy isn’t chasing a moving target; refresh the pool periodically.
  4. Re-tournament (“after”) — does the RL’d local model beat frontier-zero-shot? Track the win-rate trend during training + the final head-to-head.

Acceptance criteria

Risks / notes

Future — the actual “arena product”

Many games + a public Mac local-model leaderboard (TrueSkill), sibling of the agentic leaderboard. Fold the viewer into the eval-leaderboard viewer (shipped) / B31 gallery.