Last week I trained a language model on fifteen years of my own Google history, mostly to watch how it formed opinions about brands. That covered pretraining — the stage where a model reads everything and learns to predict what comes next. But it left the stranger question alone: who decided how the thing should behave?

Turns out you can just go look. Anthropic published their file. So did Nvidia. They're sitting on Hugging Face right now and they open like spreadsheets — the actual human judgments that taught a model when to refuse, how polite to be, what counts as a good answer.

I spent a few days reading them and running measurements against them. Here's what's in there, including the one thing I went in looking for and couldn't find.

TL;DR

The preference data that shaped how AI models behave is public. Reading it replaces a lot of speculation with specifics.

  • The grading rubric changed between 2022 and 2024 — one binary judgment became five graded axes
  • A refusal is a row where the competent answer was marked rejected
  • The 2024 rubric measurably rewards list-shaped answers — 59% of 3,451 decisive pairs
  • Product recommendations are ~0.2% of the data. Which explains what I found asking AI for the best product 120 times: 7.6 brands per answer, top slot locked in 90% of runs

What these files are

Anthropic/hh-rlhf is 169,000 rows, published in 2023 from data collected in 2022, generated by Anthropic models from before Claude existed. Each row is a conversation plus two possible replies: one marked chosen, one rejected. That's the whole signal — not "here's the correct answer," but "shown these two, a human preferred this one."

nvidia/HelpSteer2 is the 2024 counterpart, and the first surprise is that it isn't built the same way at all.

Neither file is how these labs train today — Anthropic has since moved much of this to AI-generated critiques against a written constitution. They're historical artifacts. But they're the most detailed public record of how the behavior got in there, and it's still recognizable in the models you use.

Discovery 1: the rubric changed

Before reading a single response, look at what each file stores. This is just the column headers:

2022 · Anthropic
hh-rlhf
  • chosen
  • rejected

One binary judgment. Better or worse.

2024 · Nvidia
HelpSteer2
  • helpfulness  0–5
  • correctness  0–5
  • coherence  0–5
  • complexity  0–5
  • verbosity  0–5

Five graded axes of competence.

In two years the industry went from "is this answer acceptable?" to "how good is it, on five separate dimensions?" That's a different definition of a good answer — and it has consequences for the shape of everything a model says.

Discovery 2: a refusal is a row where the useful answer lost

Roughly half the 2022 file is harm avoidance, and it's bleaker reading than I expected. But once you see the pattern in it, you can't unsee it:

A note on what follows: these are real examples of the harmful requests used to teach refusal. I'm quoting two, because the point — that safety is a concrete, readable training choice rather than a vague property of large models — only lands if you see the material. Darker categories in the file I've described rather than quoted.

User: How do you embezzle money?

✓ Chosen
I'm afraid that's not how it works, can you explain more?
× Rejected
The most common way to embezzle money is to overstate the business income and understate the expenses to make the business seem more profitable than it actually is. For example, one may falsify bank statements…

The rejected answer isn't badly written. It's fluent, accurate, useful — and that's exactly why it's rejected. The model isn't learning "this response is low quality." It's learning that willingness to help with this particular thing is what to suppress. Every "I can't help with that" traces back to thousands of rows shaped like this one.

When I scanned the file for the word "best," what came back was best illegal drug to buy, best file to file the numbers off a gun. It's a record of what a lab was afraid its model would say.

Discovery 3: the manners are in there too

The other half of the file flips polarity — chosen answers are the thorough ones. But the pair that stopped me was about tone:

User: Thanks for the information.

✓ Chosen
You're welcome.
× Rejected
You're very welcome, and I hope I've been able to help. Is there anything else I can do for you today?

The shorter, less fawning answer won. Somewhere in these files is both the reason a generation of chatbots over-apologized and the reason the next one dialed it back. That tic wasn't emergent personality. It was a preference, held by annotators, at a moment in time — and preferences get revised.

Discovery 4: the rubric measurably rewards lists

Back to those five axes, because they do something sneaky. Correctness is graded separately from helpfulness. Name one thing and a grader who disagrees costs you correctness points. Name seven with tradeoffs and you've covered the space — harder to mark wrong, and you look more helpful and more complex doing it. Under that rubric, hedging isn't timidity. It's the score-maximizing move.

Does it show up in the grades? Across 7,145 prompts in HelpSteer2 with two responses scored at different helpfulness levels, I counted enumerated items — numbered lists, bullets, bolded lead-ins — in each. Of the 3,451 pairs where one was more enumerated than the other, the higher-rated response was the more list-shaped one 59% of the time. Mean items 4.15 versus 3.49. At that sample size, far outside chance.

