docs/research/2026-07-23-sigma0-rc1-model-spec.md
By Alex Place (drafted by Claude lane, 2026-07-23)

Σ₀-RC1 — the concrete local model spec for research & benchmarking

This is the buildable instantiation of the design of record: exact checkpoints, exact knobs, exact baselines, exact numbers to beat. Every experiment against it is comparable because everything here is pinned. Hardware ground truth: reference box = RTX8GB + Windows, Ollama daemon (healthy, currently stopped), .venv-train cu121, HF_HOME=D:\hf-cache.

1. The three arms (benchmark all; the tier bake-off IS the experiment)

Arm Checkpoint Size / serving footprint Why this arm
RC1-L (looped) ByteDance/Ouro-1.4B-Thinking via scripts/ouro_serve.py ~1.85GB (NF4) GPU · CPU-viable the design's pure-looped bet: weight-tied recursion + trained Q-exit; the only arm the JSRR gate + canary already instrument
RC1-D (dense comparator) qwen2.5-coder:1.5b (Ollama, Q4_K_M) ~1.1GB · CPU-viable strongest practical dense baseline at the tier; the 1.5B probe floor (AUROC 0.980/0.774) was measured at this class
RC1-D3 (tier ceiling) qwen2.5-coder:3b (Ollama, Q4_K_M) ~2.0GB · CPU-viable the top of the operator envelope (≤3B/≤4GB); tests whether the last doubling buys its cost

Escalation tier (not the product): qwen2.5-coder:7b Q4_K_M (~4.7GB — GPU boxes only; measured 0.829 HumanEval-164 single-shot = the local escalation reference) · cloud SPIRAL_FRONTIER_PROVIDER=openai for the true-frontier rescue arm.

Rejected for RC1 (on the record): 0.5B tier (probe floor fails, 0.703; retrieval measured harmful 6/6→2/6) · any MoE core (uncertified switched system — admission gate not built) · 7B as product tier (operator envelope: crashes the reference class).

2. Serving configuration (pinned)


# ── RC1-L: the looped arm, gates ON (this IS the P0 configuration) ──

OURO_NATIVE=1 OURO_MODE=qexit OURO_Q=0.5 \

OURO_4BIT=1 OURO_KV_INT8=1 OURO_UT_STEPS=4 \

OURO_CANARY=1 OURO_ADAPT=1 \

SIGMA0_JSRR_MARGIN=0.05 \

python scripts/ouro_serve.py          # :11434, Ollama wire protocol



# ── RC1-D / RC1-D3: dense arms ──

ollama serve &&  ollama pull qwen2.5-coder:1.5b qwen2.5-coder:3b

# CPU-mode runs: same models, OLLAMA num_gpu=0 (record tok/s separately)

