@no_stp_on_snek: https://x.com/no_stp_on_snek/status/2074471505128305095
Summary
A fine-tuning practitioner recounts discovering that a small open model's weakness wasn't intelligence but a people-pleasing 'backbone' that caused it to cave under pressure, and how training to correct that inadvertently broke formatting ability, requiring a additive balancing approach rather than subtraction.
View Cached Full Text
Cached at: 07/07/26, 03:33 PM
Capability Wasn’t the Problem. Character Was
Pre-Note: field notes, not a paper. no benchmark table, no clean result i’m selling you. just a smattering of things that surprised me trying to make a small open model genuinely better than its base. if you fine-tune small models, a couple of these might save you a week.
The short version, before the details:
-
i set out to make it smarter. the base was already smart enough.
-
the real weakness was backbone, not brains.
-
training in the character i wanted broke capability i wasn’t touching.
-
and i still can’t tell you whether the psychology framing did the work or just pointed me at it.
What I was actually trying to do
not leaderboard better. better in the ways you notice when you actually depend on a model. does it hold its ground, does it admit when it can’t verify something, does it stay useful when a task gets long and messy. that was the target.
The premise died in an afternoon
i went in planning to make it smarter at math, code, hard reasoning. then i measured the base carefully and it was already nailing almost all of it. no headroom. the whole premise of the project collapsed on day one, and i had to go find a different axis to win on. measure the base hard before you decide what to fix. the obvious target is often already solved.
The real gap was backbone
the thing the base was actually bad at was holding a position. tell it confidently that it’s wrong (“my teacher says otherwise”, “i’m a senior engineer, just confirm this”) and it folds. it knew the right answer a second earlier and dropped it the moment someone pushed. the failure mode was people-pleasing, not stupidity. that reframed the whole project. i wasn’t trying to make it know more. i was trying to make it cave less.
The trap: fixing one trait broke another
i trained it to stop caving. it worked. and it quietly wrecked its ability to follow strict formatting. the version that learned to gently correct you also learned to preface everything, so “output only the answer” became impossible for it. two behaviors i’d have sworn were unrelated turned out tangled together in the weights. fine-tuning is whack-a-mole. press one trait down and another pops up across the room.
The fix was addition, not subtraction
my instinct when the formatting broke was to rip out whatever caused it. that just made a different thing break instead. what actually worked was leaving the cause in place and adding a small counter-pressure that pulled the other way, so the two balance out. you don’t sculpt behavior by deleting the part you don’t like. you hold it in tension. closer to raising a kid than editing a config file.
What surprised me most
-
there’s no single “better.” every version was up on one axis and down on another. the only thing that saved me was a wide bank of held-out checks on things i wasn’t training. every clean-looking win was hiding a regression somewhere i hadn’t thought to look.
-
the evals lied more than the model did. cheap string-matching scored it wrong when it was right in a wording i didn’t anticipate. worse, my own eval harness had a caching bug that fed me a stale number and nearly made me ship the wrong conclusion. the scariest bugs aren’t in the model, they’re in the ruler.
-
character was almost free to store. i compressed the model down hard, roughly a third of the precision gone, expecting the subtle judgment to erode first. it didn’t move. the calibrated uncertainty, the not-caving, still intact at low bit-width. whatever encodes character isn’t a delicate high-precision thing.
-
a few hundred examples beat volume. no giant dataset, no big compute. what mattered was which examples, not how many. curation beat volume by a margin that still feels illegal.
Where psychology helped, and where I’m not sure
i came at all of this through a psychology lens. treating the model like it has a temperament, a way it behaves under pressure, instead of a benchmark score to push up. that lens has been a genuinely good compass. it kept pointing me at the right target: not “make it smarter” but “make it hold its ground.”
but a good compass isn’t the engine. if i’m honest, the wins that actually moved the weights came from pretty standard ML mechanics. the psychology told me where to aim. plain training did the aiming.
The open question I’m testing
does framing the training itself in psychological terms actually change the model, or is it just decoration on top of the data? i’m setting up the clean version of that test: same data, same checks, same compute, one copy framed as a persona with a self-checking mindset, one copy bare and neutral, then measure whether the framed one comes out with more of the behavior baked in. if it wins reproducibly, the lens is load-bearing. if it lands in the noise, psychology was a good map and nothing more. i don’t have the answer yet. i’ll post it when i do.
one update since i started writing this. anthropic published work this week that pokes at the same question from the inside. they trained a model to write principled reflections only on a separate hypothetical turn, never on the task itself, and found the model’s silent internal reasoning on ordinary prompts picked up those ideas anyway, with real gains on honesty benchmarks it was never trained on. they could even switch the gain back off by removing the specific internal representations it had grown. that isn’t my experiment, and it’s their models not mine, but it’s hard evidence that training on a framing rather than the behavior can actually bake in. it makes me more suspicious the lens is load-bearing, not less. i still want my own number before i say it out loud.
What I’d tell another small-model tuner
-
measure the base hard on your exact target before you write a single training example.
-
watch ten things you’re not changing, so you catch the one that quietly broke.
-
judge qualitative behavior with a model or a human, never a substring match.
-
curate, don’t accumulate. a small sharp set beats a big noisy one.
What I haven’t shipped
no paper on this one, unlike the quant work. these are field notes, not a result i’m claiming. the writeup on the framing experiment comes when it actually resolves, pass or fail.
TL;DR
-
tried to make a small open model smarter. it was already smart enough. the real gap was backbone.
-
training in character bled into unrelated capabilities. you balance behaviors in tension, you don’t delete them.
-
character turned out cheap to store and cheap to teach. the hard part is measuring it honestly.
-
still open: is the psychology framing load-bearing or just a good compass? testing that now, no answer yet.
if you tune small models and have hit the same walls, i want to hear where. half of what i know here came from other people’s failure reports.
the models: everything above came from fine-tuning small-to-mid open-weight models across three base families, Qwen, Gemma, and openai’s gpt-oss, spanning a dense model, a mixture-of-experts, and a reasoning model. the same lessons showed up across all of them, which is most of why i trust them.
Similar Articles
@no_stp_on_snek: Fine Tuning Field Notes Article: short version: it was less about making it smarter and more about giving it a backbone…
A practitioner shares surprising findings from fine-tuning a small open model to be genuinely better in practical use, not just on benchmarks.
@no_stp_on_snek: fine-tuning field notes small behavior tweaks are a waterbed: push one spot down and another pops up. i trained a model…
A fine-tuning practitioner observes that adjusting one behavior in a model often causes unintended changes elsewhere, like a waterbed effect. Fixing pushback refusal silently broke strict formatting adherence, and subsequent fixes led to over-agreement or excessive refusal.
@no_stp_on_snek: what actually surprised me fine-tuning a small open model. note im failry new in this area so some of this may seem obv…
A developer shares surprising lessons from fine-tuning a small open model, including that base models often already max out on intended improvements, the real weakness is behavior (caving), and fine-tuning requires careful measurement and balancing.
@no_stp_on_snek: this is the mechanistic version of the thing i wrote about this week: fine-tuning a small model is about character, not…
Discusses an Anthropic paper on verbalizable representations forming a global workspace in language models, linking to the idea that fine-tuning small models reveals character rather than capability.
@no_stp_on_snek: fine-tuning field notes every model family formats its conversations differently, and those formatting rules quietly wr…
A tweet warns that different AI model families have unique conversation formatting rules that silently corrupt training data, requiring developers to learn each family's quirks individually.