Version ledger

Markdown: versions.md · Data: versions.json

LoRA fine-tunes of unsloth/gemma-3-4b-it as a closed-set command router (one JSON tool call per utterance), trained and served on 8 GB NVIDIA consumer cards, 13-25 Sep 2026.

Version ledger

One row per trained model or variant. Test sets differ between eras, so compare accuracy only within one test set. Each version links to its full record below.

VersionHeadline resultStatusRankCorpus examplesEpochsAlpharsLoRADropoutPeak VRAM (MB)TrainedAliasOllama tag
v180.4% on 550 ()16152316no049262026-09-13 to 2026-09-14gemma3-4b-router-finetuned
v289.6% on 550 ()16490316no05053ended 2026-09-14gemma3-4b-router-v2
v389.8% on 790 ()16696316no05040ended 2026-09-14gemma3-4b-router-v3
v482.9% on 865 ()1659816no04889ended 2026-09-15gemma3-4b-router-v4
v589.2% on 865 ()deployed unverified16757316no05117ended 2026-09-15marvin-v1.0gemma3-4b-router-v5
v5-q486.1% on 865 ()rejectedgemma3-4b-router-v5-q4
v6-wide93.1% on 865 ()unverified64757364no05796ended 2026-09-17gemma3-4b-router-v6-wide
v794.3% on 865 ()deployed unverified1127573112no06647ended 2026-09-17marvin-v1.1gemma3-4b-router-v7-r112
v888.8% on 1,036 raw ()11210503112no06643ended 2026-09-18gemma3-4b-router-v8-r112
v9-step17586.6% on 1,021 runnable ()rejected1121080112no0gemma3-4b-router-v9-r112-ckpt175
v993.0% on 1,021 runnable ()deployed11210803112no06643ended 2026-09-19marvin-v1.2gemma3-4b-router-v9-r112
v10-r6491.6% on 1,125, harness fixed ()641080364no05767ended 2026-09-20gemma3-4b-router-v10-r64
v1196.4% on 1,125, harness fixed ()11211673112no066482026-09-20 to 2026-09-21marvin-v1.3gemma3-4b-router-v11-r112
v12-e295.6% on 1,131 ()11211672112no06648ended 2026-09-21gemma3-4b-router-v12-r112-e2
v11+grammar95.7% on 1,125 ()gemma3-4b-router-v11-r112
v11-avg96.9% on 1,131 ()gemma3-4b-router-v11-avg
v13-rslora-a112 (killed)112112yes0
v1397.5% on 1,131 ()rejected1121172332yes06653ended 2026-09-22gemma3-4b-router-v13-r112-rslora-a32
v13-avg97.2% on 1,131 ()gemma3-4b-router-v13-avg
v13-ck22583.8% on 1,131 ()0gemma3-4b-router-v13-ck225
v1487.0% on 1,131 ()1121172332yes0.1gemma3-4b-router-v14-ck225
v1596.8% on 1,131 ()rejected961172330yes0.16629ended 2026-09-23gemma3-4b-router-v15-r96-drop10
v1690.2% on 1,148 ()1128733112no066532026-09-23 to 2026-09-24gemma3-4b-router-v16-disjoint
v1795.2% on 1,275 ()deployed11211893112no066582026-09-24 to 2026-09-25marvin-v1.3gemma3-4b-router-v17-full

Test-set eras

The test set grew over the program. A number from one era does not compare with a number from another.

CasesNoteRunnableKindHeld outflagsMeasured on
550535 regression + 15 hard cases
790775 regression + 15 hard; 240 new cases weighted toward known weak capabilities
865850 regression + 15 hard
1036v8 bake; 60 cases whose capability is disabled on the host were counted as failures in the raw summary976inferred
1081disabled-capability cases skipped for every model from here on1021
1125first set scored with the harness channel fix (context cases routed on their own channel)
11311,125 + six two-turn-back context cases; 1,021 train-flagged + 110 held-out
1191all-caps run: 1,131 plus the 60 flag-gated desktop/finance cases enabled
1148v16 bake with the disjoint-split manifest; 749 train-flagged + 399 held-out
1275adds 127 never-seen cases (86 adversarial guards, 41 session-capability)
174guard set48
181guard set
267guard set, expanded with 86 adversarial guards

Definitions

