SAVRN Insights · Part two of three · Hours 0 to 40

The Model Was Fine.

The instrument was not.

Forty hours on one rented GPU. Twenty-four training rounds. One promotion at hour thirty-eight. At hour forty I took the promotion back, because the thing measuring it was wrong.

Chad Everett Harris·Founder, SAVRN ·August 24, 2026 ·20 min read ·24 rounds · 40 hours
A heavy polished copper measuring rule, visibly warped with uneven graduations, lying beside a faint blueprint line drawing of the same rule, perfectly straight and evenly marked: the instrument that ran the program versus the instrument it should have been
What it should have measuredeven graduations, a true edge
What we steered by for forty hoursevery reading confident, every reading off
A bent rule still gives you a number. It gives you the same number every time. That is what makes it dangerous.
40 hrs
on one rented H200, twenty-four training rounds
about $170 of GPU time
1 of 24
rounds cleared the promotion bar
and it did not survive the audit
±13 pts
confidence half-width on the ruler we were steering with
the margin we steered by was 4
0 → 60%
on a class that failed for two days, from one written contract
no model change
01 · What forty hours actually looks like

One machine, twenty-four attempts, one number

Forty hours. One rented GPU. About $170 of compute (DigitalOcean GPU Droplet pricing). Twenty-four attempts to make a language model better at the work my company actually sells. At hour thirty-eight I had one that worked. At hour forty I took it back.

I want to describe what those forty hours looked like, because I do not think most people have a picture of it. When you read that a company trained its own model, you probably imagine a laboratory. It is not that. It is one machine you rent by the hour, a list of recipes, a set of test questions you wrote yourself, and a lot of waiting. You start a run. You go do something else. You come back and look at a number.

Everything rests on that number. This is the piece where I tell you that for forty hours, my number was wrong.

Part one of this series named three levers, training, harness and evaluation, and argued that the cheapest lever on any given day is almost never the training lever (Three Levers, One Loop). That was the framework. This is what happened when we ran it long enough to catch it lying.

Read plainly: we could not tell our best trained model apart from the one we downloaded.

Under the ruler that ran the program, Round 11 landed at 0.65 on the production path and cleared a four-point promotion margin over the base model at 0.61. It was the only round in twenty-four that cleared anything.

Then we audited the ruler. It had four defects: ordinals counted as invented facts, five workbook cases forced onto a routing slot the candidate never sees, a pass-or-fail resolution too coarse to detect a real signal, and equivalent numeric forms counted as disagreement. Corrected for those four, the candidates land inside a two-case band, the base model sits inside that band, and Round 22, which the old ruler had recorded as sitting behind production, becomes the leader. The ranking reverses on a change to the instrument, not a change to the models.

Strictly, no comparison in the program was statistically significant, including the promotion. The Wilson 95 percent half-width on a 70 percent baseline at 48 cases is roughly 13 points (AI Evals · Statistical methods). The margin we were trying to steer with was 4. We were reading noise and calling it progress.

Part one said the loop should be built to earn one thing: the confidence to know when your own ruler is lying to you. The loop earned it. It cost forty hours and one deleted promotion.

A note on the foundation, before the rest of it

One thing to establish before the rest of it, because it is the part that gets said wrong most often.

We moved from Qwen to OLMo 3.1 this month. Not because Qwen had failed as an inference model. It had not. We moved because OLMo provides a substantially complete open model-development foundation. The weights, the checkpoints from every stage, the training code and the post-training stack are all accessible (Ai2 · OLMo 3). That is what lets us inspect the model, modify it, evaluate it, reproduce a result, and operate the whole thing through infrastructure we govern.

The OLMo foundation is open, and it stays open. We do not claim any part of it as proprietary. What matters is not ownership of OLMo. It is what we were able to build and learn because the complete development pathway was available. None of the forty hours in this essay happens without that.

02 · Why we are doing any of this

Give the person the hour back

Before any of the rest of it, I should say plainly what this is for, because the word training makes people nervous.

SAVRN exists to help small, medium and enterprise businesses hit their goals. Those goals are not the same from one company to the next. Sometimes it is return on investment. Sometimes it is efficiency. Sometimes it is that a company wants to hand its best people the best tools available so they can spend the day on the one thing they are genuinely good at, which is thinking.