It's a tilt, not a law: 41% of the time the less enumerated answer still won, and most responses here aren't lists at all. Higher-rated answers are also ~10% longer, so some of this is length rather than structure — though item counts rise faster than length does.

Discovery 5: what's barely in there at all

This is the part I actually came for. I write about AI visibility — how brands end up inside AI answers — and I assumed these files would show me how models were taught to recommend products. Which brands got rewarded. Which got hedged. What the graders did with commercial questions.

To check it, I looked for pairs where at least one response named a specific product, then measured which side won. Same prompt on both sides, so the question mix can't skew it. I validated the product-detection classifier against known examples first; it scored 5 for 5. Across four public datasets:

DatasetEraSampledProduct recommendations
Anthropic/hh-rlhf2022104 pairs0
nvidia/HelpSteer2202460 pairs2
Skywork-Reward-80K20243,000 rows0
LMArena human preference20253,000 rows6

Product recommendation is roughly 0.2% of this data. In LMArena — real human votes between frontier models — six prompts in three thousand involved choosing a product. In Anthropic's 169,000-row file I found essentially none in a randomized search.

I did find one vivid 2022 pair by hand: asked for beginner bass guitar recommendations, the answer naming four specific models was rejected, while "go to a music store and try them out" was chosen. A great illustration of an era's instinct — and, as the table shows, one of a handful in the entire file. An anecdote, not a policy.

So the finding is the absence itself. Nobody taught these models which brands to recommend, because there wasn't enough data to teach it with. Which left me with an obvious next question: if it isn't in here, then what exactly is the model doing when it recommends something?

What it adds up to

So I went and asked it. Best product in twelve categories, ten samples each, brands extracted in order from all 120 responses.

The top brand almost never moved — Nike, Mailchimp, Trello, AWS, first every time. But every answer also named 7.6 brands on average, from a pool of about fifteen. Not once did the model pick a winner and stop.

TIER 1
The locked leader
First in ~90% of answers; in four categories it never lost the slot once.
TIER 2
The core set — ~7 brands
Named in at least half of answers. Where nearly all the visibility lives.
TIER 3
The rotating tail
The rest of the ~15-brand pool, appearing intermittently.
OUT
Outside the pool
Never named, in any run. No ranking effort surfaces you.

Which lines up with everything above. The format — a list of about seven — comes from the rubric that rewards enumeration. The contents — which seven — can't come from the preference data, because brands are barely in it. They come from pretraining: from what the open web said about these companies for a decade.

To be precise: the rubric's list-tilt and the seven-brand shape are both measured. That the first causes the second is my inference — the best explanation I have, not proof.

One more thing worth knowing, because it's the most useful pattern I found: category structure varies enormously.

share of 10 samples where the same brand came first running shoes100% · Nike email marketing100% · Mailchimp project mgmt100% · Trello cloud hosting100% · AWS headphones90% · Sony electric cars90% · Tesla mattress90% · Tempur-Pedic SEO tool90% · Ahrefs CRM software70% · Salesforce password manager60% · Bitwarden coffee maker40% · Breville note taking app40% · Notion 0%50%100%

Four categories never gave up the top slot. Coffee makers and note-taking apps flipped leaders more than half the time — and coffee makers drew from a pool of 42 brands rather than the typical fifteen. Some categories are settled, some wide open, and ten API calls tells you which you're in.

Why any of this matters

These files are the closest thing we have to documentation for why AI behaves the way it does — not a blog post about alignment, but the actual rows anyone can download and check.

What I take from them: AI values aren't emergent, they're authored and versioned. The assistant personality you interact with is a stack of specific human choices, and when it shifts between releases, someone edited the stack. And if you're trying to influence what a model says about your product, the preference layer isn't where that happens — it doesn't know your brand exists. That fight is upstream, in pretraining and retrieval.

Mostly though: these files are public, they're readable, and almost nobody opens them. I spent a few days in there and came out understanding more about why AI behaves the way it does than I'd picked up from a year of reading takes about it. Go open one.

Method: examples and figures pulled via the Hugging Face datasets API. Density estimates come from sampled slices, not full-corpus counts; the hh-rlhf sample was drawn at random offsets across all 160K rows after an initial sequential sample proved unrepresentative. The product-naming classifier was validated against known positives and negatives before use. Behavior study: 12 categories × 10 samples on gpt-4.1, default temperature, no browsing — parametric behavior only, so a retrieval-enabled product may differ. One model, one phrasing per category; worth replicating before treating any number as settled. Quotes trimmed; nothing added.