Accuracy definition
passed / runnable cases. A case passes when the router returns the asserted capability and arguments, and none of the case's forbidden capabilities.
Held out definition
cases with no training label in the corpus the model was trained on. The held-out slice changed size as the case file grew, so compare held-out numbers only within one test-set era.
Fair slice definition
cases carrying no train key at all, which neither compared model ever saw (used for v16 and v17).
Guard definition
must-not-fire cases: utterances that must NOT route to a named capability (negations, quoted or pasted content, vague phrasing). Counts only; case text is excluded.
Speed definition
mean seconds per case through the production routing prompt (~5.6k tokens), model fully on GPU unless noted.
Dates
UTC. measured_on is the file timestamp of the result, or the date the program notes records.
Shared recipe
see recipe.json; per-version config below lists only what differs or what the training log confirms.

Per-version records

v1

Ollama tag
gemma3-4b-router-finetuned
base model
unsloth/gemma-3-4b-it
Corpus examples
152
trained
Start: 2026-09-13; End: 2026-09-14T00:26Z
what changed
First LoRA, on 152 curated examples mostly mined from the untuned router's own logged decisions plus a first batch of hand-authored gold cases.
outcome
Regressed: 4.9 pp below the untuned 12B baseline (85.3%). Not caught until v2's bake, because v1 was never evaluated after training.

Config

Rank
16
Alpha
16
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
57
Lr
0.0002
Measured on

Training

Train loss
0.3685
Peak VRAM MB
4926
Runtime s
4616
Measured on

Results

Test setPassedAccuracyWall clock sMeasured on
5504420.80361081.2

v2

Ollama tag
gemma3-4b-router-v2
base model
unsloth/gemma-3-4b-it
Corpus examples
490
trained
End: 2026-09-14T07:08Z
what changed
Corpus tripled with hand-authored gold cases weighted toward vague and ambiguous phrasing and full per-capability coverage.
outcome
First fine-tune to beat the untuned baseline: +4.3 pp over gemma4:12b-it-qat on the same 550 cases.

Config

Rank
16
Alpha
16
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
186
Lr
0.0002
Measured on

Training

Final segment train loss
0.0274
Peak VRAM MB
5053
Relaunches
9
Note
train_loss covers only the last resumed segment, not the run
Measured on

Results

Test setPassedAccuracyWall clock sCapabilityTotalFailure shapeMeasured on
5504930.89641028.8
550270.562clarify48
55012 of 57 misses picked a forbidden capability (21%), vs 6/81 for the untuned 12B and 8/108 for v1

v3

Ollama tag
gemma3-4b-router-v3
base model
unsloth/gemma-3-4b-it
Corpus examples
696
trained
End: 2026-09-14T23:57Z
what changed
240 new gold cases for the capabilities v2 missed most; full corpus, fresh from base.
outcome
Held: same score as v2 on a set 240 cases harder. Not comparable to v2's number (different test set).

Config

Rank
16
Alpha
16
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
261
Lr
0.0002
Measured on

Training

Train loss
0.1502
Peak VRAM MB
5040
Runtime s
21162
Relaunches
0
Measured on

Results

Test setPassedAccuracyWall clock sCapabilityMeasured on
7907090.89751056.8
7900.604clarify

v4

Ollama tag
gemma3-4b-router-v4
base model
v3's adapter (continued, not fresh from base)
Corpus examples
59
trained
End: 2026-09-15T02:32Z; Conflict: The program notes and the training script's docstring date the run 2026-09-16; file timestamps (train log 09-15 02:32, bake summary 09-15 02:54) say 2026-09-15. Trust the file timestamps.
what changed
Incremental patch: only the 59 new or corrected examples, 8 epochs, continued from v3's adapter.
outcome
Catastrophic forgetting. Capabilities the patch never touched collapsed to 25-56%. Never deployed.

Config

Rank
16
Alpha
16
RsLoRA
no
Dropout
0
Epochs
8
Optimizer steps
64
Lr
0.0002
Continued from
v3 adapter
Measured on

Training

Train loss
0.0522
Peak VRAM MB
4889
Runtime s
4778
Measured on

Results