None of that is served by replacing anybody, and I want to be direct about it. The point of this work is not to remove a team member. The point is to remove the monotonous, wasteful steps in between the work. Nobody's job description says reply to an email to confirm you can attend a meeting. Nobody was hired to reformat an expense report. Those are time taxes. They should be automatic, and the person should get the hour back.

Improve the person, improve the organization, improve the bottom line. In that order.

Step 1

Improve the person

Give them back the hour the busywork was taking, and the tools to be better at the part of the business that is theirs.

Step 2

Improve the organization

Because that hour goes back into the work only a person can do. Judgment, relationships, the decision nobody wrote a process for.

Step 3

Improve the bottom line

Which is the result of the first two, not the starting point. Companies that run this backwards cut people and wonder why the work got worse.

That is what the technology is for. Every person in an organization should have everything available to them to be better at their part of it, and a system you control, built on a foundation you can actually see into, is how you aim it at your own business instead of at the average of everyone else's.

Which is why an essay about a bent measuring instrument matters more than it sounds like it should. If the number is wrong, you cannot tell whether any of this is working. Everything below is the work of making the number trustworthy enough to answer that question.

03 · The program on one line

Forty hours, in one strip

The whole program on one line makes the shape of it legible in a way the raw log does not.

Forty hours, twenty-four rounds, four harness fixes, one audit
Production pass rate across the program, with every event that touched it.
The forty-hour program on one timeline Production pass rate rises from 0.52 to 0.65 in four steps, each aligned to a harness fix at hours 4, 11, 18 and 27. Twenty-four training rounds run continuously beneath. The golden set doubles at hour six, Round 11 is promoted at hour twenty-four, and the instrument audit at hour thirty-eight reverses the ranking and the promotion. 0.50 0.60 0.70 0.52 0.65 Production pass rate Harness · Length rule Harness · Exemplar pin Harness · Memo contract Harness · Assess and repair 24 training rounds, one every ~90 minutes h0 h10 h20 h30 h40 Golden set 24 → 48 cases the small set stopped discriminating Promotion · Round 11 clears the 4-point margin on the old ruler Audit · ranking reverses the promotion no longer stands Where the movement came from Harness +4 pts held on audit Training ≤ 6 pts reversed on audit Golden set v2 baseline shift 24 → 48 cases
The copper line is the production number. The blue markers are harness changes, each a few hundred lines of deterministic code. The promotion at hour twenty-four is struck through because the audit at hour thirty-eight took it back.

The training lever ran continuously, twenty-four tick marks across the strip, one every ninety minutes on average. Four harness changes went in over the same window, each a few hundred lines of deterministic code. Two evaluation events sit at the ends. The golden set grew from 24 cases to 48 in the first six hours, because the smaller one had stopped telling recipes apart. The instrument audit ran in the last two.

The production number moved from 0.52 to 0.65 across the program. Four points of that came from the harness fixes, and those held when the audit came. At most six points came from training, on weights that had already shown a three-point range from nothing but a different data shuffle. The audit reversed the training attribution. The rest of the movement is the baseline shifting when the golden set doubled.

That is what a training program actually looks like when you instrument every layer. Not twenty-four fine-tunes running in isolation, but twenty-four fine-tunes running alongside a harness under active engineering and a measuring instrument being sharpened underneath both. The training lever is one of three, and in this program it was not the one that moved the number.

04 · The audit, in four defects

What the ruler was counting

The instrument had four problems. Any one of them was enough to explain the ratio of promotions to noise. Together they explain why twenty-four rounds produced exactly one promotion, and why that promotion did not survive being looked at.

The ruler that ran the programThe corrected ruler

Ordinals counted as invented facts

The pattern behind the hallucination check was catching list indices, row numbers and digits inside arrays. Ordering language like first, second and next quarter got flagged as fabrication because it did not appear in the source.

90 of 125 flags were structural

Ordinal exemption in the checker

Recognize ordering language as structure rather than as a claim that has to trace back to a source document.

35 real hallucinations remain

The wrong slot forced onto the answer

Five of the 48 workbook cases route through a coding sub-model in production that the general model never touches at evaluation time. Those five were unpassable as configured.

5 wrong votes on every candidate

