Hi everyone,
Following the last post (one moving LM reaching ~87% on real data), I wanted to try the thing I’ve most wanted to see for myself in the Thousand Brains theory: several LMs in parallel, voting to reach consensus. I’m still finding my way around Monty’s engineering, so this is more a learning log of “wire it up the way the theory describes and see what happens” — and my first committee failed. But it failed in a regular way, and the regularity pointed me at a precondition I think matters.
To keep it readable I’ve split the voting part into two posts, published together: this one is the diagnosis — why my naive committee doesn’t work and where the root is; the next one (#4) rebuilds it in a setup that meets the precondition. They’re meant to be read side by side.
How I set it up
I took the official 5-LM benchmark recipe as-is (five sensors in a cross, fully-connected voting, 3-of-5 consensus) with the official pretrained 5-LM models, and fed it real BOP frames. The overlay only places the real frames into the official geometry; I didn’t touch the voting itself — I wanted to see “vanilla” voting on real data before tuning anything.
One thing to note now (I’ll come back to it): these 5 LMs use co-located pretrained models — the same models, looking at nearly the same view.
What I saw: an inverted-U
Changing just one variable — how far apart the five voters stand (sensor baseline) — gives an inverted-U (Fig 1; the metric is precision when it commits @ decision-rate, with correct and correct_mlh grouped as in your Neco paper):
- ~1 cm, same frame: 47% @ 100%
- ~1–2 cm, adjacent frames: 74% @ 100%
- 41–75 cm, wide baseline: 53% @ 100%
(For reference, one LM on one frame is 89% @ 59% — it commits less often, but accurately.)
Both ends are worse, the middle is best. I’d assumed “further apart = more diverse views = better,” which is clearly wrong. It looks like two different failures live at the two ends.
Failure at the narrow end: correlated errors
Five patches on the same frame look at the same ambiguous patch of the same view, so the five witnesses tend to make the same mistake. And voting has an implicit precondition — that the witnesses’ errors are independent. Once they’re correlated, voting adds the same mistake up as five independent votes and quickly commits a wrong consensus. The plainest example: in 3 of bleach’s 4 episodes, all 5 LMs unanimously (5:0) called it mustard — the five witnesses didn’t each err in their own way, they erred toward the same thing together.
Failure at the wide end: votes that miss (Fig 2)
At a wide baseline, a vote has to translate “where I am on the object” into another viewpoint, and the error of that translation scales like baseline × pose-quantization. At cm-scale baselines that’s a few mm (inside the match tolerance); at tens of cm it’s a few cm (outside it) — so the correct object’s votes systematically miss, and the most pose-degenerate objects pick up stray votes instead. mustard is the clearest case here: of 20 column-judgements, 17 land unanimously on banana and the correct answer gets zero (Fig 2). Voting counts those 17 correlated errors as 17 independent votes.
What I think the root is
The reason adjacent frames win, I think, is that they dodge both ends: the sensor noise is already independent, and the transfer error is still within tolerance. But stepping back, I suspect the real root is that these five witnesses are clones — the same model, nearly the same view. One deceptive piece of geometry fools all the clones the same way; move the viewpoint and the blind spot moves with each witness. If that’s right, the problem isn’t the vote-checking rule, it’s that the witnesses aren’t diverse or independent enough — the voting the theory wants needs each LM to have its own model and to see genuinely geometrically-diverse views (azimuth and pitch).
What I’m trying next
Across these three settings, what voting bought looks more like speed and willingness to commit (all at 100% decision-rate, median ~30 steps) than higher precision. If the root really is “clone witnesses,” I should give each LM its own pitch viewpoint, let each learn a different model, and then vote. YCB-V can’t do that, but T-LESS’s training set is a full hemisphere with pitch — so the next post moves there and rebuilds it, to see what a committee actually buys once the precondition is met.
(Code and configs are in monty-realworld; very happy to be told where I’ve got it wrong.)