Test setPassedAccuracyWall clock sTotalVs v3Per capabilityBefore v3Measured on
8657170.82891156.9
the 790 cases v3 was scored on6510.8241790-0.0734
790 subsetRun agent: 0.25; Resume agent: 0.417; Dispatch code: 0.524; Calendar availability: 0.562; Clarify: 0.525; Gate reject: 1.0; Dispatch answer: 0.931Run agent: ~1.0; Resume agent: 0.86-1.0; Dispatch code: 0.91-1.0; Calendar availability: 1.0; Clarify: 0.604

v5

alias
marvin-v1.0
Ollama tag
gemma3-4b-router-v5
base model
unsloth/gemma-3-4b-it
Corpus examples
757
trained
End: 2026-09-15T11:32Z
what changed
v4's 59 examples mixed into the full corpus and retrained fresh from base.
outcome
Repaired v4's damage (run_agent, resume_agent, dispatch_code, calendar_availability all back to 100% on the 790 subset). Deployed 15 Sep.

Config

Rank
16
Alpha
16
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
285
Lr
0.0002
Measured on

Training

Train loss
0.0729
Peak VRAM MB
5117
Kills by low memory monitor
4
Note
train_loss and runtime cover the last resumed segment
Measured on

Results

Test setPassedAccuracyWall clock sS per caseQuantTotalNoteHeld out accuracyflagsMeasured on
8657720.89251141.5
8657730.89361.506Q8_0
8657700.89021.333
old 790 subset7090.8975790identical to v3 to the case
75 cases new since v3630.8475
865ledger-only. Recomputing from the bake progress file with today's train flags gives a different split (flags changed after 09-18), so this could not be reproduced.0.849unverified

v5-q4

Ollama tag
gemma3-4b-router-v5-q4
base model
same merged weights as v5
what changed
Quantization only.
outcome
Rejected: -3.2 pp for ~15% speed. Q8_0 stays.

Config

Quant
Q4_0
GGUF size GB
2.37
Measured on

Results

Test setPassedAccuracyS per caseDelta vs q8Speed ratio vs q8Measured on
8657450.86131.278-0.03230.849

v6-wide

Ollama tag
gemma3-4b-router-v6-wide
base model
unsloth/gemma-3-4b-it
Corpus examples
757
trained
End: 2026-09-17T01:46Z
what changed
Rank 16 to 64 (alpha kept equal to rank). Same 757 examples, same recipe, fresh from base.
outcome
+4.0 pp over v5 from rank alone. The two passes a day apart (93.1% / 93.9%) set the noise floor for this era.

Config

Rank
64
Alpha
64
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
285
Lr
0.0002
Measured on

Training

Train loss
0.1227
Peak VRAM MB
5796
Runtime s
23944
Measured on

Results

Test setPassedAccuracyS per caseCapabilityAccuracy beforeAccuracy afterNHeld out accuracyflagsMeasured on
8658050.93061.223
8658120.93871.25
865clarify0.5210.75594
8650.855, 0.882unverified

v7

alias
marvin-v1.1
Ollama tag
gemma3-4b-router-v7-r112
base model
unsloth/gemma-3-4b-it
Corpus examples
757
trained
End: 2026-09-17T23:06Z
what changed
Rank 64 to 112, the highest rank that fit on the 8 GB card.
outcome
+0.5 pp over v6-wide, inside v6-wide's own day-to-day spread. Shipped 18 Sep, replaced by v9 on 19 Sep.

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
285
Lr
0.0002
Measured on

Training

Train loss
0.1251
Peak VRAM MB
6647
Runtime s
24217
Measured on

Results

Test setPassedAccuracyS per case cleanS per case rawNotePer capabilityHeld out passedHeld out totalHeld out accuracyS per caseTrain flagged accuracyflagsMeasured on
8658160.94341.261.707raw speed polluted: first 253 cases ran split CPU/GPU
865v6-wide then v7; 27 cases fixed, 23 brokenClarify: 0.745, 0.851; Context setup cases n31: 0.968, 0.871
1,021 runnable9330.913876910.83521.269
1,036 raw (v8 era)9060.874569901.427
108-case held-out slice, harness fixed920.8519
8650.8710.963unverified

v8