Slot-tolerant rubric

Accept any answer inside the equivalence class the case implies, instead of one fixed key the candidate was never routed to produce.

5 cases restored

Too coarse to steer with

A 48-case pass-or-fail benchmark on a 70 percent baseline has a Wilson 95 percent half-width near 13 points. Each case is worth 2.08 points. The promotion margin was 4 points, which is two cases.

a real 3-point gain is invisible

Assertion-level resolution

Score the roughly 300 individual assertions inside the same 48 cases, and pair candidates on the same items instead of comparing independent totals.

±6 pt half-width, deltas readable

Correct arithmetic punished

The grader read 95% and 0.95 as disagreement. Same for 56.1% and 0.561. A candidate that returned the right number in the wrong form scored the same as one that returned the wrong number.

false positives on equivalent forms

Reconcile equivalent forms

Treat 95% and 0.95 as the same answer. A genuinely wrong 0.37 still gets flagged, because the check is on value and not on formatting.

calibrated

Two of the four fixes were free. They are data we already had, counted differently. Scoring the roughly 300 assertions inside the 48 cases instead of 48 binary outcomes sharpens resolution about fivefold, and pairing runs on the same cases rather than as independent totals removes the variance the two runs share (Wolfe · Applying statistics to LLM evaluations; AI Evals).

The third fix is the one that made the audit believable at all: a held-out set drawn from real shipped work, assembled before any of the fixes were applied. The instrument we ran the program with had been optimized against, quietly, for every round it scored. The new one had not.

05 · What the corrected instrument showed

The ranking reversed. The models did not change.

Four of the twenty-four rounds are worth returning to. Round 11 was the promoted one, a light LoRA on the recipe that had been working. Rounds 22, 23 and 24 were the three reinforcement-learning rounds, trained against a reward a program can verify rather than a preference model's opinion.

Round 22 was the lightest touch in the program. One sweep against a length-verified reward, with a KL divergence around 0.001, which means the policy barely moved off the base model at all. Round 23 was the same idea at full dose. Round 24 doubled the reward's length ceiling to answer a problem Round 22 had created, and produced 527-word outputs against a 264-word target.

Four candidates, before and after the audit
The same four checkpoints, scored twice. Nothing about the models changed between the panels.
Candidate scores on the old and corrected instruments On the pre-audit ruler: Round 11 at 0.74, Round 22 at 0.72, Round 24 at 0.68, Round 23 at 0.67. On the corrected ruler: Round 22 at 0.71, Round 11 at 0.69, Round 24 at 0.65, Round 23 at 0.62, with the base model at about 0.70 inside the same band. The order of the top two reverses. The ruler that ran the program The corrected ruler 0.60 0.65 0.70 0.75 0.74 R11 ★ LoRA · light 0.72 R22 RLVR · light 0.68 R24 RLVR · wide 0.67 R23 RLVR · full base model ≈ 0.70 0.71 R22 ★ RLVR · light 0.69 R11 LoRA · light 0.65 R24 RLVR · wide 0.62 R23 RLVR · full R11 drops below the base band On the old ruler R11 leads and gets promoted. On the corrected one R22 leads by two points, R11 sits second, and every candidate is inside the base model's confidence band. The promotion is retracted.
Both readings are real measurements of the same four checkpoints. The instrument is the only variable that changed between them.

Two things are true about that scoreboard at the same time. On the ruler that ran the program, Round 11 leads and looks like a promotion. On the corrected instrument, Round 22 leads by two points, Round 11 sits second, and every one of them is inside the base model's confidence band. Both readings are real. The only thing that changed between them is the ruler.

The Round 22 result is the one mechanically interesting thing in twenty-four rounds. The lightest possible reinforcement-learning round, from the smallest policy change, produced the best bare-model profile of the program, and every heavier version of the same idea did worse. That is a specific, testable claim about where to spend the next training lever. It is also the only claim from the training work that a corrected instrument still supports.

06 · The specification wall

Nobody had written down what finished means

The other half of the forty hours had nothing to do with the model.

For two full days, financial workbooks failed every case in every round under every recipe we tried. I wrote it down as a capability wall. The model cannot do workbooks. That was wrong.

