On this page
The short version
- A large language model writes one token at a time, and it picks each token by a weighted draw from probabilities it computes. That draw is why the same question can come back with a different answer.
- Across 180 asks of three buying questions on one model, the same five brands came back in at least 28 of every 30 asks, while their order moved. The robot-vacuum list came back in 10 different orders at default settings.
- Temperature 0, the setting meant to make answers repeatable, cut the vacuum orderings from 10 to 4 and did not stop them. First place still split 16 to 14 between two brands.
- Training shifts the odds, and web search should too, without removing the draw, so a brand's visibility in AI answers is a rate measured across many asks, and one check is one sample.
A large language model, the kind of AI system behind ChatGPT, Gemini and Claude, writes its answer one small chunk of text at a time, and it picks each chunk by a weighted draw. Picture pulling a slip from a hat that holds more slips for the likelier words. I asked one model the same three buying questions 30 times each. The brands it named barely changed, while the order they came in kept moving, and a robot-vacuum shortlist came back in 10 different orders across 30 asks.11
Turning the model’s randomness setting down to zero cut that to four orders, and it did not stop the movement. If you check where your brand appears in AI answers, one check shows you one draw. The number that means something is how often you appear across many.
Asked the same robot-vacuum question 30 times, one AI model named the same five brands in 28 of the answers and put them in 10 different orders.
What does a large language model actually do when it answers?
A large language model (LLM) answers a question by repeatedly predicting what text should come next. It reads everything in front of it, computes a probability for each possible next piece of text, picks one piece, adds it to the end, and starts again. A paragraph of answer is a few hundred of these steps run in a row, each one reading everything the steps before it wrote.
gpt-6-luna gave when finishing a sentence about running shoes. A paragraph of answer is this loop run a few hundred times.11The research name for this is autoregressive, meaning each output becomes part of the input for the next step. OpenAI’s 2020 paper describing GPT-3 calls it “an autoregressive language model with 175 billion parameters.”2 A parameter is one adjustable number inside the model. Training is the process that sets all 175 billion of them, by showing the model enormous amounts of text and nudging each number until its guesses about the next piece of text get better.
The design that made this work at scale is the transformer, introduced by Google researchers in 2017 as an architecture “based solely on attention mechanisms.”1 Attention is the step where every piece of text in the input weighs every other piece when the model works out what comes next. That step is how the word “it” in a long prompt gets connected to the product named three sentences earlier.
“Just autocomplete” undersells what happens inside. The output arrives one piece at a time, but Anthropic’s interpretability team, which studies what happens inside a model while it runs, traced Claude writing rhyming poetry and reported, “Instead, we found that Claude plans ahead.”8
Anthropic’s write-up says the model “will plan what it will say many words ahead, and write to get to that destination.”8 Anthropic calls it “powerful evidence” and says models “may think on much longer horizons.” My read is that both descriptions hold at once. The computation can look ahead, and the text still comes out as one weighted pick after another.
What is a token?
A token is the unit of text a language model reads and writes, usually a short whole word or a fragment of a longer one. OpenAI’s rule of thumb for English is that “1 token is approximately 4 characters” and “approximately three-quarters of a word.”3 The model never sees letters. It sees a sequence of token numbers, and every probability it computes is a probability over tokens.
Brand names show what this means in practice. When I asked OpenAI’s gpt-6-luna to name a running-shoe brand, the word “Brooks” came out as two tokens, “Bro” followed by “oks.”11 The second fragment had a 100% probability once the first was chosen. So the real decision happened at “Bro,” before the brand was even spelled out.
Token counts are also what you pay for. API prices are quoted per million tokens in and out, so the 180-ask test in this article cost about a quarter of one cent to run. OpenAI also notes that “other languages can have different relationships between characters, words, and tokens,” so the same sentence can cost more in one language than in another.3
How does an LLM choose the next word?
An LLM chooses the next word by giving every candidate token a probability and then drawing one, weighted by those probabilities. I asked gpt-6-luna to finish the sentence “The best running shoe brand for flat feet is” and had the API return the odds for its first token. “Bro,” the start of Brooks, came back at 88.8%. “AS,” the start of the shoe brand ASICS, came back at 10.6%.11
gpt-6-luna gave its first token when asked to finish "The best running shoe brand for flat feet is". A weighted draw from these odds starts with ASICS about one time in ten.11A draw from gpt-6-luna’s first-token odds names ASICS about one time in ten. When an ask returns ASICS instead of Brooks, the model has not changed, and the system is working as designed. These odds come from a sentence-completion prompt, which is why they differ from the list questions measured later in this article, where ASICS took first place in 8 of 30 asks.11
The setting that controls how adventurous the draw is gets called temperature. OpenAI’s API reference describes it as a value “between 0 and 2,” where “Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.”4 At a high temperature the 10.6% option gets picked more often. At temperature 0 the model is supposed to take the top option every time.
Models are not run at temperature 0 by default, because always taking the single likeliest token writes badly. A 2019 study of text generation found that maximizing likelihood produces text that is “bland and strangely repetitive,” and proposed drawing only from the smallest set of tokens that together hold most of the probability.5 My read is that the randomness in your AI answers is a deliberate trade made for readable text.
Why does the same question get a different AI answer?
The same question gets a different AI answer because every token is a fresh weighted draw, and an early draw changes everything written after it. In my test, three buying questions asked 30 times each, the set of brands an LLM named barely moved, while the order of those brands moved a lot. The robot-vacuum list came back in 10 different orders across 30 asks.11
The three questions asked for running shoes for flat feet, customer relationship management (CRM) software for a 10-person marketing agency, and a robot vacuum for a home with two shedding dogs.
The setup was deliberately bare. I sent each question to gpt-6-luna through OpenAI’s API with no instructions beyond the question, no web search, no memory, and reasoning switched off, so the model wrote no hidden draft before it answered. Each question asked for five brands, one per line, so a script could count them without a second model reading the answers.
I ran 30 asks at the default temperature and 30 at temperature 0 for each question, 180 in all, and none failed or came back unreadable.11
Each row of this table counts 30 asks of one question at one temperature setting.
| Question | Temperature | Same five brands | Different orders | First place |
|---|---|---|---|---|
| Running shoes | Default | 30 | 4 | Brooks 22, ASICS 8 |
| Running shoes | 0 | 30 | 1 | Brooks 30 |
| CRM software | Default | 28 | 4 | HubSpot 30 |
| CRM software | 0 | 30 | 2 | HubSpot 30 |
| Robot vacuum | Default | 28 | 10 | Roborock 15, iRobot 15 |
| Robot vacuum | 0 | 30 | 4 | Roborock 16, iRobot 14 |
The brand set was steady, with the same five names in at least 28 of every 30 asks, and first place was steady only where one brand led clearly, as HubSpot did for the CRM question. Where two brands were close, as Roborock and iRobot were, first place split almost evenly.11
Ecovacs took Dreame’s place in 2 of the 30 vacuum answers at default temperature, and Copper and Insightly each took the CRM list’s fifth slot once, in place of Salesforce.11 The fifth slot is where brands appeared and vanished. A brand at the edge of a model’s shortlist is present in some answers and absent from others, and one check cannot tell you which you saw.
The model also named one brand four different ways. Salesforce came back as “Salesforce,” “Salesforce Sales Cloud,” “Salesforce Starter” and “Salesforce Starter Suite,” and my count merges them only because I added the spellings to its list after the run.11 A tracking tool that matches one exact brand name would have under-counted Salesforce in this test.
Why didn’t temperature 0 make the answers identical?
Temperature 0 did not make an LLM’s answers identical in my test, and the likeliest cause is small numeric differences on the server that can flip which token wins when two candidates are close. Across 30 asks per question, temperature 0 cut robot-vacuum orderings from 10 to 4, CRM orderings from 4 to 2, and running-shoe orderings from 4 to 1.11
The question that stayed unsettled was the one with two brands nearly tied for first place.
A 2025 investigation by Horace He at Thinking Machines Lab explains why “deterministic” settings still vary. The underlying cause it names is that “The culprit is floating-point non-associativity,” which means a computer can get a slightly different result when it adds the same numbers in a different order.9
The post traces the trigger to server load. Load changes how many requests the server processes together, and that grouping changes the order of the arithmetic for each request.9
My explanation for the vacuum split is suspected, not measured. A tiny numeric difference does nothing when one brand leads by a wide margin, and it can flip the winner when two brands are close to even, which is what the first-place counts show.
My API test measures the floor of the variation, and an AI product adds more on top. ChatGPT and similar products wrap the model in their own instructions, live search results, memory of past chats and personalization, and every one of those changes the input the draw starts from. My test also covers one model, three questions and one day, with 30 asks per cell.
If it only predicts tokens, how does it follow instructions?
An LLM follows instructions because it receives extra rounds of training after it learns to predict text. The first round, called pretraining, teaches it to continue any text it sees. Later rounds train it on examples of good answers and on human ratings of which of two answers is better, shifting probability toward helpful replies. Every reply is still produced by the same weighted draw.
OpenAI’s 2022 paper on this technique, called reinforcement learning from human feedback, reported that “outputs from the 1.3B parameter InstructGPT model are preferred to outputs from the 175B GPT-3.”6 In that quote, 1.3B and 175B mean 1.3 billion and 175 billion parameters. A model with more than 100 times fewer parameters won, and my read is that its probabilities pointed toward the kind of answer people wanted.
Reasoning models add one more layer, and it is built from the same parts. OpenAI’s documentation says “Reasoning models use internal reasoning tokens before producing a response,” and that those tokens “are not visible via the API” while still being “billed as output tokens.”10
A reasoning model drafts hidden text first, then writes the answer it shows you while reading its own draft. I switched that step off in my test so the count measured the plain draw with nothing hidden in front of it.
Where do live facts and citations in AI answers come from?
Live facts and citations in AI answers come from text fetched at the moment you ask and placed in front of the model. A model’s training stops at a cutoff date, so anything newer has to arrive as input. A search step finds pages, puts their text into the model’s input, and the model then predicts an answer from that text and can point to the pages it used.
The 2020 paper that named this pattern, retrieval-augmented generation, paired a model’s built-in knowledge with “a dense vector index of Wikipedia.”7 A vector index is a searchable store of text that finds passages by meaning instead of by exact words. AI search products that fetch pages before answering follow the same pattern.
Retrieved pages change the odds, and the draw still happens. A page of yours in the input should make your brand more likely to appear without making it certain, though my test ran without search and did not measure that. Which pages a system chooses to cite is its own selection step, covered in does AI prefer Reddit. Why a model can hold a fact and still fail to produce it is covered in recall, not knowledge.
What does this mean for tracking brand visibility in AI answers?
Tracking brand visibility in AI answers means measuring a rate, how often a brand appears across many asks of the same question, because each ask is one weighted draw. A single check that shows your brand in first place says little. In my test, the robot-vacuum question put Roborock first in 15 asks and iRobot first in the other 15, so either result was one coin flip.
Three habits follow from the data.
- Ask each question many times and report your brand’s answer share, the number of answers that name it divided by the number of asks, with both numbers shown. Thirty asks resolved the steady brands in my test. A brand that appears in 2 of 30 answers, as Ecovacs did, holds a contested slot, and 30 asks are too few to pin its rate down.11
- Watch the last slot of a shortlist, because that is where brands came and went in this test.
- Count every name a model uses for your brand, since one brand came back four ways.
Before you trust an AI visibility number, from a tool, an agency or your own team, ask how many times each question was asked. Then ask how the count matched brand names, for example whether “Salesforce Starter” was counted as Salesforce.
Sources
The papers and documentation listed below, read October 18, 2026. The brand counts and token probabilities are my own, from 180 asks and one probability read on OpenAI's gpt-6-luna on October 18, 2026.
- Vaswani et al., Attention Is All You Need (arXiv, 2017)
- Brown et al., Language Models are Few-Shot Learners (arXiv, 2020)
- OpenAI Help Center: Understanding and counting tokens
- OpenAI API reference: Create chat completion (temperature, logprobs, top_logprobs)
- Holtzman et al., The Curious Case of Neural Text Degeneration (arXiv, 2019; ICLR 2020)
- Ouyang et al., Training language models to follow instructions with human feedback (arXiv, 2022)
- Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (arXiv, 2020)
- Anthropic: Tracing the thoughts of a large language model (March 27, 2025)
- Horace He, Thinking Machines Lab: Defeating Nondeterminism in LLM Inference (September 10, 2025)
- OpenAI API documentation: Reasoning models
- First-hand: 180 brand-list asks and one token-probability read on OpenAI's gpt-6-luna, October 18, 2026, counted by the script sampling_spread.py in this site's repository
Related reading
From the Daily Pulse
This piece elsewhere
Explore with