Ollama tag
gemma3-4b-router-v8-r112
base model
unsloth/gemma-3-4b-it
Corpus examples
1050
trained
End: 2026-09-18T11:19Z
what changed
Enriched corpus: 126 negative-guard cases given targets, setup context rendered into prompts (27 context cases had trained context-free), clarify-chain turns exported, 171 gold cases including the 9 capabilities that had zero examples.
outcome
Mixed, not deployed. Guards rose 19-50 pp, but four new clarify labels on bare confirmation words contradicted older gold and dropped gate_approve from 100% to 70%.

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
396
Lr
0.0002
Measured on

Training

Train loss
0.1117
Peak VRAM MB
6643
Runtime s
34881
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalHeld out accuracyS per caseConflictPer capabilityGuard families gain ppflagsMeasured on
1,036 raw9200.88871900.78891.249
976 runnable0.9430.91The raw summary scores 88.8% on 1,036 because 60 disabled-capability cases count as failures. 920/976 = 94.3% matches the program notes, so the program notes number is the raw one with those 60 removed. The held-out 91.0% would need ~12 of the 60 to be held-out (71/78); not verifiable from the summary.inferred
976 runnableGate approve: 1.0, 0.719 to 50

v9-step175

Ollama tag
gemma3-4b-router-v9-r112-ckpt175
base model
unsloth/gemma-3-4b-it
Corpus examples
1080
what changed
Same run as v9, earlier checkpoint.
outcome
Rejected. Tied the final checkpoint on held-out, lost 6.5 pp overall. Eval loss on partial-argument targets does not select for accuracy.

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Checkpoint step
175
Of steps
405
Selected by
lowest held-out eval loss (0.1306)
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalHeld out accuracyS per caseMeasured on
1,021 runnable8840.865879910.86811.31
108-case held-out slice, harness fixed960.8889

v9

alias
marvin-v1.2
Ollama tag
gemma3-4b-router-v9-r112
base model
unsloth/gemma-3-4b-it
Corpus examples
1080
Eval examples
55
trained
End: 2026-09-19T04:41Z
what changed
v8's corpus with the conflicting labels removed and 35 counterweight cases added; held-out eval loss logged every 25 steps, every checkpoint kept.
outcome
Deployed 19 Sep. First fine-tune to beat the untuned 12B on held-out once the harness was fixed (91.7% vs 88.9%).

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
405
Lr
0.0002
Measured on

Training

Train loss
0.1115
Peak VRAM MB
6643
Runtime s
38218
Eval loss best
Step: 175; Loss: 0.1306
Eval loss final
0.1861
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalHeld out accuracyS per casePassed per runAccuracy per runMean accuracySpread ppHeld out passed per runHeld out breachesPer capabilityFixed vs v7Broke vs v7Measured on
1,021 runnable9500.930579910.86811.303
1,125, harness fixed10500.9333991081.264
1,125, harness fixed10470.9307991081.34
1,125, harness fixed10430.92711001081.332
1,191 all-caps x31221098, 1112, 11120.9219, 0.9337, 0.93370.92981.18111, 112, 111
174 guards1671
1,021 runnableGate approve: 0.94; Dispatch answer: 0.59; Guards: 0.96-1.04528

v10-r64

Ollama tag
gemma3-4b-router-v10-r64
base model
unsloth/gemma-3-4b-it
Corpus examples
1080
trained
End: 2026-09-20T06:03Z
what changed
v9's exact data and recipe at rank 64. Rank the only variable.
outcome
-1.4 pp vs v9 at rank 112 on the same data; clarify 86% to 73%. Rank 112 stays.

Config

Rank
64
Alpha
64
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
405
Lr
0.0002
Measured on

Training

Train loss
0.1103
Peak VRAM MB
5767
Runtime s
37684
Eval loss best
Step: 125; Loss: 0.1372
Eval loss final
0.1839
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalHeld out accuracyS per caseCapabilityRank112 same dataMeasured on
1,125, harness fixed10310.9164981080.90741.224
1,125, harness fixed0.73clarify0.86

v11

alias
marvin-v1.3 (25 Sep 06:42 to 08:10 UTC, then re-pointed to v17)
Ollama tag
gemma3-4b-router-v11-r112
base model
unsloth/gemma-3-4b-it
Corpus examples
1167
Eval examples
72
trained
Start: 2026-09-20T13:27Z; End: 2026-09-21T01:18Z
what changed
Corpus 1,167: new compound and correct_last capabilities, 121 context cases, clarify chains, 40 dispatch_answer positives.
outcome
Best and most stable accuracy of the program. Won the accuracy rule against six challengers (v12, v13, v15, v16, v17 and both averages). Released as marvin-v1.3, then replaced the same morning by v17 on guard behaviour.

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
438
Lr
0.0002
Measured on