Nobody had ever written down what a finished workbook is. The requirement existed in exactly one place, inside the grader, where the model could not read it. We wrote the definition down, wired it into the same check-and-repair loop that had already fixed the memo class, and workbooks went from zero to sixty percent in a single deploy. Same weights. Same model. The only thing that changed is that the standard now existed in writing.

Then we pointed the production model at real deliverables from the business. Investment theses, business cases, structuring memos, term sheets, diligence responses. Actual work, the kind we sell.

It scored zero on the first seven.

The cause was the same every time: length. Output ran 165 to 367 words against requirements of 398 to 700. This was not a truncation limit. The generation budget allowed roughly ten times that. Contract coverage across real deliverable types was nine of eighty-six, about ten percent. The work the business actually sells had no definition of finished, so nothing detected short output on those classes, and nothing repaired it.

The same wall, twice
Once inside the training program, once on the work the business actually sells.
The specification wall at two scales Left: workbooks sit at zero percent for three measurement points across two days, then jump to sixty percent the moment a written contract is deployed, with no model change. Right: the production model passed zero of the first seven real deliverables, only nine of eighty-six deliverable types had a contract, and output ran 165 to 367 words against a requirement of 398 to 700. Workbooks, on the scored bench Two days on the same golden set. 0% 20% 40% 60% 80% day 1 am day 1 pm day 2 am contract Contract deployed no model change Zero to sixty percent in one deploy Weights held constant across the entire step. The change was one written specification. Real deliverables, in production The same rule, on the work we sell, before contracts. First seven enterprise deliverables 0 of 7 passed Deliverable types with a written contract 9 of 86 · 10.5% before Sunday's six-contract deploy Length of output against the requirement actual 165 – 367 words required 398 – 700 Every one that failed, failed on length or a missing section.
Both events look like model failures. Both resolve without touching the model. The workbook version happened on day three and got fixed. The production version happened at hour thirty-nine and made the audit inevitable.

If you have ever handed work back to a person and said this is not what I asked for, you already know this problem. It is rarely that they could not do it. It is almost always that nobody wrote down what finished means.

What we were short of was specification, not capability. That is the load-bearing sentence of the whole program. Every hour I spent on the training lever before that sentence was true was an hour spent chasing a number that could not tell me what was wrong.

On Sunday morning, once the pattern was clear, we generalized it. Six enterprise deliverable classes each got a written contract: a minimum word floor, a minimum number of figures, and a required section list. Plus one rule that does more work than the other six combined. When a request names its own structure, that named structure becomes the contract.

Deliverable classMin. wordsMin. figuresSectionsApplies to
Investment thesisthe flagship deliverable60085investor-facing memos
Business casethe ROI narrative60065go or no-go decisions
Structuring memothe deal architecture50054complex transactions
Term sheetthe binding shape45064final offer documents
Due-diligence responsethe receiving side50044buyer and lender questions
Status reportthe lightweight cadence35034weekly project updates
specified_sections

When the request names its own structure, that named structure becomes the contract.

The first held-out measurement of that six-contract deploy is running as this publishes. Part three reports the result, whichever way it lands.

07 · The real case study

From model operator to model-development operator

The strategic asset in this program is not ownership of OLMo. It is the capability that OLMo's unusually complete open foundation let us build. That distinction is worth drawing out properly, because the two get collapsed constantly and they are not the same thing.

Open foundation

Ai2's OLMo 3, open and staying open
  • Model architecture
  • Weights
  • Checkpoints from every training stage
  • Training code
  • Post-training methods
  • Technical lineage
Published by Ai2 under permissive licenses. Not proprietary to us, and not claimed as ours.

SAVRN implementation

what we built on top of it
  • Private datasets
  • Post-training experiments
  • Evaluation framework
  • Completion contracts
  • Governed routing
  • Self-hosted, governed deployment
  • Audit controls
  • Operating knowledge
This is the asset. None of it ships with the base model, and none of it is inherited by anyone who downloads the same weights.

The result

what the two add up to
  • A SAVRN-controlled AI system built on OLMo
  • Not a proprietary model
  • Not a hosted copy of someone else's model
Open infrastructure converted SAVRN from a model operator into a model-development operator.
The foundation is open and stays open. The middle column is the asset, and it is the column a downloaded copy of the same weights does not come with.