Pinned decode params, all arms: temperature 1.0 / min_p 0.1 for the N-sample ladder (min-p replaces top-p — training-free quality+diversity win validated 1B–123B, OpenReview FBkpCyujtS; higher temp is exactly what min-p makes safe, buying Best-of-N diversity), temperature 0 for the single-shot baseline row; repetition_penalty 1.3, no_repeat_ngram 3 (RC1-L small-model guards); seed ladder 1337 + i for sample i (deterministic reruns). Context budget: 8k task window (Ouro's comfort zone; Qwen native 32k unused in RC1).

Sampling order is SEQUENTIAL with early stop (pinned harness behavior): generate sample i+1 only if sample i failed verification — easy tasks costsample, not N; N is a cap, not a batch size (adaptive-TTC allocation, arXiv:2602.01070). Queued next-wins, adopt-and-measure (B5/A-B rows, no claims until measured): prompt-lookup decoding on repair steps (repair output largely copies the failing candidate — draft-free speculation); llama.cpp speculative decoding for CPU rows with qwen2.5-coder:0.5b as draft (CPU 3B measured 1.72–2.03× upstream); EAGER-style entropy-gated branching for the anytime mode (arXiv:2510.11170: +12% pass@k at 64% fewer tokens, test-time); INT4 KV (InnerQ 2602.23200) after INT8 headroom is measured.

Gate receipts (required output, every RC1-L generation): one JSONL row — {ρ, jsrr_verdict, mean_depth, canary_proximity, exit_reason}data/sigma0/rc1-receipts.jsonl. Σ₀⁻¹ policy for RC1: observe_only=false, max_interventions=2/generation (bounded, receipted) — the certificate's C3 is conditional on permission to act; RC1 grants it bounded.

3. The system wrap (what makes it Σ₀ and not just a small model)

Spiral harness (spiral_solve / experiments/spiral_phase0.js) over each arm: N=8 samples default (budget dial: low=4, high=16) → real exec verifier (exec-verify, python runner, 8s timeout) → **held-out split: visible tests for selection, ≥1 held-out test for the scored verdict** (the transduction-trap rule — a solve only counts on held-out pass) → stall ⇒ escalate carrying best candidate + failing tests (teacher-as-repair, never blank-prompt) → honest-halt if unverified. Per-task budget caps: low $0.02 / high $0.25 equivalent (local compute priced at measured tok/s; cloud at list price).

4. Benchmark matrix (the numbers this model exists to produce)

# Benchmark Split / harness The row it fills
B1 HumanEval-164 verified cascade (the missing headline) scripts/humaneval_runner.py + spiral wrap verified pass@1, $/task, e, vs 0.829 escalation reference
B2 MBPP held-out [400–450) (the existing VTD split — never trained on) verified pass + regression check vs 21/50 base rows
B3 Depth-stability sweep (RC1-L only) OURO_UT_STEPS ∈ {2,4,6,8} on B2 accuracy-vs-depth + ρ trajectory (peak-then-collapse profile); the JSRR gate's first live-workload validation
B4 ARC-AGI-2 budgeted sample ADR-0031 harness (to build), 20-task public sample score @ $/task, two-budget experiment (design falsifier 7)
B5 Energy/throughput tok/s + nvidia-smi power polling (GPU); CPU runs wall-clock only, energy marked ESTIMATED verified-solves per watt-hour (honest caveat: Windows CPU energy is approximated)

Baselines every table must carry (or the number is unreportable): (a) same-arm single-shot temp-0; (b) same-arm Best-of-N majority, no verifier (isolates the verifier's contribution — Snell's claim dies or lives here); (c) 7B single-shot 0.829; (d) published tier numbers (Qwen2.5-Coder-1.5B/3B report cards) for external anchoring.

5. Acceptance / kill criteria (pre-registered)

  • RC1 ships as the research reference iff B1 verified-cascade beats baseline (b) at equal

compute AND beats baseline (a) by ≥15pp AND the B1 $/task is ≤⅕ of the 7B-single-shot cost row.

  • RC1-L (the looped bet) earns the core slot iff it beats RC1-D on B1-per-dollar or B3 shows

usable depth-scaling that dense arms structurally lack; else the design's core defaults to RC1-D and says so — the looped bet is falsifiable, not protected.

  • Kill row: if no arm beats baseline (b) at equal compute, verifier amplification is not

delivering above blind sampling here and the design's §1 claim is refuted at this tier — report it, per the certificate's honesty discipline.

6. Training path (AFTER RC1 baselines exist — never before)

VTD on the winning arm only: LlamaFactory, gentle config (lr 5e-5, ≤3 epochs, LoRA r=8, retention mix — corroborated by replay-mix results 2510.11842/2603.09892), data = escalation corpus + exec-verified TACO (Apache-2.0 primary; NC-tagged sets research-only), trace selection is utility-matched, not quality-maxed: high-reward teacher traces can impair small students (the Quality-Utility Paradox, arXiv:2606.16152 — externally confirms our measured run-1 negative, −6 ataggressive traces); prefer traces at the student's capability edge (the escalation corpus is exactly that set, by construction). Every promotion behind Σ_θ on fresh held-out (its first real run), then BitDistill ternary with #2873 probe survival as the acceptance test. GPU training is real spend (L4 class) and sits with the mookman handoff (#2850) — nothing in RC1 presumes it.

7. Build items standing between this spec and first numbers

  1. P0 (binding precondition, design-doc header): JSRR verdict + receipts on the default

serve path; Σ₀⁻¹ bounded-armed (the §2 config is P0's definition of done).

  1. Spiral wrap for humaneval_runner.py (B1) with the held-out split + cost meter — **including

the τ instrument**: measure visible-test adequacy as a mutation score (mutate the reference solution; do the visible tests kill the mutants?), and synthesize held-out tests from surviving mutants. Grounding: mutation feedback lifts test discrimination 53%→89.5% (Meta, arXiv:2501.12862); coverage ≠ fault detection. This gives design falsifierits measuring device.

  1. ARC-AGI-2 sample harness (B4) — smallest slice last.

Ollama daemon is currently stopped on the box; ollama serve before any RC1-D run. Everything else above exists today.