Training

Train loss
0.1073
Peak VRAM MB
6648
Runtime s
42633
Eval loss best
Step: 75; Loss: 0.2727
Eval loss final
0.3997
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalS per casePassesAccuracy rangeTrain flagged accuracyHeld out accuracyPassed per runMean accuracySpread ppHeld out per runFair sliceHeld out breachesBreach categories in rechecksPer capability changesNoteLowest capabilitiesMeasured on
1,125, harness fixed10840.96361041081.245
1,131(Passed: 1090, Held out: 108/110; measured on ); (Passed: 1090, Held out: 108/110; measured on ); (Passed: 1091, Held out: 108/110; measured on ); (Passed: 1090, Held out: 108/110; measured on ); (Passed: 1090, Held out: 107/110; measured on )0.9637, 0.96460.96180.9818
1,191 all-caps x31145, 1144, 11450.96110.09117/122 each
1,148 (v16 manifest)11010.95913793991.194
82 cases held out from both v11 and v160.963
317 cases v11 trained on and v16 did not0.946
1,275 expanded12120.95064905261.197
1,275 (v17 bake)12110.94982222371.18793/100
174 guards1691
181 guards1721
267 guards(Passed: 250, Held out breaches: 5; measured on ); (Passed: 247, Held out breaches: 4; measured on ); (Passed: 250, Held out breaches: 5; measured on ); (Passed: 250, Held out breaches: 5; measured on ); (Passed: 250, Held out breaches: 5; measured on )3 of 5 held-out breaches involve pasted or quoted content; 1 vague phrasing; 1 session-capability
1,125-1,131Compound: 0.11, 0.89; Correct last: 0.0, 1.0; Gate reject: 0.88, 0.98; Guard:open folder: 1.0, 0.88vs marvin-v1.2; open_folder guard n=8
10 pooled passesGate approve: Accuracy: 0.766, Ci: 0.719, 0.807, Cases: 35; Clarify: Accuracy: 0.827, Ci: 0.801, 0.849, Cases: 98; Explain issue: Accuracy: 0.855, Cases: 11; Compound: Accuracy: 0.906, Cases: 18

v12-e2

Ollama tag
gemma3-4b-router-v12-r112-e2
base model
unsloth/gemma-3-4b-it
Corpus examples
1167
trained
End: 2026-09-21T14:55Z
what changed
v11's exact data and recipe at 2 epochs. Epochs the only variable.
outcome
-0.8 pp and -4 held-out cases vs v11, mostly clarify (wrong answers went to converse). Lowest final eval loss of any run, and still worse. Three epochs stays.

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Epochs
2
Optimizer steps
292
Lr
0.0002
Measured on

Training

Train loss
0.1417
Peak VRAM MB
6648
Runtime s
28440
Eval loss best
Step: 125; Loss: 0.2589
Eval loss final
0.2934
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalS per caseBroke vs v11Fixed vs v11Measured on
1,13110810.95581041101.2362617

v11+grammar

Ollama tag
gemma3-4b-router-v11-r112 (same weights)
what changed
Decoding only.
outcome
+0.1 pp once the enum was correct. Turned on in production with the 25 Sep release.

Config

Change
Ollama structured output: JSON schema with a capability enum enforced at decode time
Measured on

Results

AttemptTest setPassedAccuracyHeld out passedHeld out totalS per caseNoteUnparseable outputsBrokeFixedMeasured on
first (enum missing a router-hidden capability)1,12510770.95731031081.28710 cases broke, 8 of them the hidden capability forced to clarify
fixed enum1,13110920.96551081101.2663, 113

v11-avg

Ollama tag
gemma3-4b-router-v11-avg
what changed
No training; weight averaging only.
outcome
Noise: +0.4 pp on the first bake, +0.0 on the second; held-out identical both times.

Config

Method
exact mean of v11 checkpoints 300, 325, 350, 375, 400, 425, 438 by concatenating LoRA A and B along the rank axis (r = 7 x 112, alpha unchanged)
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalS per caseNoteMeasured on
1,13110960.96911081101.235
1,13110900.96371081103.615speed contention-affected

