Apply for Closed Beta

Join select enterprises in refining AiirGap before our general release

We're looking for:

  • Enterprise organizations (1000+ employees)
  • Complex policy/procedure ecosystems
  • Compliance or audit challenges
  • Technical teams ready to integrate new solutions

Research

LLMs don't hallucinate

They give the right answer to a different question

In 1950 Alan Turing described a game. A person exchanges typed messages with something in the next room and has to decide whether it is a human being or a machine. He spent most of the paper answering objections. One was oddly practical. Surely the machine could be caught with arithmetic? Ask it to add two large numbers. A person would take a moment and probably get it slightly wrong. The machine would answer instantly and perfectly, giving itself away. Turing's reply: a machine playing the game would not do that. It would pause. Now and then it would get the sum wrong on purpose.

Seventy-five years on, something like that has happened on steroids. Ask a chatbot the same question twice and it gives two different answers. The natural conclusion is that a coin is being flipped somewhere near where the thinking happens. There isn't. What follows is a small experiment that shows where the coin really is, who put it there and why. It ends at the question most people bring to a chatbot, which is why it makes things up. The answer runs through a stranger fact first: the machine never varies at all.

A test with nowhere to hide

We took a nine-billion-parameter model and gave it one job. Read a short customer review. Say whether it is positive or negative. Answer with a single digit, 1 or 0. We wrote 1,050 reviews, a third of them deliberately wishy-washy ("The hotel was fine, I guess"), because the interesting cases are the close calls. Here is a real question and a real dead heat.

A confession about that digit. The model never says "1". What it does, every time, is hold up a scorecard for every word it knows, 151,936 of them. We read two: the card for "1" and the card for "0". The higher card is the answer. The gap between them, which we will call the decision score, is how sure the judge was. A dead heat is two equal cards.

One more thing about those cards. Olympic swimming is timed to hundredths of a second, not thousandths. After a 1972 final was decided by two thousandths, the federation stopped recording the third digit. There is a good reason to: a pool cannot be built to a tolerance tighter than the distance a swimmer covers in a thousandth of a second. That is why three men tied for silver in the 100-metre butterfly in Rio. Our model has the same limitation. At these sizes its scores can only count in eighths, so ties are not freak events. Nine of the 1,050 reviews are exact dead heats. Remember them.

Same question, same answer

One square per review, coloured by whether its five scoreboards matched to the last digit

The same sum in a different order

The machine never wavers, so the variety has to come from somewhere else. The first place to look is the arithmetic.

In January 1982 the Vancouver Stock Exchange launched an index at 1,000. Twenty-two months later it stood at 524. Nobody could explain it, because the market had not fallen. The index was recalculated after every trade. Each time, the computer dropped everything past the third decimal, thousands of times a day. Each drop was worth nothing. Together they had eaten half the index. Nothing random had happened; the rounding had simply happened at different moments.

1,000
at launch, January 1982
524
shown in November 1983
after ~22 months of truncation at every trade
1,098
true value, recomputed in one go

A language model is a column of sums, billions of additions for every word. The software that runs it is forever rearranging that column to save time. The commonest rearrangement is a shortcut anyone would take.

the same 40 instruction tokens, every prompt the review, 19 to 25 tokens worked out once, subtotal saved worked out 1,050 times sums done in this order the first time then continued from the saved state
Why work the instruction out 1,050 times? Work it out once, save the subtotal and carry on. That is what real services do.

Each dot below is one review with its decision score done the long way along the bottom and from the saved subtotal up the side. If the shortcut changed nothing, every dot would sit on the diagonal.

Who else is in the queue and how long the conversation runs

In 2025 a research lab asked a large model "Tell me about Richard Feynman" a thousand times with every random setting switched off. It got eighty different answers. All thousand were identical for the first hundred-odd words, then parted, over whether Feynman was born in "Queens, New York" or "New York City". The lab traced the cause to the queue. A busy service does not answer one question at a time; it lays many requests side by side and works through them together. Nothing in the other requests can reach a user's own, but the sheet is a different shape, so the sums are added in a different order and the last digits move. We ran the same 256 reviews alone, then in groups of two, four, eight and sixteen, then in groups of eight with different companions.

Share of scoreboards that changed in their last digits, by group size