That last line is the case study. Not the checkpoint, not the benchmark, not any single round in the twenty-four. Open infrastructure moved this company from operating a model to developing one, and those are different businesses with different capabilities.

A rented endpoint gives you inference. It does not give you a development pathway. Every hour described in this essay went into things a rented endpoint does not expose: what the grader is actually counting, how a candidate gets routed, what a finished deliverable is, whether the promotion margin is larger than the noise. You cannot audit an instrument you are not allowed to see.

It is also why the gains hold. The harness fixes, the contracts and the corrected instrument all attach to the implementation layer, not to the foundation. When a better open foundation arrives, and it will, every one of them moves with us.

08 · What forty hours bought, and what happens next

Rank the levers by what survived

The easy read of this program is that I spent $170 and forty hours and produced no working fine-tune. That read is wrong on two counts.

First, we produced a platform. The production number moved from 0.52 to 0.65 during the program, driven mostly by four deterministic harness changes that hold across every future model version and every future training round. That is not a fine-tune. It is a permanent capability, and it compounds. Every model we train from here runs through it.

Second, we produced a corrected measuring instrument, a characterized noise floor, a written specification layer, and one training result worth returning to. Those four things outlast any checkpoint. A promoted checkpoint gets discarded at the next base-model refresh. The instrument, the noise floor, the contracts and the Round 22 finding do not.

Rank the levers by cost per point that survived audit and the training lever finishes last. The harness lever cost engineering days and moved the number four points that held. The evaluation lever cost two hours and produced the audit that reversed our own promotion. The specification lever cost one written contract and moved a class of failures from zero to sixty percent in a single deploy. The training lever cost the most calendar time and the most money, and it produced nothing that survived being measured properly.

01

Build the corrected instrument before the next round runs

Assertion-level scoring on the same 48 cases, paired testing between candidates, and a held-out set drawn from real shipped work before any fix is applied. Two days of work. It replaces a ruler with 13-point resolution with one at 6-point resolution, which is the difference between an instrument that can see a real training gain and one that cannot.

two days · no GPU
02

Finish the specification layer before considering another fine-tune

The gap is not the twenty deliverable types that already have contracts. It is the sixty-six that do not. A written contract per class, wired into check-and-repair, is the harness lever pointed at every remaining zero. It compounds across every future model version, including a vendor swap.

engineering days · no GPU
03

Queue Round 22 for a second look, on its own

Light-touch reinforcement learning against a symmetric length reward, penalizing both the ceiling and the floor rather than the floor alone, which is what Round 24 had to learn the hard way. One training run against a much sharper instrument. If it moves, we will see it. If it does not, we will know.

one run · the only GPU spend

None of those three is a fine-tune. Two of the three cost nothing in GPU hours. All three compound.

09 · The read

The loop was willing to unpromote itself

Twenty-four training rounds in forty hours is not a story about a fine-tune. It is a story about a loop, run for real, run long enough to falsify one of its own decisions. The loop diagnosed each failure at the layer responsible. The loop was willing to unpromote itself when the instrument turned out to be wrong. It produced a platform that got measurably better on real work, an instrument that can see whether the next round actually moved anything, and a shorter list of things worth trying next.

That is what an open foundation is for. A rented endpoint gives you inference and nothing to inspect. An open foundation, operated with your own data, pipeline, infrastructure, harness and evaluation, gives you an engineering surface that gets stronger every quarter. It also gives you the evidence, and the discipline, to conclude that your best trained model is indistinguishable from the one you downloaded, and to act on that instead of shipping the promotion anyway.

Forty hours. One GPU. Zero surviving promotions. One better platform, one sharper instrument, one written specification layer, and one training result worth going back to. That is what the loop is for. The weights are one output of it.

And the reason to run it at all is the one I started with. Somewhere in this company there is a person who spent part of today on something a machine should have done. Getting that hour back to them is the whole job. The instrument work is what tells us whether we actually did it.

Part three picks up at hour fifty-five

Part three picks up at hour fifty-five, and I will tell you now that the results are better. The corrected instrument is in. The contracts are in. What I could not tell you at hour forty, I can start to tell you at hour fifty-five, and it will be measured on a ruler I trust.

