Skip to content

Two Training Rounds

Status: demonstrated — this recipe is what the synthetic prototype actually ran.

Every PRISM model is built in two rounds: a primary round that turns a general base model into a specialist that can do nothing except continue patient timelines, and a secondary round that installs a disposition on top of that specialist — fire on the precursor pattern, stay quiet otherwise, surface the test early. The rounds do different jobs, and the way the second one's recipe was found is the most instructive engineering result of the 2026 synthetic proof of concept.

Primary training: the specialist factory

Primary training is full-parameter supervised fine-tuning, one run per pool, on that pool's complete patient histories. It is better understood as continued pre-training than as fine-tuning in the chatbot sense: no instructions, no prompt–response pairs, no templates — just the raw six-column tables and next-token prediction over all of them (a ~96k-token training context in the prototype round).

The intent is over-specialization. By the end of the primary round the model has lost general conversation, question answering, everything except continuing the table — and that is the goal, not a side effect. Catastrophic forgetting, normally the failure mode fine-tuning guards against, is here the manufacturing step: every parameter is spent on the one task the system needs, and none is left for behaviors that would only add noise. Sequence completion explains why the task is deliberately this narrow.

What each specialist absorbs is its own pool's data-language: how encounters chain, which codes travel together, how a timeline paces itself as a patient ages. Because each pool was generated differently on purpose and no data, weights, or adapters ever cross pools, the five primaries are genuinely independent models of five different populations — the independence that makes consensus mean something.

One more property matters: the primaries are fluent but not screeners. Run without their steering adapters, the prototype's base models continued timelines plausibly and emitted the TEST code almost never — 7 fires in 1,200 runs (~0.6%). That near-silence is a feature, and it is what lets the adapter-on/off comparison attribute everything the finished system does to the second round rather than to base-model fluency.

Secondary training: the steering round

Secondary training produces a small LoRA adapter per pool, trained on that pool's own primary and never merged or shared across pools — independence holds through both rounds. Where the primary installs competence, the secondary installs disposition: continue a timeline containing the precursor pattern with the screening TEST and early treatment; continue an ordinary timeline ordinarily; prefer surfacing the TEST earlier than the source timeline did.

Its training material is the three-pattern data: for each arc, a prompt and a preferred continuation. GOOD teaches fire-then-treat; NOPE teaches staying quiet; BAD and FAKE teach grafting an early TEST over the drift toward late-stage care, with FAKE asking for that same behavior from a cut roughly twenty rows earlier. The recipe that worked is plain SFT on those preferred continuations alone — the chosen rows, with the rejected alternatives unused. This round's configuration (2 epochs, LoRA r32/α64, lr 3e-5, ~64k context) is recorded in training runs; at inference the adapter is applied per request at full strength.

The simplicity of that recipe was not the plan. It was the surprise.

The honest story: preference training was the plan, and it failed

The design assumption, held right up through the prototype's build, was that the steering round would be preference training. The data views literally produce chosen/rejected pairs, and "push the model toward one continuation over another" sounds exactly like what preference objectives are for. The secondary was accordingly built as a blend of two preference losses (sppo_hard + bco) over those pairs.

It failed in a precise and instructive way: it ranked, but it would not emit. Under teacher forcing, the trained model plainly "knew" the TEST continuation — the preferred sequences scored excellent likelihoods. But generating freely, it never wrote them; it kept continuing the mundane trajectory instead. Making the chosen continuation score better than the rejected one is not the same as making it the thing the model actually produces. Worse, when blended with an SFT term, the preference gradient drowned the SFT gradient rather than complementing it.

Pure SFT on the chosen rows alone — both preference losses dropped, the rejected data discarded — worked near-perfectly. No explicit contrast was needed, because the chosen continuations already encode the conditional behavior: GOOD, BAD, and FAKE chosens fire the TEST, NOPE chosens stay quiet, so plain likelihood training on them yields fire-on-signal and silence-on-control by itself. The adapter-on/off and strip-ablation evidence shows how completely this one round accounts for the system's behavior.

The sharpest part of the story is what the dashboards said. The winning adapter's logged training metrics — the preference-style accuracy and margin still computed during the run — were inverted: they looked worse than runs that produced useless adapters. Anyone gating on train metrics would have discarded the adapter that worked and shipped one that ranked beautifully and never fired. Hence the rule the prototype paid for and the whole project now runs on: gate on generation, never on train metrics. The only evaluation that counts is whether the model, generating freely under the forced-continuation regime, actually emits the test — which is also why evaluation is built entirely around live generation across pools.

An honest boundary on the lesson: this is one task, one dataset, one prototype — it does not indict preference methods in general. What it shows is narrower and more useful: for this task the obvious method was the wrong one, the simpler method was the right one, and only generation-based evaluation could tell them apart.

The two rounds side by side

aspectprimary roundsecondary round
what trainsevery parameter of the base modela small LoRA adapter on the pool's own primary
materialthe pool's complete patient historiesthe pool's preferred (chosen) continuations only
objectivenext-token SFT — continued pre-trainingnext-token SFT on the preferred continuations
producesa specialist that can only continue the tablethe disposition: fire on signal, stay quiet otherwise, surface early
crosses poolsnevernever

See also

  • Training runs — base model, vocabulary reduction, and both rounds as actually configured
  • Results — the adapter-on/off baseline and strip ablation that isolate the steering round's effect
  • Three-pattern learning — the arcs and prompt/chosen/rejected material the secondary trains on
  • Evaluation without a holdout — the generation-based, cross-pool frame the gating rule feeds into