v13-rslora-a112 (killed)

what changed
rsLoRA with alpha left equal to rank.
outcome
Killed early. Eval loss flatlined; scale 10.6 is too hot at lr 2e-4.

Config

Rank
112
Alpha
112
RsLoRA
yes
Effective scale
10.6
Dropout
0
Lr
0.0002
Measured on

Training

Eval loss step25
0.5734
Eval loss step50
0.577
V11 eval loss same steps
0.35, 0.33
Train loss peak
3.85
Measured on

v13

Ollama tag
gemma3-4b-router-v13-r112-rslora-a32
base model
unsloth/gemma-3-4b-it
Corpus examples
1172
Eval examples
74
trained
End: 2026-09-22T06:35Z
what changed
rsLoRA at alpha 32 on the 21 Sep corpus (1,172 examples: 6 new two-turn-back context cases, 2 label fixes, 18 conflicts excluded).
outcome
Rejected. Highest overall number of the program, but every gained case was train-flagged and it lost held-out safety guards v11 passes.

Config

Rank
112
Alpha
32
RsLoRA
yes
Effective scale
3.02
Dropout
0
Epochs
3
Optimizer steps
441
Lr
0.0002
Measured on

Training

Train loss
0.1246
Peak VRAM MB
6653
Runtime s
42946
Eval loss best
Step: 100; Loss: 0.2519
Eval loss final
0.3497
Measured on

Results

Test setPassedAccuracyTrain flagged accuracyHeld out passedHeld out totalS per caseFixed vs v11Broke vs v11GainsUnparseable outputsHeld out breachesBreach categoriesMeasured on
1,13111030.97520.97941031101.238
1,13111040.9761103110
1,1312916Gate approve: 9; Clarify: 9; Dispatch answer: 33, 1
174 guards16832 of 3 involve pasted or quoted content; 1 is an argument confusion between two knowledge capabilities

v13-avg

Ollama tag
gemma3-4b-router-v13-avg
what changed
No training; weight averaging only.
outcome
-0.4 pp vs v13 with one more held-out miss. Did not recover the guard losses.

Config

Method
exact checkpoint mean, with B scaled by a further 1/sqrt(n) because rsLoRA scales by alpha/sqrt(r)
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalMeasured on
1,13110990.9717102110

v13-ck225

Ollama tag
gemma3-4b-router-v13-ck225
what changed
Mid-run checkpoint.
outcome
Only the delta to v14-ck225 means anything; absolute scores are for a half-trained model.

Config

Checkpoint step
225
Of steps
441
Dropout
0
Note
about 1.5 epochs; control arm of the dropout A/B
Measured on

Results

Test setPassedAccuracyTrain flagged accuracyHeld out passedHeld out totalHeld out breachesMeasured on
1,1319480.83820.839491110
174 guards14810

v14

Ollama tag
gemma3-4b-router-v14-ck225 (only the step-225 checkpoint was deployed)
base model
unsloth/gemma-3-4b-it
Corpus examples
1172
trained
Attempts: 2026-09-22T20:16Z, 2026-09-23T01:23Z, 2026-09-23T03:06Z
what changed
v13's recipe plus LoRA dropout 0.1.
outcome
Would not fit at rank 112. At equal steps dropout added 3.2 pp, all on train-flagged cases, and widened the train-to-held-out gap from 1.2 to 6.8 pp. Guards improved 148 to 157.

Config

Rank
112
Alpha
32
RsLoRA
yes
Dropout
0.1
Epochs
3
Planned steps
441
Lr
0.0002
Measured on

Training

Died at steps
184, 236, 239
Causes
CUDA illegal memory access (Xid 31 MMU fault per the program notes), CUDA OOM, 6.98 GiB allocated + 394 MiB reserved of 7.65 GiB, CUDA OOM, 6.90 GiB allocated + 457 MiB reserved
Measured on

Results

CheckpointTest setPassedAccuracyTrain flagged accuracyHeld out passedHeld out totalS per caseHeld out breachesMeasured on
2251,1319840.870.8766891101.22
225174 guards1577

v15

