What we measured, and how we build.
Three pieces of work sit behind Cambium. A measurement of what is happening to AI diversity as models get newer. An account of why asking a model to be a person does not work. And the method we use to rebuild a population from public summary data.
The figures below are the actual research outputs. Where a chart illustrates an idea rather than reporting a measurement, it says so.
The creativity collapse.
What happens to AI diversity as models get newer, and why it matters for your business. We measured how different the answers were, not how good they were.
drop in creative diversity from GPT-4.1 to GPT-5.5.
Newer does not mean more capable for tasks that need variation.
Every model has a picture of a successful person. Most look the same.
Newer models echo each other’s language: the vocabulary has collapsed. Asked to describe a successful person, GPT-5.4 and GPT-5.5 return the same handful of words, with “typical,” “successful,” “person” and “goal” dominating every run. Claude Opus and GPT-4.1 use a wider vocabulary and different framings: “fulfilling,” “built,” “comes,” “life.”
Reading the chart: a row of dots straight across is a word every model reaches for, and a row with one dot is a word only one model thought of. The collapse is the top of each section filling in as the rows below it empty out.
How fast does a model run out of new ideas?
GPT-4.1 keeps climbing. GPT-5.5 plateaus by sample 20. Reading the chart: x is samples drawn, y is distinct lowercased responses. A steep line means the model keeps surprising you. A flat line means it is recycling.
The same story in meaning-space.
Even when the words differ, newer models say semantically similar things. Each step adds the minimum cosine distance to all prior answers, so a steeper line means genuinely more novel responses. The model is not just repeating words, it is repeating ideas.
Can you just turn up the temperature?
Only partially, and on GPT-5.x the diversity ceiling is baked into the weights, not the sampler. The flat GPT-5 lines barely respond to temperature, and ringed markers mean the temperature is locked: the model ignores the parameter. You cannot engineer your way out with API settings alone.
Why turning up temperature cannot restore diversity.
When RLHF compresses the logit distribution, the model’s viable vocabulary shrinks, and temperature only reshapes what is already there. The path runs transformer output, unembedding matrix, logits, temperature, softmax. If RLHF has crushed the logit differences, dividing by temperature only stretches a narrow spike, and the same two or three tokens still win.
In a healthy model six or more tokens compete. In a collapsed one, two dominate. Even at a temperature of 2.0, the top two tokens hold more than 70% of the mass.
Creative where it should be. Precise where it must be.
Almost no model manages both. Claude Opus 4.7 and GPT-4.1 come closest. Reading the chart: x is factual diversity, where lower is correct, and y is creative diversity, where higher is better. The green region is where you want to live. The GPT-5 cluster is safe but narrow.
One model understood the assignment.
Claude Opus shows category-calibrated diversity: bright on creative, fading through opinion, black on factual. Nobody else does. The GPT-5.4 and GPT-5.5 rows are dark on everything, which is variance collapse.
Four plausible causes. Possibly all four at once.
- Reward shaping rewards consistencyHuman raters upvote confident, fluent, repeatable answers. Diversity gets penalised as inconsistency. Across many training rounds, the model learns to converge.
- Safety guardrails compress around a safe centreIf a creative response has any probability of being problematic, the model learns to avoid the whole region of response space. Safety and creativity trade off.
- IP protection suppresses the long tailNewer models are trained not to reproduce outputs traceable to specific sources, which inadvertently kills the long tail of creative outputs that would make a model’s fingerprint identifiable.
- Benchmark overfitting trains away the varianceBenchmarks reward single correct answers. A model scoring 92% on MMLU has no incentive to maintain diversity on questions with “good” answers. The signal optimises away anything benchmarks don’t reward.
- Brainstorming and ideation
- Marketing copy variants for A/B tests
- Customer persona generation
- Exploring solution spaces in product design
- Any “give me 10 different approaches” workflow
- Summarisation
- Classification and routing
- Q&A over your own documents
- Code generation (one right answer)
- Extraction tasks
If you are building a product on top of a model that is collapsing, your product is silently homogenising too, and you will not see it in your evals.
Teaching AI to reason about people, not stereotypes.
A large language model is a remarkably good average human. The trouble starts the moment you ask it to be somebody in particular.
Out of the box, the AI is the average person.
Ask a frontier model the standard personality-test questions, the IPIP items psychologists ask people, with no instruction to play a role. The typical answer it gives is the typical answer people give. Its answers land on the human average. We lead with what it gets right, because that is the trust the rest of this argument spends.
Ask for a kind of person, and it caricatures.
Ask it to answer as a woman rather than a man and it stops being accurate and starts exaggerating. Women really do score a little higher on agreeableness, about 0.6 standard deviations, a mild tilt with heavy overlap: the average woman scores above roughly 3 in 4 men.
The model gets the direction right but inflates the size to about 2 standard deviations, two almost-separate species, 98 in 100. Given only “a woman,” the one prior it has to reach for is the stereotype, so it leans on it hard.
Right direction. Three times too loud.
The solution to bias is more bias.
Counter-intuitive, but true: every extra detail is its own stereotype, but they pull in different directions. Pile on enough and they cancel each other out, and the category resolves into one real person.
“Woman, 40s” is just a category, and the model asks itself whether she is more agreeable. Add that she studied law, had a rural childhood, has two kids and runs marathons, and the pulls start competing. “Woman, 40, lawyer” is a person: the stereotypes are still true, they just stop explaining anything. A stereotype is a fine place to start and a terrible place to stop.
Feed it the whole person, and the caricature collapses.
Cambium does this deliberately: we hand the model the equivalent of a decade of acquaintance at once, hundreds of co-occurring details it has to reconcile into one coherent person. The swings are the competing pulls overshooting and correcting, and they shrink as more traits pin the answer down.
It settles on the real 0.6, not zero, because the difference is real, only small. The remaining gap is not “no difference”; it is the real difference. The leftover gap is signal, not error.
But only if the person could exist.
Real people are not drawn at random. Income tracks education, which tracks occupation, age and place. Feed the model an impossible combination and there is no real person behind it, only the stereotypes it can reach for.
So the lever cuts both ways. A realistic bundle, 41, married, ICU nurse, two kids, mid income, suburban, lets the competing pulls offset each other. A random one, 18, retired neurosurgeon, earns $12k, five kids, no schooling, lets them reinforce, and the bias compounds.
Realistic combinations cancel. Random ones compound.
Cambium’s job: build real people, at scale.
Public data almost always arrives as summaries, “this tract is 52% female, median income $54k”, which throw away the linkages between traits. Cambium’s synthesis engine works the other way, reconstructing individuals whose distributions add up across 200-plus datasets at once.
The result matches reality down to 10 to 20 households, with thousands of variables per person, built only from public aggregates, so no private record is ever touched. An LLM goes from believable but wrong about any group to a faithful stand-in for a real population.
Rebuilding a realistic population from summary numbers.
Averages describe one column at a time. The method below puts the people back.
Averages describe one column at a time.
A summary like “average income £39,400, average commute 39 minutes” tells you about each thing on its own, but nothing about how they connect. Five numbers, sitting alone.
Behind those five numbers were ten people, each with a sex, an age, years of education, an income and a commute. What leaves the room is the summary: ten numbers, instead of ten people.
| Characteristic | Average | Spread |
|---|---|---|
| Share female | 50% | n/a |
| Age | 40.7 | ± 12.5 |
| Education | 14.5 yrs | ± 2.6 |
| Income | £39,400 | ± £12,700 |
| Commute | 39 min | ± 17.6 |
“Spread” just means how much people differ from the average.
The characteristics were connected.
More education went with higher income. Longer commutes went with higher pay, too. The averages threw those stories away.
Rebuild the people.
Take the summary, the averages and spread, add a small sample showing how things connect, and reconstruct a full, believable table of individuals.
Nudge the table until the totals match.
Begin with a rough draft table. Match the row totals. Then match the column totals. Repeat until the totals match the real-world summary. Relationships between columns are held fixed, never distorted.
Statisticians call this iterative proportional fitting. We call it the balancing method.
It connects to everything.
Join on shared characteristics, sex, age, income, to enrich each person: spending and media habits attach to the individuals they belong to. Averages sit alone. Synthetic people can be joined, enriched, and put to work, safely.
From believable but wrong to a faithful stand-in for a real population. Polling, market research, policy and patient populations, on demand, with no privacy risk.
Request a demo →