That leaves the question of how a last digit becomes eighty different answers. In 1961 Edward Lorenz was running a weather simulation and wanted to look at part of it again, so he restarted it from a printout. The printout showed three decimal places; the machine had been working with six. The new run began exactly like the old one and then, week by simulated week, became a different weather entirely. That is where the butterfly effect comes from. A paragraph is the same kind of thing: the model picks a word, reads everything so far, picks the next, hundreds of times over. If any one step is a photo finish, a last-digit nudge sends it the other way and every word after is written on a different footing.

The dice

Now to the thing every user of a chatbot has actually experienced. The one-digit question skipped a step. The model does not choose a word, or even a digit. It holds up 151,936 scorecards and stops. Something else has to pick. Taking the top card needs no dice. It is what every experiment above did. Almost every chatbot in use rolls instead.

There are three reasons to add randomness to a machine whose great virtue is that it has none. First, the top card is not the whole answer: the model was trained to spread its bets. Always taking its favourite throws the rest of its judgement away. In long stretches of writing this makes the text repeat itself, a problem researchers at the University of Washington named "neural text degeneration" in 2019 before proposing the fix most products still use. Second, variety is useful; a user who asks for five headlines wants five different ones. And third, the reason people suspect: it feels right. Consider what Apple learned in 2005. The iPod's shuffle picked songs genuinely at random. Listeners hated it, because genuine randomness produces runs: the same artist three times in a row, the same album twice in ten minutes. It felt broken. So Apple added a rule that steered the picks away from recent repeats. Steve Jobs said from the stage that it made shuffle less random, even though people would think it more random. The randomness people enjoy is a designed impression of variety, tuned until it feels natural and adjusted when it doesn't. It has little to do with the mathematical kind. A chatbot's dice are the same kind of thing: the temperature is set where replies feel lively and a penalty on repeated words does for sentences what Apple's rule did for songs. The machine underneath has no such property. The dice are a setting, chosen for how it feels. Turing knew it.

"It would deliberately introduce mistakes in a manner calculated to confuse the interrogator."Alan Turing, Computing Machinery and Intelligence, 1950

The dice went in for the first two reasons. Turing was right about the third anyway. In 1966 Joseph Weizenbaum's secretary, who had watched him write ELIZA and knew it was a few hundred lines of pattern-matching, asked him to leave the room so she could talk to it in private. We are easily convinced.

How a roll works, on real numbers from this model

drag the sliders
the scorecard151,936 cards ÷ temperaturehow loaded the dice are oddsshares of 100% file faces offtop-k · top-p · min-ppenalties on repeats the rollpicks one survivor word seed → generator a formula fed a starting number; unset, it comes from the clock temperature 0: take the top card, no roll
How a roll works. Two settings reshape the dice before any throw: temperature (how loaded) and the filing of faces (which words can come up at all). Below, the twelve best next words at three real moments from one piece of writing.

The roll is not random either. The number that picks a survivor comes from a formula that produces a fixed sequence from a starting value called the seed, the way a deck shuffled by the same procedure from the same starting order comes out in the same sequence every time. Same seed, same rolls, same words. Even the dice are a calculation, fed a number the user is never told.

The odds are the model's; only the roll is random

ten closest calls, 2,000 rolls each

The table

The scorecard has no truth column

In the 1970s the neuroscientist Michael Gazzaniga worked with patients whose two brain hemispheres had been surgically separated. He showed one such patient two pictures at once, each visible to only one side of the brain: a chicken claw to the side that speaks, a snow scene to the side that does not. Asked to pick matching cards, the patient's hands did the right thing, a chicken for the claw and a shovel for the snow. Then Gazzaniga asked why the shovel. The speaking half of the brain had never seen the snow. It answered without a flicker: to clean out the chicken shed. Fluent, confident, invented and to the patient indistinguishable from a real reason. Gazzaniga called it the interpreter. It is worth knowing about because a system built to produce the most plausible next thing will produce one whether or not it knows.

The model's job was only ever to hold up the most likely scorecard given everything it has read. When what it has read contains the answer, the top card is the answer, every time. When it does not, the top card is still the most plausible-sounding thing, every time, produced by exactly the same procedure. Nothing inside distinguishes the two cases; there is no column on the card for true. Instruments that read a model's internal state, sparse autoencoders (SAEs) and the Jacobian lens (J-lens) among them, can show which features fired and at which layer a verdict settled. Those readings differ between a name the model knows and one it is inventing. But that is a measurement taken from outside. The card itself still has no truth column. That is what a hallucination is: the correct answer to the question the machine was actually asked.

We asked this model a question this page has already answered. First bare. Then with the Vancouver paragraph from earlier on this page placed in front of it.