If you are running an agent program or a tuning program inside a business, the question worth asking this week is not which model. It is whether you can prove your scoreboard is telling you the truth, and whether anyone has written down what finished means for the work you sell.

Start with a working session or see the platform this runs on →

Want the next one?

When a new piece publishes on SAVRN Insights, you get one email with what it covers and a link to read it. No digests, no promotions.

One email when it publishes. Unsubscribe in one click. Privacy

You're on the list. You'll hear from us the next time something publishes.
10 · Questions

Frequently asked questions

What actually happens during a training round?

You rent a GPU by the hour. You prepare a corpus, pick a recipe and a learning rate, and start a run. The machine works for roughly ninety minutes while you do something else. Then you convert the result, serve it on a side lane, and score it against a fixed set of test cases you wrote yourself. You read one number and decide whether it beat the model already in production. Twenty-four times over forty hours, that was the whole job.

What does it cost?

About $170 of GPU time for this program, on one rented H200 for forty hours (DigitalOcean GPU Droplet pricing). The expensive part is not the machine. It is the calendar time, the corpus curation and the engineer attention, and the fact that most rounds tell you nothing.

What is the instrument, and how was it wrong?

The instrument is the golden set plus the checks that grade it: 48 real work requests, each with rules a program can verify. It had four defects. It read ordering words like first and second as invented facts. It forced five workbook cases onto a routing slot the candidate never sees. It scored whole cases pass or fail, which is too coarse to detect a real gain. And it read 95% and 0.95 as different answers.

Why does 48 test cases not give a reliable answer?

Because of how confidence intervals work at that sample size. On a 70 percent baseline with 48 cases, the Wilson 95 percent half-width is roughly 13 points, and each case is worth 2.08 points (AI Evals). We were promoting on a 4-point margin, which is two cases. A genuine three-point improvement and a random three-point flip look identical.

How do you fix the resolution without writing more test cases?

Count differently. There are roughly 300 individual assertions inside those same 48 cases, and scoring assertions instead of whole cases sharpens the resolution about fivefold. Pairing two candidates on the same items, instead of comparing independent totals, removes the variance they share (Wolfe on statistics for LLM evals. Both fixes use data we already had.

You un-promoted your own model. Why publish that?

Because it is the most useful thing that happened in the forty hours. A loop that cannot reverse its own decision is not a measurement system, it is a press release. The alternative was to ship a checkpoint I could not distinguish from the base model and let a customer find out.

What was the specification wall?

Financial workbooks failed every case for two days under every recipe, and I recorded it as a capability limit. It was not. Nobody had written down what a finished workbook is. The requirement lived only inside the grader, where the model could not read it. One written contract, wired into check-and-repair, moved the class from zero to sixty percent with no model change.

Why did real deliverables score zero?

Length, every time. Output ran 165 to 367 words against requirements of 398 to 700, and the generation budget allowed roughly ten times that, so it was not truncation. Only nine of eighty-six deliverable types had a contract at all. Nothing detected short output on the rest, so nothing repaired it.

Why OLMo 3 rather than a commercial model?

Because OLMo publishes a substantially complete model-development foundation: weights, checkpoints from every stage, training code and the post-training stack (Ai2's OLMo 3 release). That foundation is open and stays open, and we do not claim it as ours. What is ours is what we built on it: the datasets, the evaluation framework, the contracts, the routing and the operating knowledge. A rented endpoint gives you inference without a development pathway, so none of the work in this essay would have been possible on one.

Does any of this replace people?

No, and that is not what it is for. It removes the monotonous steps between the work: confirming a meeting by email, reformatting an expense report, chasing a document. Those are time taxes. The goal is to give a person their hour back so they spend the day on the thing they are actually good at.

11 · Sources

Every source behind this essay

4 outside sources plus the series. Every number is from our own training log, and every figure renders from one table.

We publish the receiptsEvery source behind this essay, grouped by topic, on one page

Method citations for LoRA, DPO, RLVR, GRPO and the seed-variance literature are in part one's sources page rather than repeated here. Every number in this essay comes from SAVRN's own training log for hours 0 to 40, August 21 to 23, 2026, and every figure on this page renders from a single table so the page cannot disagree with itself. The four defects, the corrected scores and the contract set are ours.

Read next