Writing · Open work

The nulls are
the product.

Most write-ups about improving LLMs show you what worked. This one leads with what didn't — four things I fully expected to help and that came back null — because with a frozen verifier, the nulls turn out to be the more trustworthy half of the map.

Project
LLM-IMPROVER
Benchmark
ARC-AGI
Hardware
Single RTX 5090
01 — The setupimprove any LLM, by verified means
The project asks a deliberately narrow question: can a harness take an off-the-shelf LLM and improve its score on a benchmark by any means a verifier will certify? The design is built to be hard to fool, because "self-improving AI" demos are usually just Goodharting the metric.

Four rules keep it honest: the held-out split is sacred — a lever only touches a test input if its program reproduces every training demo, no peeking. The delta is the product — system minus bare, on held-out; a bigger model's better absolute score is not a lever result. Model-swap or it's a trick — the base LLM is a socket, and any real lever survives swapping it. And one lever at a time.

Why this matters for nulls: when a lever comes back zero here, it's the verifier doing its job, not a bug. Nothing reached the test set unless it provably worked on the demos — so a null is a real, trustworthy statement about the world, not "the code broke."

02 — What workedthe real levers

So the rig isn't just failing at everything — three things moved the needle:

Levers that hold
Model capacity is the ~10× lever. Bare held-out accuracy: 3B 3.2% → gemma-4-31B 9.5% → Qwen3.6-27B 34.9%. Swapping the socket beat any clever harness trick.
Verified search compounds, log-linearly. Best-of-N (sample N candidate programs, keep any the verifier accepts) took verified held-out programs from 1 → 2 → 3 as N went 1 → 8 → 16. Real, but each doubling buys about one more task.
The refine loop works, on a capable model. Show the model the verifier's actual diff and let it revise: a 31B model closed two tasks on round two that it missed on round one.

Small deltas — one to three tasks — but real, and they stack on top of whatever the base model gives you.

03 — The four nullsthe useful half
Expected to help — came back null
01
Object-ontology structure — null at every scale. Reframing grids as objects/roles/relations, with a typed diagnosis of each failure, added zero verified programs from 3B through 31B. Reframing the state space doesn't manufacture a solution the model couldn't already produce.
02
Prompt-diversity "board" — null vs. concentrated sampling. One model wearing several solver hats plus a critic, at equal compute, did worse than just drawing more samples from the single productive lens. Splitting budget across framings, when only one is productive, loses.
03
Multi-model message board — 0 solved. Three different models (Qwen-27B, gemma-31B, a Llama-70B via RAM offload) collaborating through a persistent, verifier-grounded board, two rounds, on the hard residual: zero cracked. The feedback made them converge, but discussion didn't beat a strong single proposer with samples.
04
Below the capability floor, nothing rescues you. On the 3B, neither structure nor best-of-N nor iteration produced a single verified program. If the model can't get near the answer, no amount of search or reframing gets it there.

The pattern across all four: on this task, capacity and verified search are the real levers; every "make the model reason differently" reframing came back null. Which is consistent with a known result — attention routes in-context content linearly; the hard-to-manufacture capacity is the nonlinear synthesis a bigger model brings. Reframing re-routes; it can't synthesize.

04 — A sharper nullgrounding comes from acting
A companion study is a null dressed as a positive. A 3B model's causal prior scores 0.86 at picking the true causes in a tiny world — and collapses to 0.00 when you rename the variables to meaningless tokens. Same causal structure, different words.

Intervention — actually acting on the world — recovers the true causes name-blind (F1 1.00) across both labelings. So the "the LLM understands causation" reading is the real null: it's retrieving "rain causes flooding" from the names, not reasoning about the structure. Grounding comes from acting, not association — and you only see that if you run the rename control.

05 — Why publish the nullsthe deliverable is a trustworthy map

Epistemic: a field drowning in "our method achieves X" needs the other column. A null under a frozen verifier is a trustworthy statement — it says "this lever doesn't add value here," and you can reproduce it. That's rarer, and more useful, than another win you can't check.

Practical: the deliverable of a research programme isn't any single result — it's a trustworthy map of what fits and what doesn't. Knowing that object-structure and multi-model boards are dead ends on this task is worth as much as knowing best-of-N is a live one. It's what stops the next person (or the next you) from re-running a dead experiment.

The claims here are small and bounded — single GPU, one benchmark, deltas of a few tasks. The point was never that they're large. The point is that they're real, and you can check every one.

Code — everything reproduces on the hardware listed in each repo
LLM-IMPROVER — the verified-delta harness, with the four nulls documented in full.
Grounding-Intervention — the 0.86 → 0.00 rename collapse and the propose/test/act loop.
secure-pickle — HMAC-verified deserialization; pip install almeida-securepickle.