Asking the model how sure it is

The table

Why a chatbot gives different answers

Put it together. In almost every hosted product, the dice are on: temperature somewhere around 0.7, seed from the clock, every reply a fresh roll. That alone accounts for most of what users see. Turn the dice off and the quieter things remain, the saved subtotals and the queue, which move last digits. Last digits decide photo finishes and a paragraph is a long row of them. This is why a service will promise "mostly" the same answer even at its most careful setting and why "mostly" is the honest word.

And some things change the machine itself, which is not randomness at all: a new version of the model behind the old name, an updated hidden instruction or today's date slipped into the prompt, a committee model (a mixture of experts, MoE) whose small router picks a specialist for each word, so a dead heat there is a dead heat inside the model, an assistant model drafting words for the big one to check, a different chip adding in a different order. Every one of these is a different machine answering, or a different question asked.

Who holds which lever depends on where the model runs. An open model, one whose weights are published so that it can be run on the user's own machine or servers, puts every lever except the training data in the user's hands: the dice can be switched off, the queue is the user's own and the version changes only when the user changes it. A hosted service, including the frontier models reached through an API or a chat window, keeps the middle column for itself and exposes some of the first, on its own terms. Here is the whole set, sorted by who holds them.

rolls dicemoves last digits onlychanges the question, or the machine

The user

Every lever, when the model is open and runs on the user's own hardware; with a hosted service, only the ones it exposes

temperatureseedtop-ktop-pmin-prepetition penaltieswhat goes in the prompttools and documents

Whoever runs the model

A hosted provider, frontier or otherwise; or the user again, when the model is open and local

default temperature (~0.7)seed from the clocksaved subtotalsthe queuechips and low-level routineshidden instructions, the datemodel version behind the namedrafting assistant model

The model maker

Fixed at training time, whoever runs it

number format (size of a rounding step)committee routing (dead heats inside)training data

So when a chatbot gives a different answer to the same question, there are only a few places to look. We could not make the model waver. The last digits depend on how the work was arranged. They can only tip a decision the model had already left as a dead heat. Temperature and the seed are the dice. The filing of faces is top-p and its cousins. Even the dice are a calculation, fed a starting number. And when the answer is wrong rather than different, that is the scorecard, not the dice: the machine did what it always does with what it was given. Different answers are a setting. Wrong answers are a supply problem. Both are under the user's control, wholly with an open model and partly with a hosted one. The first can be switched off.

So who is hallucinating?

Nobody. A hallucination, in the sense the word has carried since Esquirol defined it in 1817, is a perception with nothing behind it. The model perceives nothing and believes nothing; it has no column for true. It cannot hallucinate. It answered the question it was actually asked, which is what usually comes next. Given its training and what was in front of it, that answer was the exact right output. It will be the same output every time. The first half of this page measured nothing else.

The confusion is on the other side of the screen. The question typed was "what is so?" The question the machine answers is "what usually follows?" When the two agree, because the source was in front of it, the answer is right. When nothing was in front of it, the answer is the most plausible-sounding thing, delivered with exactly the same confidence. A person reads that confidence as knowledge. That is a misunderstanding of what was asked and of what came back. Weizenbaum's secretary, with better grammar.

The word describes the expectation, not the output. Change the expectation, or change what is in front of the machine. The second is easier.

What this page showed and what to do with it

  • The machine is a calculation. The same question with the same settings gave the same answer, to the last digit, times over. None of this is a case against these machines; it is a case for knowing what they are.
  • The variety in chatbots is added on purpose. Temperature and the seed are settings, chosen for how replies feel. The rest, the queue and the saved subtotals, is arithmetic done in a different order. It can only tip a decision the model had already left as a tie.
  • A wrong answer is not a malfunction. It is the most plausible continuation of what the model was given. Asked with nothing in front of it, this one answered ; asked with one paragraph, it answered , the right figure, every time. The fix is the supply, not the model.
  • Open models put every lever in the user's hands. With the weights on the user's own hardware, the dice can be switched off, the seed and the version pinned, the queue owned and the whole scoreboard inspected. That is what makes a model fit for work that has to be checked, repeated and audited.
  • Asking a model how sure it is gets another prediction. Asked, it said for the wrong Vancouver answer and for the right one. On a true dead heat it said rather than 50, a different number each time the dice were on. The decision score, the SAE features and the layer at which the verdict settled are measurements. They are the same on every ask and they are only available where the scoreboard can be read.
Method and glossary

What was measured and what the words mean