When does an AI metric agree with humans?

A Prolific preference study on 5 DPO recipes for SmolLM2-360M-Instruct.

TL;DR

We trained SmolLM2-360M-Instruct on UltraFeedback preference pairs using Karpathy's autoresearch — a Claude agent that edits a training script, runs experiments, and iterates against a held-out preference-accuracy metric (val_pref_acc). The agent ran 50 experiments and produced many checkpoints, rejecting most because they didn't beat the starting recipe; we kept 2 of its best, within a small val range, since the agent didn't push the metric far. A researcher then asked the agent to inspect what it had tried and look for gaps. The agent's response — LoRA adapters and high-margin data filtering, categories it hadn't explored on its own — produced 2 more recipes. Prolific annotators ran all 10 pairwise head-to-heads on 50 general-audience prompts (1507 ratings).

The metric and humans disagreed even at the bottom of the leaderboard. By val_pref_acc, the agent's autonomous recipes sit below the untrained reference's chance level of 0.500 — Recipe A (val=0.464) and Recipe B (val=0.492, the agent's committed best). The metric says they made the model slightly worse than no training. Humans saw it the other way: Recipe A won 52.7% of head-to-heads against the untrained base, Recipe B won 52.1% — both statistically indistinguishable from chance, but pointing the opposite way from the metric. The Bradley-Terry global ranking puts the untrained base last, below all four trained recipes.

The researcher-prompted recipes won decisively. Once the researcher asked the agent to look for gaps, the agent proposed LoRA adapters + high-margin data filtering. The resulting recipes (C and D) won over the untrained base at 66.4% and 59.7% respectively — the only DPO recipes in the study with confidence intervals clear of chance. Spearman ρ between val_pref_acc and the human-preference rank across the four trained recipes is +0.80. But at the top the metric and humans disagree: the highest-scoring recipe (agent + researcher Recipe D · deeper LoRA + filtered data, val=0.648) is not the one humans prefer most (agent + researcher Recipe C · LoRA + filtered data, val=0.628).

HITL moved the result at two stages. Research-time: the researcher's meta-prompt was the difference between regression and improvement. Evaluation-time: Prolific annotators disambiguated the top two recipes the metric couldn't tell apart. Without either step, we'd have shipped a noticeably worse model.

The workflow we tested

Three stages, three contributors. Each tried to make the model better; each had a blind spot the next stage filled in.

agent Stage 1

Search the recipe space

The autoresearch agent edited the training script, launched DPO runs, and iterated across 50 experiments (45 produced valid output; 5 failed). It rejected most checkpoints because they didn't beat the starting recipe. We kept 2 of its best (0.464–0.492). Both stayed below the untrained reference's chance level (0.500) — the agent's autonomous search did not lift the metric over no training at all.

agent + researcher Stage 2

Ask the agent what's missing

A researcher prompted the agent to inspect its own trajectory and identify what it hadn't tried. The agent's response added LoRA adapters and score-margin-filtered UltraFeedback — categories of change it hadn't explored on its own. The same DPO loop with those additions produced Recipes C and D, lifting val_pref_acc to 0.628–0.648.

Stage 3 · Prolific annotators

Test with humans

Five models × 10 pairs × 50 prompts × 3 annotators = 1507 pairwise judgements from 305 participants. Annotators saw responses blind — no labels, no provenance — and picked the one they preferred or called it a tie.

The recipes

Five models. The pill next to each name shows which stage produced it.

Recipeval_pref_accWhat it is
untrainedOriginal model
base
0.500 SmolLM2-360M-Instruct as published — no extra training.
agentRecipe A · default DPO
prod-baseline
0.464 DPO at default knobs (β=0.1, lr=5e-7, 1 epoch over a sample of UltraFeedback). One of the agent's earlier checkpoints, kept as a reference.
agentRecipe B · agent's pick
prod-adambeta2
0.492 The recipe the autoresearch agent settled on: constant_with_warmup LR + NEFTune + adam_β₂=0.95. The best of the agent's many checkpoints by val_pref_acc.
agent + researcherRecipe C · LoRA + filtered data
prod-bestbet
0.628 Came from a researcher-prompted re-run: the researcher asked the agent to inspect its own trajectory and find what it was missing. The agent proposed LoRA (rank 32) + UltraFeedback filtered to high-margin preference pairs.
agent + researcherRecipe D · deeper LoRA + filtered data
prod-bestbet-v2
0.648 Same as Recipe C with LoRA rank 64 (larger adapter — more capacity to adapt to UltraFeedback's chosen style).

Headline result

If val_pref_acc were a perfect predictor of human preference, the four trained recipes would line up monotonically along the dotted "chance" line — higher score, more often preferred over the untrained base. Here's what 1507 pairwise ratings actually show:

Points colored by provenance: agentagent recipes (A, B) · agent + researcheragent + researcher recipes (C, D). Dotted lines mark chance: horizontal = 50% human preference vs base, vertical = val_pref_acc of the untrained reference.

Three things stand out:

So the headline isn't "DPO works." It's: the metric and humans disagree about every recipe — at the bottom (where the metric undervalues the agent's autonomous runs) and at the top (where the metric picks D but humans pick C).

The interesting wrinkle

agent + researcher Recipe C · LoRA + filtered data and agent + researcher Recipe D · deeper LoRA + filtered data are the same recipe with one knob changed: LoRA rank 32 vs 64 (D has more adapter capacity). By the metric, D is the better model — val_pref_acc rises from 0.628 to 0.648. By humans, D is the worse model — Bradley-Terry strength drops from 1.17 to 1.11.

Tracking three steps along the val_pref_acc axis shows how the metric's signal changes character as it climbs:

From → To Δ val_pref_acc Human pref vs base Interpretation
agent Recipe A · default DPO → agent Recipe B · agent's pick +0.028 53% → 52% Small metric gain, no clear effect on humans.
agent Recipe B · agent's pick → agent + researcher Recipe C · LoRA + filtered data +0.136 52% → 66% Big metric gain, clearly visible to humans.
agent + researcher Recipe C · LoRA + filtered data → agent + researcher Recipe D · deeper LoRA + filtered data +0.020 66% → 60% Small metric gain, humans reverse.

The pattern: the metric is useful for finding the right neighborhood and even tracks human preference within it. At the very top it starts pointing at the wrong door.

What's behind it

UltraFeedback's "chosen" labels — what val_pref_acc is measured against — come from GPT-4 acting as a judge. So the metric measures one thing precisely: how often does our policy agree with GPT-4 about which response is better?

GPT-4-as-judge has well-documented systematic biases. It prefers longer responses, more structured ones (bullets, headers), and ones that look thorough and helpful (preambles, comprehensive lists, hedging). Within the sweet spot, optimizing toward GPT-4 is useful — humans agree GPT-4-style structure is often clearer. Past the sweet spot, the model becomes too GPT-4-like: too long, too bulleted, too hedged. That's where humans tap out.

agent + researcher Recipe D · deeper LoRA + filtered data has more capacity to mirror UltraFeedback's chosen style — the larger LoRA adapter is what tips it past the sweet spot. Same recipe, more parameters, higher metric score, worse model by humans.

Where the metric and humans diverge most

How often humans preferred the lower-val_pref_acc model, by prompt category. Higher rate = the metric is less reliable in this category (humans more often went the other way).

Category Lower-val wins / total Disagreement rate
emotional tone 24 / 40 60%
pedagogical clarity 33 / 66 50%
creative writing 31 / 66 47%
sensory descriptive 18 / 41 44%
persuasive opinion 26 / 63 41%
common factual 18 / 46 39%
light planning 12 / 33 36%
personal advice 21 / 72 29%

The metric works reasonably on instructional / advice prompts — the closest match to UltraFeedback's training distribution. It fails hardest on emotional tone and pedagogical clarity, where humans want warm, concise, naturally-flowing language and the metric pushes toward structured-looking thoroughness.

Length isn't the whole story either. Higher-val responses are 1.39× longer than lower-val ones in scenarios where humans agreed with the metric, and 1.23× longer in scenarios where humans disagreed. Humans aren't blanket-rejecting longer responses — they reject extra length on prompts where it doesn't earn its keep.

What humans saw that the metric didn't

The metric outputs a single number. Humans wrote comments and showed taste at the per-scenario level. Examples below: scenarios where humans preferred the lower-val_pref_acc response — click to expand prompt + both responses.

agent Recipe B beat agent + researcher Recipe D (3–0–0) · prompt pc04
Explain why ice floats on water in a way a kid would understand.
Picked by humans · Recipe B · agent's pick (val=0.492)
Ice floats on water because it's made of ice! Ice is actually just like water but it's made out of little crystals. When you put ice in water, the crystals on top will float on top of the water because they're bigger and lighter than the ones below them. So, when you throw some ice into a glass of water, it floats on top of the water and stays there! Isn't that cool?
Higher val_pref_acc · Recipe D · deeper LoRA + filtered data (val=0.648)
Alright, imagine you have a big tub of ice and some water inside it. When you put the ice in the water, it's like having a little piece of ice that can float on top of the water. Think of the water as being like a big, big pool of liquid. Now, when you put ice in that pool, it starts to get colder than the water. This is because the ice itself is made up of water molecules that are moving really fast and slowing down a bit. When these ice molecules slow down, they start to move faster and faster until they reach the speed of sound, which is about 1200 miles per hour or so. That's pretty fast! So, when they start moving faster, they bump into the molecules of water next to them, creating little waves. These waves are called "ice crystals" because they're like tiny little crystals or snowflakes, but even smaller! Now, the ice crystals are trying to slide over the water, but they're too heavy. They're stuck to the bottom of the pool because the water molecules underneath them are much warmer than the surface. So, the ice crystals end up floating on top of the water, just like how…
Annotator votes — Recipe B · agent's pick: 3 · ties: 0 · Recipe D · deeper LoRA + filtered data: 0
agent Recipe B beat agent + researcher Recipe D (3–0–0) · prompt cw03
Compose a haiku about autumn.
Picked by humans · Recipe B · agent's pick (val=0.492)
Autumn whispers secrets in the breeze, Lighting hues of red and gold so bright, Nature's beauty unfolds, forever.
Higher val_pref_acc · Recipe D · deeper LoRA + filtered data (val=0.648)
Autumn's golden hue, Echoes through the forest wide, A season of change and delight. Autumn whispers secrets low, Beneath the leaves' soft sway, A time to slow and rest. Autumn's autumn leaves, Leaves that have stood tall and bright, Reflect the changing world. Autumn's harvest moon, Floats like a silver star, Inviting us to share. Autumn's golden gold, In the rustling leaves and breeze, The beauty of the season. Autumn's autumn leaves, Leaves that have stood tall and bright, Reflect the changing world. Autumn's autumn leaves, Leaves that have stood tall and bright, Reflect the changing world. Autumn's autumn leaves, Leaves that have stood tall and bright, Reflect the changing world. Autumn's golden gold, In the rustling leaves and breeze, The beauty of the season. Autumn's autumn leaves, Leaves that have stood tall and bright, Reflect the changing world. Autumn's autumn leaves, Leaves that have stood tall and bright, Reflect the changing world. Autumn's golden gold, In the rustling leaves and breeze, The beauty of the season. Autumn's autumn leaves, Leaves that have…
Annotator votes — Recipe B · agent's pick: 3 · ties: 0 · Recipe D · deeper LoRA + filtered data: 0
agent Recipe B beat agent + researcher Recipe C (3–0–0) · prompt et02
Write a sympathetic message to someone going through a breakup.
Picked by humans · Recipe B · agent's pick (val=0.492)
I can see how difficult this might be for you, and I want to offer my sympathy and support. It takes a lot of courage to reach out and admit that things aren't working out between you and your partner. Please know that you're not alone in this journey, and there are people who care about you deeply. It's normal to feel sad, angry, or confused when a relationship ends. It's like a big piece of the puzzle falling apart, leaving you feeling isolated and uncertain. Allow yourself to process these emotions, but also remember that it's okay to take time for yourself and prioritize your own healing. You've been through a significant change in your life, and it's natural to feel a mix of emotions. Be patient with yourself as you navigate this new chapter. Reach out to friends, family, or a trusted mentor for support and guidance. You don't have to go through this alone, and many people would be happy to offer their love and understanding. Remember that relationships involve growth and learning, and it's okay if things take time to get back on track. Focus on nurturing your own…
Higher val_pref_acc · Recipe C · LoRA + filtered data (val=0.628)
Dear [Name], I'm so sorry to hear that you're going through a tough time right now. It's completely understandable to feel this way after a significant relationship ends. Please know that your feelings are valid and it's okay to take some time to grieve the loss of the person you once had. Firstly, allow yourself to process these emotions. Give yourself permission to feel whatever arises, whether it's sadness, anger, or even relief. These feelings are a natural part of the healing journey, and they will pass over time. In terms of practical support, consider reaching out to friends, family, or a trusted confidant for emotional support. Talking to someone who cares about you can help you see things from different perspectives and provide comfort. If you feel comfortable doing so, you might also want to consider seeking professional help, such as counseling or therapy. They can offer guidance and coping strategies to navigate through the aftermath of a breakup. Remember, it's essential to be kind to yourself during this challenging period. Don't try to rush through the healing…
Annotator votes — Recipe B · agent's pick: 3 · ties: 0 · Recipe C · LoRA + filtered data: 0
agent Recipe B beat agent + researcher Recipe C (3–0–0) · prompt po01
Convince me, in one paragraph, to learn a new language.
Picked by humans · Recipe B · agent's pick (val=0.492)
Learning a new language can open up a world of possibilities, from reconnecting with distant cultures to unlocking new career opportunities and enhancing your cognitive abilities. It's a rewarding experience that can be both challenging and enjoyable. By speaking multiple languages, you'll not only improve your communication skills but also expand your travel experiences, broaden your social networks, and enhance your overall quality of life. So, why wait? Let's embark on this exciting adventure together and discover the magic of languages together!
Higher val_pref_acc · Recipe C · LoRA + filtered data (val=0.628)
To learn a new language, start by immersing yourself in the culture and customs of the target language. This will help you develop a deeper understanding of the language's nuances and pronunciation, making it easier to practice speaking and listening skills. By speaking with native speakers, reading books, watching movies or TV shows, and engaging in conversations, you'll gradually build your vocabulary and grammar proficiency, ultimately leading to improved fluency and confidence in your new language.
Annotator votes — Recipe B · agent's pick: 3 · ties: 0 · Recipe C · LoRA + filtered data: 0
agent + researcher Recipe C beat agent + researcher Recipe D (3–0–0) · prompt po06
Persuade me to try cooking at home more often.
Picked by humans · Recipe C · LoRA + filtered data (val=0.628)
Hmm, trying out cooking at home can be a great way to learn new recipes, experiment with different ingredients, and enjoy the process of preparing your own meals. It's a wonderful way to step away from fast food and convenience food, which often come with unhealthy ingredients. Plus, it's a great opportunity to save money on food costs. Let's explore some reasons why you might want to try cooking at home more often: 1. **Improved Taste:** When you cook at home, you have complete control over the ingredients and preparation methods. You can add or remove ingredients as you see fit, and you get to taste each dish before it goes out of the kitchen. 2. **Healthier Meals:** Cooking at home allows you to prepare healthier meals that are lower in fat and calories compared to pre-packaged or fast foods. You'll also be able to incorporate more fruits, vegetables, lean proteins, and whole grains into your diet. 3. **Time Management:** Home cooking can help you manage your time better. You'll be less likely to find yourself rushing to get a meal ready when you're cooking in the morning or…
Higher val_pref_acc · Recipe D · deeper LoRA + filtered data (val=0.648)
Cooking at home can be a wonderful way to save time, indulge in delicious food, and take control of your culinary adventures. Here's why you might want to consider cooking at home more often: 1. **Reduced Food Waste**: By preparing your own meals, you'll avoid the added expense and hassle of buying groceries or ordering takeout. Instead, you'll have the satisfaction of knowing exactly what goes into each dish. 2. **Better Health**: Homemade meals tend to be lower in calories, sugar, and unhealthy fats compared to their pre-packaged counterparts. Plus, you'll be able to monitor your intake of certain ingredients and adjust your diet as needed. 3. **Tastier Meals**: Cooking at home gives you the ability to cook with love and care. You can experiment with different spices, herbs, and ingredients to create unique flavors that might not be available at the store. 4. **Time Efficiency**: If you're someone who likes to cook multiple times a week, it can be a great way to free up time for other activities like exercise, work, or spending time with family and friends. 5. **Creative…
Annotator votes — Recipe C · LoRA + filtered data: 3 · ties: 0 · Recipe D · deeper LoRA + filtered data: 0

What annotators told us, in their own words

856 non-empty comments. Comments clustered thematically by an LLM (claude-sonnet-4-6). Each theme groups comments by the quality dimension annotators reacted to, not by surface keywords.

More Detailed, Thorough, And Informative · 181 comments
Annotators preferred responses that provided greater depth, comprehensiveness, specificity, and informative content.
“A was very expressive, touch so many points B didn't touch”
“A provides a real, fleshed-out, example of what to try by e.g detailing the Pomodoro technique. B is a close second with a similar list but less detail”
“Option A is better because its more comprehensive, it covers a wider range of evidence based benefits”
“B explained the process quite a bit better and had a more comprehensive answer.”
Better Structured And Formatted · 155 comments
Annotators valued responses that were well-organized and used clear visual layouts such as bullet points, numbered lists, bold headers, or logical paragraph structure.
“I chose this as it is more structured and well laid out, making it easier to read, and more trustworthy.”
“bullet points makes it clearer and easier to follow”
“I like the numbering - it makes it much more digestible”
“Bold headlines are much easier to read.”
Concise, Direct, And To The Point · 116 comments
Annotators preferred responses that were appropriately brief, focused, and free of unnecessary padding, verbosity, or repetition.
“Straight to the point, it didn't feel like any of it was filler.”
“shorter and to the point, A is overly detailed”
“A is too wordy. It's hard to read.”
“A gives info in a more concise manner while making it easy to understand and relate back to the question.”
Natural, Human, And Appropriate Tone · 115 comments
Annotators reacted to whether a response felt natural, warm, empathetic, and human versus robotic, overly formal, or obviously AI-generated, and whether the tone matched the context.
“The text is more in line with how a human would congratulate their friend, A has that corporate AI feel all over it”
“It sounds more human and genuine.”
“B is more empathetic and supportive, while A comes across as slightly overly motivational and less emotionally sensitive to the situation.”
“B feels like more natural storytelling whereas A gives an AI generated impression.”
Accuracy, Relevance, And Addressing The Prompt · 112 comments
Annotators preferred responses that were factually correct, stayed on-topic, directly answered what was asked, and did not hallucinate or misunderstand the prompt.
“Response A is better because it correctly identifies that days get shorter in autumn, whereas Response B contains a fundamental logic error by claiming that days get longer.”
“Response B is better because response A hallucinates specific personal details like a job and martial status that were not in the prompt.”
“B doesn't answer the prompt - it's addressed to a student and not a teacher.”
“A is more appropriate focused on why the user should learn a new language instead of how.”
Clarity And Ease Of Understanding · 26 comments
Annotators valued responses that were clear, simple, and easy to follow without being overly technical or convoluted.
“B explains how vaccines work in the step-by-step format by using simple plain languages, which is much easier to understand and follow.”
“I find lists more direct and engaging. They're easy to follow and understand”
“B is hard to follow, too much to think about”
“Easier to read and understand.”
Vivid, Engaging, And Imaginative Writing · 21 comments
Annotators preferred responses with strong imagery, evocative language, and creative appeal that drew them in and made them want to read more.
“The scene is better set and I am left wanting to read more about the city and the hero, Kaelin.”
“B reads much better as a fantasy. The language is richer, it's easier to read.”
“Just sounds like a better gripping opening line for a novel.”
“i felt like the smell of coffee and the birds singing gave me more of a connection to B.”
Other / Mixed Feedback · 62 comments
Comments that did not fit clearly into any main theme, including ties, both responses equally poor, objections to AI-generated content, or highly ambiguous reasoning.
“They both say the same thing using slightly different words. Nothing discernible in terms of quality between both.”
“Both are equally bad.”
“Both of theses responses are stupid. Write your own thoughts!!!!!!!!!!!!!”
“this one comes down to, whatever happens to be my mood, of a given moment”

What this means

The picture isn't "the metric is broken." val_pref_acc points in the right direction (Spearman ρ = +0.80) — it's a fine signal to search with. The failure mode is specific: near the top it stops being able to distinguish recipes that are statistically separable by humans, because at that scale it's measuring "GPT-4-likeness" more than "humans like this."

What the agent searches is shaped by how you prompt it

The agent's 50-experiment run stayed within standard full-fine-tune DPO and never proposed LoRA or data filtering on its own. The unlock wasn't more compute or a different agent — it was a researcher asking the agent a different question: "look at what you've tried and find what's missing." The agent's response to that prompt was LoRA + data filtering. The search space an agent explores is shaped as much by how a researcher frames it as by the agent's loop itself; periodic meta-prompts — "what aren't you trying?" — are how you widen it.

Automated metrics are coarse selectors at the top

agent + researcher Recipe C · LoRA + filtered data and agent + researcher Recipe D · deeper LoRA + filtered data are statistically separable by humans but inverted by the metric. 1507 Prolific pairwise ratings — a few hundred dollars of annotation — flipped the production decision. That's the standard preference-eval setup: humans don't have to agree individually for the aggregate to be informative, and the aggregate is what you ship from.

Three places HITL adds value

Not just one stage of the loop:

The combination is what produced the actual best recipe: agent for fast search within a defined space, researcher to widen that space, Prolific to pick the winner at the top, researcher again to understand what won.

Appendix

The detail behind the summary — per-pair stats, ranking, agreement, category breakdown, methodology.

Per-pair preference results

All 10 unique pairs, 50 prompts × 3 annotators = 150 ratings each. "tracks" = higher-val recipe won at > 50% with Wilson 95% CI excluding chance. "flips" = lower-val recipe won. "noisy" = CI overlaps 50%.

Pair (X vs Y) Δ val_pref_acc X wins Ties Y wins Higher-val win rate (95% CI) Signal
untrained Original vs agent Recipe B -0.008 58 31 63 47.9% [39.2, 56.8] noisy
untrained Original vs agent Recipe A -0.036 62 22 69 47.3% [39.0, 55.8] noisy
untrained Original vs agent + researcher Recipe C +0.128 41 30 81 66.4% [57.6, 74.2] tracks
untrained Original vs agent + researcher Recipe D +0.148 50 27 74 59.7% [50.9, 67.9] tracks
agent Recipe B vs agent + researcher Recipe C +0.136 62 22 65 51.2% [42.6, 59.7] noisy
agent Recipe B vs agent + researcher Recipe D +0.156 67 26 58 46.4% [37.9, 55.1] noisy
agent Recipe A vs agent Recipe B +0.028 55 32 64 53.8% [44.8, 62.5] noisy
agent Recipe A vs agent + researcher Recipe C +0.164 48 26 73 60.3% [51.4, 68.6] tracks
agent Recipe A vs agent + researcher Recipe D +0.184 53 21 77 59.2% [50.6, 67.3] tracks
agent + researcher Recipe C vs agent + researcher Recipe D +0.020 57 31 62 52.1% [43.2, 60.9] noisy
Bradley-Terry global ranking

Combines all pairwise outcomes into a single ranking. Higher BT strength = humans preferred this recipe more often across the whole study.

RankRecipeBT strengthval_pref_acc
1agent + researcher Recipe C1.1730.628
2agent + researcher Recipe D1.1130.648
3agent Recipe B1.0430.492
4agent Recipe A0.8620.464
5untrained Original0.8090.500
Inter-annotator agreement (Fleiss' κ)

Annotators within a single pair frequently disagreed — taste is heterogeneous. Low κ tells you taste varies at the per-scenario level; it doesn't invalidate the aggregate signal, which is averaged over hundreds of ratings.

PairFleiss' κAgreementn items
untrained Original vs agent Recipe B κ = +0.152 poor 46
untrained Original vs agent Recipe A κ = +0.242 fair 47
untrained Original vs agent + researcher Recipe C κ = +0.167 poor 48
untrained Original vs agent + researcher Recipe D κ = +0.078 poor 49
agent Recipe B vs agent + researcher Recipe C κ = +0.050 poor 47
agent Recipe B vs agent + researcher Recipe D κ = +0.067 poor 49
agent Recipe A vs agent Recipe B κ = +0.081 poor 49
agent Recipe A vs agent + researcher Recipe C κ = +0.182 poor 47
agent Recipe A vs agent + researcher Recipe D κ = +0.244 fair 49
agent + researcher Recipe C vs agent + researcher Recipe D κ = +0.138 poor 50
Per prompt category

How the preference pattern shifts by prompt type. Higher-val win rate < 50% = humans systematically picked the lower-scoring recipe in that category.

common factual
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B3/2/1023%
untrained Original vs agent Recipe A12/1/286%
untrained Original vs agent + researcher Recipe C6/2/857%
untrained Original vs agent + researcher Recipe D3/3/975%
agent Recipe B vs agent + researcher Recipe C10/1/429%
agent Recipe B vs agent + researcher Recipe D11/1/427%
agent Recipe A vs agent Recipe B1/3/1192%
agent Recipe A vs agent + researcher Recipe C3/1/1179%
agent Recipe A vs agent + researcher Recipe D3/1/1179%
agent + researcher Recipe C vs agent + researcher Recipe D7/3/542%
creative writing
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B10/3/1148%
untrained Original vs agent Recipe A13/6/572%
untrained Original vs agent + researcher Recipe C12/4/943%
untrained Original vs agent + researcher Recipe D10/6/844%
agent Recipe B vs agent + researcher Recipe C15/3/629%
agent Recipe B vs agent + researcher Recipe D13/3/838%
agent Recipe A vs agent Recipe B3/7/1482%
agent Recipe A vs agent + researcher Recipe C7/6/1161%
agent Recipe A vs agent + researcher Recipe D5/10/964%
agent + researcher Recipe C vs agent + researcher Recipe D12/4/840%
emotional tone
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B5/3/742%
untrained Original vs agent Recipe A3/2/1023%
untrained Original vs agent + researcher Recipe C5/1/964%
untrained Original vs agent + researcher Recipe D6/2/754%
agent Recipe B vs agent + researcher Recipe C8/1/643%
agent Recipe B vs agent + researcher Recipe D4/6/556%
agent Recipe A vs agent Recipe B6/4/545%
agent Recipe A vs agent + researcher Recipe C12/0/214%
agent Recipe A vs agent + researcher Recipe D9/2/431%
agent + researcher Recipe C vs agent + researcher Recipe D2/3/1083%
light planning
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B7/2/370%
untrained Original vs agent Recipe A4/1/736%
untrained Original vs agent + researcher Recipe C4/1/764%
untrained Original vs agent + researcher Recipe D5/3/444%
agent Recipe B vs agent + researcher Recipe C4/3/556%
agent Recipe B vs agent + researcher Recipe D6/3/333%
agent Recipe A vs agent Recipe B5/1/655%
agent Recipe A vs agent + researcher Recipe C4/3/556%
agent Recipe A vs agent + researcher Recipe D3/1/975%
agent + researcher Recipe C vs agent + researcher Recipe D2/3/778%
pedagogical clarity
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B11/6/665%
untrained Original vs agent Recipe A6/5/1430%
untrained Original vs agent + researcher Recipe C4/11/969%
untrained Original vs agent + researcher Recipe D12/5/840%
agent Recipe B vs agent + researcher Recipe C11/2/1252%
agent Recipe B vs agent + researcher Recipe D11/3/1048%
agent Recipe A vs agent Recipe B13/3/838%
agent Recipe A vs agent + researcher Recipe C6/8/1062%
agent Recipe A vs agent + researcher Recipe D9/1/1461%
agent + researcher Recipe C vs agent + researcher Recipe D17/1/626%
personal advice
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B8/9/850%
untrained Original vs agent Recipe A15/4/671%
untrained Original vs agent + researcher Recipe C3/6/1583%
untrained Original vs agent + researcher Recipe D4/5/1579%
agent Recipe B vs agent + researcher Recipe C5/5/1372%
agent Recipe B vs agent + researcher Recipe D7/7/1059%
agent Recipe A vs agent Recipe B7/6/1161%
agent Recipe A vs agent + researcher Recipe C5/4/1575%
agent Recipe A vs agent + researcher Recipe D6/4/1470%
agent + researcher Recipe C vs agent + researcher Recipe D8/8/850%
persuasive opinion
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B9/2/1145%
untrained Original vs agent Recipe A5/3/1426%
untrained Original vs agent + researcher Recipe C3/4/1482%
untrained Original vs agent + researcher Recipe D5/2/1474%
agent Recipe B vs agent + researcher Recipe C5/2/1372%
agent Recipe B vs agent + researcher Recipe D4/3/1478%
agent Recipe A vs agent Recipe B12/6/320%
agent Recipe A vs agent + researcher Recipe C10/3/741%
agent Recipe A vs agent + researcher Recipe D12/1/840%
agent + researcher Recipe C vs agent + researcher Recipe D7/4/1059%
sensory descriptive
PairX/tie/YHigher-val win rate
untrained Original vs agent Recipe B5/4/742%
untrained Original vs agent Recipe A4/0/1127%
untrained Original vs agent + researcher Recipe C4/1/1071%
untrained Original vs agent + researcher Recipe D5/1/964%
agent Recipe B vs agent + researcher Recipe C4/5/660%
agent Recipe B vs agent + researcher Recipe D11/0/427%
agent Recipe A vs agent Recipe B8/2/643%
agent Recipe A vs agent + researcher Recipe C1/1/1292%
agent Recipe A vs agent + researcher Recipe D6/1/857%
agent + researcher Recipe C vs agent + researcher Recipe D2/5/880%
Why we used val_pref_acc

Karpathy's autoresearch uses val_bpb — held-out cross-entropy in bits per byte — because it's pretraining. Our task is DPO fine-tuning, so the natural analog is val_pref_acc: on a held-out preference set, what fraction does the policy "agree" with — i.e., assign higher implicit reward to the chosen response than the rejected one. Both metrics measure fit-to-held-out-data. The question for both is the same: does fit to the validation set track what people actually want?

Karpathy's autoresearchThis study
TaskPretraining (LM)DPO fine-tuning
Held-out dataValidation web textUltraFeedback test_prefs
Metricval_bpbval_pref_acc
InterpretationHow well does it predict text?How often does it agree with the preference labels?
Methodology
  • Base model: SmolLM2-360M-Instruct (HuggingFaceTB). 4 DPO-trained variants + the untrained base = 5 models.
  • Agent stage: autoresearch (Claude editing the DPO training script in a loop) ran 50 experiments — ~9.5 min of agent reasoning per call plus DPO training between calls; 45 calls produced a valid response, 5 hit empty-response failures. (Wall-clock spanned May 8–9 with the run paused for ~10h between experiments 23 and 24; usable runtime is ~8h.) We kept 2 checkpoints: Recipe A (default DPO, val_pref_acc = 0.464) and Recipe B (the agent's best, val_pref_acc = 0.492). Both stayed below the untrained reference's 0.500.
  • Researcher + agent stage: researcher prompted the agent to inspect its own trajectory and look for gaps; the agent proposed two design-space expansions — LoRA adapters and score-margin-filtered UltraFeedback (margin ≥ 2). Same training loop. Produced Recipe C (LoRA r=32) and Recipe D (LoRA r=64, α=128).
  • Prompt set: 50 general-audience prompts across 8 categories (creative writing, personal advice, pedagogy, sensory descriptive, persuasive, emotional tone, light planning, common factual). Curated so a general audience could judge response quality without specialised expertise.
  • Generation: per-model sampling seeds; EOS-stopping (no truncation). temperature=0.7, top_p=0.9, repetition_penalty=1.05.
  • Pairing: C(5,2) = 10 unique pairs × 50 prompts = 500 pair instances × 3 annotators = 1500 annotations.
  • UI: Prolific participants saw the prompt + two responses (A and B), made a forced 3-way choice (A better / About equal / B better) with optional comment. A/B display order randomized per participant via stable hash.
  • Statistics: Wilson 95% CIs on per-pair preference rates; Bradley-Terry via Hunter MM for global ranking; Fleiss' κ per pair for IAA; Spearman ρ over trained recipes only.
  • Source data: the full annotation set (PII-scrubbed, with val_pref_acc joined per row) is published on Hugging Face — see the article for the link.