← TinyGPT · docs · devlog · roadmap · speedup
source: docs/research/mac_slm_leaderboard_v0.md · view on GitHub ↗

Mac SLM agentic leaderboard v0

Status: scaffolding shipped 2026-06-13; populated as models are benchmarked locally via scripts/eval_slm_full.sh.

Why it exists. Each suite already produces its own JSON, but no single view answers “which Mac-runnable SLM is the best agent for Pace right now?” That question is what a product-shape leaderboard exists to answer: rank by composite, then drill into the dimensions that matter for the specific deployment (e.g. tight RSS for ANE routing later, high BFCL for tool-calling primary).

Composite formula. accuracy × speed × cost, where:

This mirrors scripts/score_formula.py:230 rather than redefining the formula here — if you change the weights, change them there and let this doc inherit.

How to add a model (one command + a manifest line):

# 1. Run all four suites against the model
scripts/eval_slm_full.sh <lm-studio-model-id> <tag>

# 2. Add a row to the manifest
cat docs/research/data/leaderboard_manifest.json
# {"rows": [
#   {"label": "gemma-3-12b-it", "params": "12B",
#    "unhappy_tag": "h2-gemma-12b",
#    "bfcl_json":   "docs/research/data/bfcl-gemma-12b.json",
#    "tau_json":    "docs/research/data/tau-gemma-12b.json",
#    "decode_json": "docs/research/data/decode-gemma-12b.json"}
# ]}

# 3. Rebuild this page
python3 scripts/build_slm_leaderboard.py \
    --manifest docs/research/data/leaderboard_manifest.json

Leaderboard

rankmodelparamsdecode tok/sTTFT p99 (ms)RSS p99 (MB)BFCL avgτ-bench avgunhappy avgcomposite
1google/gemma-3-12b12B36.3187.9909764.20.105
2google/gemma-3-12b (v11-compact)12B36.3187.9909757.50.094

Protocol

Publication rows should use the B23/B32 repeated-run protocol when the suite is stochastic or agentic: run tinygpt eval-gate --passes 3 (or higher for final claims) with --budget evals/sample-budget.json, report the candidate mean, and keep gate-result.json alongside the suite JSON. The gate records per-trial scores, stdev, stderr, and 95% CI under candidateStats, and records the fixed max-step / sampling / sandbox budget under "protocol", so a leaderboard claim can distinguish a real model delta from single-run noise and protocol drift.

What each column measures

Caveats v0 will ship with