Dan Petrovic at the DEJAN blog took Google’s smallest open model, Gemma 3 270M, and showed that a skill it seemed to lack was sitting inside it all along. Handed a jumbled row of five two-digit numbers, the model put them in order about 1% of the time under its luckiest prompt out of 20 tried. Once he retrained 1,000 of its roughly 100 million weights, the share of right answers climbed to 97%.
Weights are the numbers inside a model that store everything it has learned. Normal fine-tuning adjusts all of them. Petrovic’s method picks a tiny random handful, freezes the rest, and trains only those. If a handful is enough, the model must have been most of the way to the skill already, and the training only had to switch it on. If it takes far more, the skill was mostly missing and the model is learning it fresh.
The idea comes from a NeurIPS 2025 paper, “Quantifying Elicitation of Latent Capabilities in Language Models,” whose authors Donoway and colleagues come from Anthropic and UC Berkeley, plus Scale AI, Constellation and Thinking Machines. They ran it on Llama and Qwen models between 1B and 8B parameters. Training 10 to 100 weights won back up to half the distance to full fine-tuning, and thousands to tens of thousands got to 95%. Petrovic wrote his own version for Gemma, which fits on a single 8 GB gaming-class card and trains in one to two minutes.
The prompt tests were bleak. Across 20 phrasings, 200 problems each, including polite, urgent, German, step by step and worked examples, the best scored 2 out of 200 and seventeen scored zero. Usually the model handed the list back unchanged, or copied the example’s numbers and ignored the new ones.
The results, by task, show which skills were latent. Clean JSON output reached 99% with only 30 trained weights. The model was already extracting the right values; it wrapped them in markdown fences, and that wrapping broke every reply. Flipping the order of five words reached 84% at 1,000 weights. Two-digit multiplication topped out at 29% there and 33% even with 100,000 weights, so by the paper’s logic that skill was mostly missing.
Addition shows the same pattern as a slope. On three-digit sums, 1,000 weights closed 85% of the gap to full fine-tuning. On 12-digit sums the share fell to 29%. The more a task asks of the model, the less the small tweak can do.
Petrovic also looked inside the sorting result. Undoing any single one of the 1,000 changes barely hurt. The worst offender sat in layer 10 of the network and, when reverted, dropped accuracy to 92.2%, from a starting 98.8%. Removing a random half dropped accuracy to 25% or 15%. Retraining from scratch with just the 50 most damaging positions reached 24%. The skill lives in many small changes working together, not in a few special switches. Choosing weights only from attention output matrices, which carry attention’s output back into the rest of the layer, beat choosing anywhere: 47% against 35% at 100 weights.
The caveats are his own, and they are substantial. He tested one small model on mostly artificial tasks with checkable answers, and ran most settings once or three times. Four other behaviours came with flaws. Harmful-prompt refusals went from 47% to 97%, but refusals of harmless prompts jumped too, from 13% to between 74% and 85%. On counting letters, the model rose from 21% to 58%, yet answering “1” every time scores 44%.
The practical stake is for anyone deciding between prompting and training. When many prompt rewrites fail and a cheap tweak of a thousand weights works, the missing piece was a format or habit, and a small fine-tune is the faster fix. When even 100,000 weights barely move the score, as with multiplication, no amount of cheap tuning will substitute for a bigger model.
Reported by the DEJAN blog (dejan.ai), by Dan Petrovic, on 2 November 2026.