Ollama tag
gemma3-4b-router-v15-r96-drop10
base model
unsloth/gemma-3-4b-it
Corpus examples
1172
trained
End: 2026-09-23T17:51Z
what changed
Rank 112 to 96 to pay for dropout's memory; alpha 30 to hold rsLoRA's effective scale near v13's.
outcome
Vetoed on guards. Dropout bought one held-out case over v13 and cost 0.7 pp overall. Closed the rsLoRA branch.

Config

Rank
96
Alpha
30
RsLoRA
yes
Effective scale
3.06
Dropout
0.1
Epochs
3
Optimizer steps
441
Lr
0.0002
Measured on

Training

Train loss
0.1218
Peak VRAM MB
6629
Predicted peak MB
6793
Runtime s
43420
Eval loss best
Step: 300; Loss: 0.2499
Eval loss final
0.3385
Measured on

Results

Test setPassedAccuracyTrain flagged accuracyHeld out passedHeld out totalS per caseHeld out breachesBreach categoriesMeasured on
1,13110950.96820.97061041101.269
174 guards16543 of 4 involve pasted or quoted content

v16

Ollama tag
gemma3-4b-router-v16-disjoint
base model
unsloth/gemma-3-4b-it
Corpus examples
873
trained
Start: 2026-09-23T22:18Z; End: 2026-09-24T07:12Z
what changed
v11's recipe on a disjoint corpus with a quarter of the gold set held back.
outcome
-8.5 pp on the fair slice vs v11. Disproved its own premise: v11's headline was not inflated by memorization.

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
330
Lr
0.0002
Holdout
273-case stratified slice (25%) plus 58 cases dropped because a deterministic pre-router step now answers them
Measured on

Training

Train loss
0.1316
Peak VRAM MB
6653
Runtime s
32031
Eval loss best
Step: 100; Loss: 0.2603
Eval loss final
0.3877
Measured on

Results

Test setPassedAccuracyHeld out passedHeld out totalS per caseV11 accuracyNoteHeld out breachesGroupsMeasured on
1,14810350.90163343991.195
82 cases held out from both v11 and v160.8780.963
317 cases v11 trained on and v16 did not0.8260.946
1,275 expanded11390.89334395264.231speed contention-affected
181 guards173the extra breach is a session-capability case that did not exist when v16's corpus was exported2
267 guards2535
127 never-seen cases by groupAll 127: V11: 0.874, V16: 0.843; Adversarial guards 62: V11: 0.855, V16: 0.903; Guard counterweights 24: V11: 0.833, V16: 0.667; Session injection guards 16: V11: 1.0, V16: 1.0; Session paraphrases and discriminators 25: V11: 0.88, V16: 0.76

v17

alias
marvin-v1.3 (production from 2026-09-25 08:10 UTC)
Ollama tag
gemma3-4b-router-v17-full
base model
unsloth/gemma-3-4b-it
Corpus examples
1189
Eval examples
78
trained
Start: 2026-09-24T17:10Z; End: 2026-09-25T05:38Z
what changed
v11's exact recipe on the largest corpus: 86 adversarial guards, 41 session-capability cases, 33 guard training targets and 6 conflict rulings added.
outcome
Lost the pre-agreed fair-slice rule by 3 cases (90 vs 93), so the scripted decision picked v11. Then chosen deliberately for guards: 256/267 vs 250/267 over three repeated passes. Live as marvin-v1.3 from 25 Sep.

Config

Rank
112
Alpha
112
RsLoRA
no
Dropout
0
Epochs
3
Optimizer steps
447
Lr
0.0002
Holdout
about 10%
Measured on

Training

Train loss
0.1105
Peak VRAM MB
6658
Runtime s
44847
Eval loss best
Step: 100; Loss: 0.2526
Eval loss final
0.4378
Measured on

Results

Test setPassedAccuracyTrain flagged accuracyHeld out passedHeld out totalS per caseV11 passedPassesBreach categories in rechecksMeasured on
1,27512140.95220.96532122371.174
fair slice, 100 cases neither v11 nor v17 saw900.993
267 guards(Passed: 257, Held out breaches: 1; measured on ); (Passed: 256, Held out breaches: 4; measured on ); (Passed: 256, Held out breaches: 4; measured on ); (Passed: 256, Held out breaches: 4; measured on )2 of 4 held-out breaches involve pasted or quoted content; 1 vague phrasing; 1 session-capability