Chapter 5 of 9 · 13 min read
Four samples agreeing is not four pieces of evidence
On this page
Clause 12.3 of the agreement sets the aggregate liability cap at $5,000,000. Clause 12.4, immediately below it, sets a sub-limit of $500,000 for claims arising from a data breach. Asked for the total liability cap, four of five samples returned $500,000 and one returned $5,000,000, so the aggregator reported support=4, counted=5, the record was written with a confidence field of 0.8, and it went out to the deal desk without review because the review threshold was 0.6.
The four wrong samples were not four independent readings that happened to coincide. Reading their chains of thought afterwards — the step-by-step reasoning each sample wrote out before committing to a number — all four found clause 12.4 first because it contains the phrase "shall not exceed" that the extraction prompt used verbatim, latched onto the number adjacent to it, and never returned to 12.3. That is one mistake, made four times by one model responding to one prompt. Counting it four times is a category error, and the confidence field made the error legible to a downstream system that had no way to know better.
What a majority is estimating
A model plus a prompt plus a decoding configuration defines a probability distribution over answers. Sampling from it five times and taking the most common answer estimates the mode of that distribution, which is the answer it returns more often than any other.
Everything in this chapter follows from what that sentence does and does not say. Increasing N makes the estimate of the mode more precise, because more draws pin down which answer is commonest. It does not move the mode, because the mode is a property of the distribution and drawing from a distribution does not change it. When the mode is the correct answer, more samples find it more reliably, which is the entire benefit. When the mode is a misreading, more samples find the misreading more reliably, and the confidence number rises while accuracy does not.
The gap between what independence would give you and what you get is measurable, and the measurement starts from what independence would predict. If five samples were independent and each were correct with probability p, a majority needs at least three of the five to be correct, and the probability of that is the binomial tail — the sum over each number of correct samples that clears the bar. For exactly k correct out of n, there are comb(n, k) ways to choose which k they are, each of those arrangements has probability p**k for the correct ones times (1 - p)**(n - k) for the rest, and the arrangements are mutually exclusive so their probabilities add.
def majority_accuracy(p: float, n: int) -> float:
"""P(at least ceil((n+1)/2) of n independent samples are correct)."""
need = n // 2 + 1
return sum(comb(n, k) * p**k * (1 - p)**(n - k) for k in range(need, n + 1))
majority_accuracy(0.71, 1) # 0.710
majority_accuracy(0.71, 3) # 0.796
majority_accuracy(0.71, 5) # 0.850
majority_accuracy(0.71, 7) # 0.886The extraction feature scores 71% at N=1 on its 200-case held-out set. Independence predicts 85.0% at N=5. It measures 79%. That six-point shortfall is the correlation, and it is not a small correction — voting delivered eight points of lift in total, so the shortfall is more than two-thirds of what the technique was supposed to buy.
The usual way to summarise it is the effective sample size, borrowed from survey design, where a cluster-sampled survey of N people carries the information of fewer than N independent ones because people in one cluster resemble each other. With average pairwise correlation ρ between sample errors, N samples carry the weight of
N_eff = N / (1 + (N - 1) * ρ)Read the formula before using it. When ρ is zero the denominator is one and N_eff is N, which is the independent case. As ρ rises the denominator grows in proportion to the number of pairs rather than the number of samples, which is why the penalty gets worse as N gets larger — adding a sample to a correlated set adds more shared error than fresh information.
Now run it backwards on the measured numbers. Five samples scoring 79% behave like three independent samples, since majority_accuracy(0.71, 3) is 0.796. Setting N_eff = 3 and N = 5 gives 3 = 5 / (1 + 4ρ), so 1 + 4ρ is five thirds, so ρ ≈ 0.17. That is a modest correlation producing a large loss — five draws bought the information of three. Push ρ to 0.5, which is not unusual on tasks where the prompt strongly suggests a reading, and N_eff falls to 1.67: five calls carrying less than two calls' worth of information.
What the formula licenses is a way of thinking about the whole pattern: the question is never "how many samples" on its own, it is "how many samples and how correlated". The residual is that ρ here is a single average over all pairs, estimated from one measured point, and real errors are not exchangeable — some pairs of samples share a misreading and others do not, so the average smooths over exactly the structure that would tell you which cases to worry about.
Temperature spreads the samples without separating them
The natural response to correlated samples is to make them differ more, and the dial that is right there is temperature.
Temperature divides the logits, which are the raw scores the model assigns to each candidate next token, before the softmax turns those scores into probabilities. Dividing every score by a number larger than one brings the scores closer together, and closer-together scores come out of the softmax as a flatter distribution, so lower-probability tokens get more chance of being selected. That produces genuinely different token sequences, which is why agreement rates fall. What it does not do is change what the model knows, what the prompt emphasises, or which clause the phrase "shall not exceed" pulls the model towards — none of those are token-level quantities, and temperature is a token-level operation.
Running the same 200 cases at N=5 across four temperatures makes the trade concrete.
| Temperature | Unanimous (5/5) | No majority | Accuracy at N=5 |
|---|---|---|---|
| 0.0 | 100% | 0% | 71% |
| 0.3 | 72% | 4% | 77% |
| 0.8 | 56% | 7% | 79% |
| 1.2 | 38% | 19% | 74% |
At temperature 0, all five samples are identical and voting is a five-times-more-expensive way to run one call, which is the degenerate case worth having on the table so that the shape of the rest is visible. Between 0.3 and 0.8 the extra variance is buying something. Above that it stops: moving from 0.8 to 1.2 turned 17 cases that had been unanimously correct into cases with no majority or a wrong majority, and rescued 6 cases that had been wrong, for a net loss of 11 cases.
That asymmetry is the mechanism rather than an accident of this dataset, and it follows from where the probability mass sits. Cases the model gets right have most of their mass on the correct answer, so flattening the distribution has a lot to take away and only a little to add. Cases the model gets wrong have their mass on the wrong answer, and flattening moves some of it towards a long tail of other wrong answers as readily as towards the right one — a flatter distribution does not know which of the low-probability answers is correct. So the operation reliably damages the cases that were working and only occasionally repairs the ones that were not.
Temperature perturbs the path; the shared misreading of clause 12.4 sits in the prompt and the weights, and no amount of path perturbation removes it. At temperature 1.2 the four samples that read 12.4 as the cap still read 12.4 as the cap, and they simply phrased their reasoning differently on the way there.
There is a comparison worth making here, because the pattern has a well-understood ancestor, and it is offered as a comparison rather than as a claim about how language models work. Bagging reduces variance by training each learner on a different bootstrap resample of the data, and random forests add feature subsampling on top, for exactly one reason: the ensemble members have to make different mistakes, and the way to guarantee that is to give them different information. Neither technique achieves decorrelation by adding noise to one model's predictions, because noise added downstream of a shared bias cannot cancel the bias. Sampling one prompt on one model at a higher temperature is the noise version.
Where the comparison stops is worth naming, because it is the place people over-read it. Bagging varies the training data, and that lever does not exist at inference time — you cannot retrain the model per branch. What can be varied at inference is the model, the prompt and the evidence, and whether those decorrelate as effectively as a bootstrap resample is an empirical question rather than something the comparison settles. The chapter after next covers the versions that are analogous to resampling.
Where the original result came from, and what it assumed
Self-consistency, introduced in 2022 as a decoding strategy for chain-of-thought prompting, was evaluated on arithmetic word problems and commonsense reasoning benchmarks, and the paper's framing of the mechanism is precise: a complex problem admits multiple valid reasoning paths that converge on the same correct answer, while erroneous paths tend to scatter. Sample many chains, take the most common final answer, and the correct answer wins because it is the only attractor. On GSM8K, a public set of grade-school arithmetic word problems, the reported gains were large, and the pattern was picked up everywhere on the strength of them.
Two conditions carried those results, and both are easy to lose. The answer had to be a number or a short label, so that "the same answer" was well defined without any of the normalisation work the previous chapter had to do. And the errors had to scatter, which is the property that makes the correct answer the only attractor: if wrong answers are spread thinly over many values while the right one is concentrated, the right one wins a plurality even when most individual chains fail. Scatter is what you get when a model drops a sign or mis-multiplies partway through a computation, since an arithmetic slip can land anywhere; it is not what you get when a model misidentifies which clause the question is about, since there is only one wrong clause to land on.
Both conditions are load-bearing, and the liability-cap failure violates the second completely. The wrong answers do not scatter, they concentrate on $500,000, because the reason for them is upstream of the reasoning — the prompt's wording steers every chain to the same clause before any arithmetic starts. Where the errors have a common cause, they have a common value, and a vote counts that value repeatedly.
Anywhere the task involves selecting which part of the input to attend to, expect concentration rather than scatter. Retrieval-augmented answering, where a search step fills the prompt with passages pulled from a corpus before the question is put, has this property, since every sample sees the same retrieved passages and inherits whatever the retriever missed. Extraction from documents with near-miss distractors has it. Classification against a taxonomy with two adjacent categories has it, since the ambiguity lives in the taxonomy rather than in any sample.
The margin is a signal even though it is not a probability
None of this makes the vote count useless. On the same 200 cases, bucketing by how much support the winner had gives a clean monotone relationship between margin and accuracy.
| Winner's support | Cases | Accuracy |
|---|---|---|
| 5 of 5 | 112 | 92% |
| 4 of 5 | 50 | 74% |
| 3 of 5 | 25 | 52% |
| no majority | 13 | 31% |
The first column of counts is a cross-check on the temperature table rather than a new measurement: 112 unanimous cases out of 200 is the same 56% that the temperature-0.8 row reports, which is where these cases were run.
Four out of five is 74% accurate, not 80%, and five out of five is 92% accurate, not 100%. The numbers do not equal the vote fractions and there is no reason they should, because the fraction is a property of the sampling and the accuracy is a property of the world. Nothing connects the two except a measurement like this one, which is why the confidence field in the opening record was misleading rather than merely imprecise: it published a sampling statistic in a slot a downstream system read as a probability.
What the table does support is routing. A threshold at "majority of at least four" keeps 162 cases at 86.5% accuracy and sends 38 to human review at 45% accuracy, which is a defensible split if a reviewer costs less than a wrong answer. The threshold has to be set from a table like this one, measured on held-out cases, and re-measured when the prompt or the model changes, because nothing about it transfers.
The informative end of that table is the bottom. Disagreement is a reliable signal that something is hard: the 13 no-majority cases are wrong 69% of the time, which is a much stronger statement than anything the agreement end supports. A system that only acts on high consensus is using the weak half of the signal.
What the agreement does not tell you
Unanimity is not proof, and the 8% of unanimous cases that are wrong are, in an important sense, the worst cases in the system. Trace what happens to one. It is wrong, it carries the highest confidence score the design can produce, and every internal signal endorses it — the samples agree, the aggregator reports a clean majority, and any downstream threshold passes it. No amount of additional sampling from this configuration will surface it, because more draws from a distribution whose mode is wrong return the wrong mode more confidently.
Those are the cases where the prompt or the model has a firm, consistent misunderstanding, and they are invisible to every quality signal the design produces internally. Only held-out labelled data finds them, which makes the size of that set a limit on how much of this failure class you can even see.
Which raises the question of how many samples are worth buying at all. Voting took this feature from 71% to 79%, which is a real gain, and the correlation arithmetic says the returns must flatten somewhere, since N_eff climbs ever more slowly as N grows. The next chapter has four measurements — 71, 78, 79 and 79 at N of 1, 3, 5 and 7 — and the problem with them is not that they flatten, it is that three of the four are the same number wearing different clothes, and the eval is too small to tell you which.
Parallelization — sectioning and voting — read the current version at https://daviddominguez.dev/learn/en/parallelization-sectioning-and-voting/four-samples-agreeing-is-not-four-pieces-of-evidence