Questions and answers by demonstration

ContentsDemonstration 1 : Ten skills, one after anotherFigure 1. Accuracy and retention: every skill at every checkpointFigure 2. Ten skills, one stream: training loss per updateFigure 3. Each skill during its own teach: training loss and held-out lossFigure 4. Each skill during its own teach, zoomed: every panel has its own loss Figure 5. What happens to a skill after its teach endsFigure 6. Accuracy on the fixed 225-row panels at every accepted checkpointFigure 7. Own-end score versus final score, per skillFigure 8. How much each skill was trainedFigure 9. Held-out loss does not predict exact-match accuracyFigure 10. General capability across the streamFigure 11. Oriel from teach 9 to teach 10: which part of the answer changedDemonstration 2 : Four domains, against LoRAFigure 1. Four domains in sequence: training loss for three conditionsFigure 2. The unsmoothed training loss, one panel per conditionFigure 3. What each condition forgot, and what it learnedFigure 4. The never-trained control bankFigure 5. Held-out loss inside each domain, all three conditionsDemonstration 3 : Two invented languagesFigure 1. Two invented languages, taught one after the other in one passFigure 2. The same two corpora through a single LoRA adapter, in sequenceFigure 3. Generation identity after each stage: Learner 1.0 versus LoRAFact demonstrationsFigure 1. Everything above the dashed line happens before you commit to trainingFigure 3. Teaching does not trade away general capability at any point in a learEvery held-out question and answer

Demonstration 1 · Ten skills, one after anotheras published in the ten-skill report

Accuracy and retention: every skill at every checkpoint measured Every skill on its own 225-row panel Ten skills taught one after another. A line starts at the checkpoint where its skill was taught and runs to the end of the stream; the base is scored at all eleven checkpoints. 0% 25% 50% 75% 100% 0 1 2 3 4 5 6 7 8 9 10 checkpoint (0 = before any teaching) percent correct base all ten skills: 0 before teaching taught at checkpoint SCAN 1 Meridian 2 Adyghe G2P 3 Oriel 4 COGS 5 Sable 6 PCFG 7 Tessel 8 Juniper 9 Bracken 10 base, 498 items A skill is scored only from its own teach onward, so nothing is drawn to the left of its first dot. Before any teaching the base answers 0 of the 2,250 panel rows, so every point above the axis was acquired during the run. Each skill is then scored on its own 225-row held-out panel at every checkpoint from its teach onward; it is not scored in between. After all ten teaches 1,525 of 2,250 are correct. The base line is the 498-item sentinel on its own denominator. Source: plots/data/derived/tables.json.
Figure 1. One picture of the run: nothing is answered before teaching, each skill jumps at its own teach, and every skill holds its level while the skills after it are taught. 1,525 of 2,250 panel rows are correct at the end, from 0 at the start, and the base line stays flat throughout.
Ten skills, one stream: training loss per update measured training loss, smoothed (moving average, span 31) raw per-update loss, min to max One example per update, 63,282 updates in the order they were applied loss on the example being trained, nats (log scale) 0.0001 0.001 0.01 0.1 1 10 0 10,000 20,000 30,000 40,000 50,000 60,000 update SCAN Meridian Adyghe G2P Oriel COGS Sable PCFG Tessel Juniper Bracken Ten skills taught one after another; shaded columns alternate per skill. Losses below 1e-4 are drawn at 1e-4. The pale band spans the lowest and highest raw loss in each of 780 slices of the stream, so every spike is inside it; the line is the smoothed loss. Source: plots/data/series/training_loss.json.
Figure 2. Training loss over the whole stream: each skill starts high, drops within its own segment, and hands over to the next. Nothing in the stream tells the learner where one skill ends and the next begins.
Each skill during its own teach: training loss and held-out loss measured training loss, smoothed (moving average, span 31) raw training loss, min to max held-out loss on 8 monitored panel rows, every 25 updates 1. SCAN 9,850 updates ยท held-out loss at the end 9.1e-05 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 2,000 4,000 6,000 8,000 update within the skill 2. Meridian 3,557 updates ยท held-out loss at the end 0.16 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 3. Adyghe G2P 3,600 updates ยท held-out loss at the end 0.37 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 4. Oriel 3,568 updates ยท held-out loss at the end 0.059 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 5. COGS 21,309 updates ยท held-out loss at the end 0.00061 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 5,000 10,000 15,000 20,000 update within the skill 6. Sable 3,911 updates ยท held-out loss at the end 0.031 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 7. PCFG 7,871 updates ยท held-out loss at the end 0.034 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 2,000 4,000 6,000 update within the skill measured where the teach resumed and at its end 8. Tessel 2,835 updates ยท held-out loss at the end 0.045 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 update within the skill measured at the start and the end of this teach 9. Juniper 3,025 updates ยท held-out loss at the end 0.015 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 10. Bracken 3,756 updates ยท held-out loss at the end 0.093 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill All ten panels share one loss axis (1e-5 to 10 nats, log scale). The held-out curve is the mean per-token loss on eight fixed panel rows that are never trained on, measured every 25 updates; it is a monitor, not the 225-row evaluation. During the PCFG and Tessel teaches the every-25-update monitor watched the previously taught skills and the English control rather than the skill being taught; that skill was measured on the same eight rows at the gate instead, once before its first update and once after its last, and those two points are drawn with a dashed segment between them. The PCFG point sits 792 updates in because that teach was resumed there; the Tessel point sits at the start of its teach. Source: plots/data/series/{training_loss,held_out_loss}.json.
Figure 3. Per-skill training and held-out loss during each skill's own segment, on one shared scale. Held-out loss falls with training on all ten and settles at very different levels: near zero for SCAN and COGS, far higher for Oriel and Juniper.
Each skill during its own teach, zoomed: every panel has its own loss scale measured training loss, smoothed (moving average, span 31) raw training loss, min to max held-out loss on 8 monitored panel rows, every 25 updates 1. SCAN 9,850 updates ยท held-out loss at the end 9.1e-05 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 2,000 4,000 6,000 8,000 update within the skill 2. Meridian 3,557 updates ยท held-out loss at the end 0.16 nats 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 3. Adyghe G2P 3,600 updates ยท held-out loss at the end 0.37 nats 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 4. Oriel 3,568 updates ยท held-out loss at the end 0.059 nats 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 5. COGS 21,309 updates ยท held-out loss at the end 0.00061 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 5,000 10,000 15,000 20,000 update within the skill 6. Sable 3,911 updates ยท held-out loss at the end 0.031 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 7. PCFG 7,871 updates ยท held-out loss at the end 0.034 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 2,000 4,000 6,000 update within the skill measured where the teach resumed and at its end 8. Tessel 2,835 updates ยท held-out loss at the end 0.045 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 update within the skill measured at the start and the end of this teach 9. Juniper 3,025 updates ยท held-out loss at the end 0.015 nats 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill 10. Bracken 3,756 updates ยท held-out loss at the end 0.093 nats 1e-05 0.0001 0.001 0.01 0.1 1 10 0 1,000 2,000 3,000 update within the skill Zoomed view: the loss axis differs between panels, so compare shapes within a panel, not levels across panels. The held-out curve is the mean per-token loss on eight fixed panel rows that are never trained on, measured every 25 updates; it is a monitor, not the 225-row evaluation. During the PCFG and Tessel teaches the every-25-update monitor watched the previously taught skills and the English control rather than the skill being taught; that skill was measured on the same eight rows at the gate instead, once before its first update and once after its last, and those two points are drawn with a dashed segment between them. The PCFG point sits 792 updates in because that teach was resumed there; the Tessel point sits at the start of its teach. Source: plots/data/series/{training_loss,held_out_loss}.json.
Figure 4. The same ten panels with a separate loss scale per panel, to show the shape of each curve. Levels are not comparable across panels in this view; use the shared-scale figure for that.
What happens to a skill after its teach ends measured SCAN Meridian Adyghe G2P Oriel COGS Sable PCFG Tessel Juniper Bracken Held-out loss of every earlier skill while later skills are trained lines: 8 monitored rows every 25 updates ยท dots: separate 24-row sweeps at teach endpoints; nats, log scale 1e-05 0.0001 0.001 0.01 0.1 1 10 0 10,000 20,000 30,000 40,000 50,000 60,000 update (whole stream) SCAN 6.9e-05 Meridian 0.16 Adyghe G2P 0.37 Oriel 0.061 COGS 0.00068 Sable 0.03 PCFG 0.035 Tessel 0.035 Juniper 0.015 Bracken 0.093 English control (24 rows) 3 In the first five teaches an earlier skill was measured only at teach endpoints; in the sixth teach two earlier skills were monitored continuously, and from the seventh every earlier skill was. The 8-row monitor and the 24-row endpoint sweeps are different samples of the panel and are drawn as separate marks. A line is drawn only across consecutive measurements; where a skill was not monitored there is a gap, and isolated endpoint measurements are dots. Dashed verticals mark teach boundaries. Source: plots/data/series/held_out_loss.json.
Figure 5. Retention as a loss curve: after a skill's own segment ends, its held-out loss is nearly flat across the remaining tens of thousands of updates on other skills. The English control panel (never trained) stays where it started.
Accuracy on the fixed 225-row panels at every accepted checkpoint measured Rows: checkpoint after each teach. Columns: skill. Cell: correct of 225 (exact match) blank = not yet taught at that checkpoint SCAN Meridian Adyghe G2P Oriel COGS Sable PCFG Tessel Juniper Bracken after 1: SCAN 222 after 2: Meridian 222 83 after 3: Adyghe G2P 222 84 147 after 4: Oriel 222 82 146 12 after 5: COGS 222 81 146 14 225 after 6: Sable 222 81 146 15 225 198 after 7: PCFG 222 82 146 16 225 197 174 after 8: Tessel 222 83 146 14 225 198 173 188 after 9: Juniper 222 84 147 15 225 198 174 187 118 after 10: Bracken 222 84 146 9 225 198 172 188 120 161 Each cell is the number of exactly-correct answers on that skill's fixed 225-row held-out panel at that checkpoint. Source: plots/data/derived/tables.json (matrix), from the panel analysis receipt.
Figure 6. The checkpoint-by-skill matrix: each skill is scored from its own teach onward, so cells above the diagonal are blank. Read down a column to see a skill's score while later skills are taught: SCAN 222 at every one of ten checkpoints; Meridian moves within 81 to 84; Oriel is the only column that moves by more than two rows.
Own-end score versus final score, per skill measured right after its own teach after all ten teaches Correct of 225 on each skill's fixed held-out panel the two marks coincide when nothing changed 0 45 90 135 180 225 correct of 225 SCAN 222 โ†’ 222 (no change) Meridian 83 โ†’ 84 (+1) Adyghe G2P 147 โ†’ 146 (-1) Oriel 12 โ†’ 9 (-3) COGS 225 โ†’ 225 (no change) Sable 198 โ†’ 198 (no change) PCFG 174 โ†’ 172 (-2) Tessel 188 โ†’ 188 (no change) Juniper 118 โ†’ 120 (+2) Bracken 161 โ†’ 161 (no change) Own-end = the checkpoint at the end of that skill's segment; final = the checkpoint after the tenth teach. Source: plots/data/derived/tables.json.
Figure 7. All ten skills hold what they learned: nine end within two rows of their own teach, and for Oriel the four working components survive, with the header and escaping right on every row at the end and the payload and decoded length on 92 to 95 per cent of them. Its exact-match count still moves 12 to 9 of 225 because one wrong checksum costs the whole row. Juniper and Meridian end slightly higher than at their own teach.
How much each skill was trained measured updates applied (one example each) supervised tokens, including the end-of-sequence token Updates examples the learner was trained on Supervised tokens tokens the loss was computed on SCAN 9,850 Meridian 3,557 Adyghe G2P 3,600 Oriel 3,568 COGS 21,309 Sable 3,911 PCFG 7,871 Tessel 2,835 Juniper 3,025 Bracken 3,756 SCAN 297k Meridian 68k Adyghe G2P 42k Oriel 180k COGS 1099k Sable 73k PCFG 195k Tessel 73k Juniper 209k Bracken 58k Totals: 63,282 updates, 2,295,371 supervised tokens, 5,921,663 presented tokens. Source: plots/data/derived/tables.json (dose).
Figure 8. Training dose per skill. COGS received a third of all updates and half of all supervised tokens; the other nine received between 2,835 and 9,850 updates each.
Held-out loss does not predict exact-match accuracy measured Each skill at the end of its own teach x: held-out loss at the endpoint sweep (nats, log scale) ยท y: correct of 225 0 45 90 135 180 225 1e-05 0.0001 0.001 0.01 0.1 1 held-out loss at own-end (nats) correct of 225 SCAN Meridian Adyghe G2P Oriel COGS Sable PCFG Tessel Juniper Bracken Loss is the mean per-token loss over the panel rows in the last sweep of the skill's own segment; accuracy needs every token right. Source: plots/data/series/held_out_loss.json, plots/data/derived/tables.json.
Figure 9. A low held-out loss is necessary but not sufficient for exact-match accuracy: Oriel and Meridian sit at loss levels similar to skills that score far higher, because a single wrong token anywhere in a long structured answer costs the whole row.
General capability across the stream measured sentinel, raw likelihood choice sentinel, length-normalized full battery (16,481 items) Endpoint sentinel at all eleven checkpoints arc 128 ยท hellaswag 128 ยท mmlu 114 ยท winogrande 128; correct of 498 300 330 360 390 420 0 1 2 3 4 5 6 7 8 9 10 after teach 348โ€“353 raw Full battery at 0 / 5 / 10 5-shot likelihood; accuracy 0.65 0.70 0.75 0.80 0.85 0.90 0 5 10 after teach MMLU (57-subject macro) WinoGrande ARC-Challenge Sentinel and battery are likelihood-based choices scored by the reference harness port. Values: plots/data/derived/tables.json (sentinel, base_battery).
Figure 10. The base does not move materially on the measured benchmarks: the 498-item sentinel stays between 348 and 353 correct across all eleven checkpoints, and the full battery after ten teaches reads MMLU 0.8654, ARC 0.7099, WinoGrande 0.7885 against 0.8634, 0.7056, 0.7948 at step zero.
Oriel from teach 9 to teach 10: which part of the answer changed measured after teach 9 (15 of 225 correct) after teach 10 (9 of 225 correct) Rows with each component correct, all 225 panel rows a row counts as correct only when every component is right 0 45 90 135 180 225 rows of 225 223 225 escaping 225 225 header 208 208 payload 212 214 length 15 11 checksum Paired 225 rows at both checkpoints: correctโ†’wrong 7, wrongโ†’correct 1, correctโ†’correct 8. Every lost row had header, payload, escaping and length right and the checksum wrong. Source: plots/data/derived/oriel_components.json.
Figure 11. The Oriel decline is localized: between the two checkpoints the header, transformed payload, escaping and decoded length stay correct on essentially all rows, while the final checksum value is right on 15 rows, then 11. Seven rows lost that one value; one row gained it.

Demonstration 2 · Four domains, against LoRAas published in Plasticity Without Forgetting

Four domains in sequence: training loss for three conditions measured Learner 1.0 (1x) Learner 1.0 (2x) LoRA r256 Same corpus, same order, one pass training loss, nats; lines smoothed (moving average, span 31), pale band = raw range of the 1x condition 1 2 3 4 0 200 400 600 800 1,000 training step (single pass over the four domains) training loss (nats) US government documents (EN) Yoruba Amharic multilingual news All 1,200 steps are drawn for every condition; nothing is subsampled. The unsmoothed per-step loss of all three conditions is in the companion figure fd_f1b_stream_raw. Source: train_curve.jsonl per condition. Conditions are named by trainable capacity only.
Figure 1. Three conditions trained on the same four-domain stream. All three learn each domain in turn; the difference between them shows up afterwards, in what they keep.
The unsmoothed training loss, one panel per condition measured Learner 1.0 (1x) Learner 1.0 (2x) LoRA r256 Learner 1.0 (1x) every one of the 1,200 per-step losses, unsmoothed (thin line); moving average, span 31 (heavy line); nats 1 2 3 4 0 200 400 600 800 1,000 training loss (nats) US government documents (EN) Yoruba Amharic multilingual news Learner 1.0 (2x) every one of the 1,200 per-step losses, unsmoothed (thin line); moving average, span 31 (heavy line); nats 1 2 3 4 0 200 400 600 800 1,000 training loss (nats) US government documents (EN) Yoruba Amharic multilingual news LoRA r256 every one of the 1,200 per-step losses, unsmoothed (thin line); moving average, span 31 (heavy line); nats 1 2 3 4 0 200 400 600 800 1,000 training step (single pass over the four domains) training loss (nats) US government documents (EN) Yoruba Amharic multilingual news Each update trains on one 256-token window, so a per-step loss is the loss of a single window and varies with the text. The three panels share identical axes. No point is dropped or subsampled. Source: train_curve.jsonl per condition.
Figure 2. The raw per-step training loss behind the smoothed stream figure, for all three conditions on identical axes.
What each condition forgot, and what it learned measured Learner 1.0 (1x) Learner 1.0 (2x) LoRA r256 What it forgot change in loss on the three earlier domains after the fourth was trained nats; positive is worse -0.02 0 +0.02 +0.04 +0.06 +0.08 US government documents (EN) +0.070 Yoruba +0.060 Amharic +0.034 What it learned loss reduction on the trained domain, mean of four nats 0.00 0.05 0.10 0.15 0.20 0.153 Learner 1.0 (1x) 0.156 Learner 1.0 (2x) 0.143 LoRA r256 Trainable parameters: Learner 1.0 (1x) 1.14 billion ยท Learner 1.0 (2x) 2.28 billion ยท LoRA r256 1.11 billion. Source: A_equivalence.json per arm (measured block).
Figure 3. Both Learner 1.0 conditions keep the earlier domains within a few thousandths of a nat while LoRA r256 gives back 0.07, 0.06 and 0.03 nats; all three learned each domain by about the same amount.
The never-trained control bank measured Learner 1.0 (1x) Learner 1.0 (2x) Held-out control loss after each domain 8 control windows per measurement, mostly Amharic text; no control window is ever trained; nats 1.30 1.35 1.40 base reference US government documents (EN) Yoruba Amharic multilingual news after training Both Learner 1.0 conditions were scored on 8 windows of the 64-window control bank after each domain. The LoRA condition was scored once before and once after the stream on all 64 windows (1.377 to 1.293 nats), a different sample, so it is not drawn on this axis. Of the 64 control windows 59 are Amharic text; none is a window of the Amharic domain. The dashed levels are each condition's recorded base reference; the first measurement inside the stream is the one after the first domain. Source: A_equivalence.json control_domain.
Figure 4. On 8 never-trained control windows the two Learner 1.0 conditions move by about 0.01 nats across the stream and sit about 0.12 nats below their recorded base reference. The figure does not isolate how much of that difference arose inside the displayed stream.
Held-out loss inside each domain, all three conditions measured Learner 1.0 (1x) Learner 1.0 (2x) LoRA r256 base reference 1. US government documents (EN) 8 held-out windows, every 25 steps while the domain is trained; nats 2.15 2.20 2.25 2.30 0 100 200 300 step within the domain base 2.31 2. Yoruba 8 held-out windows, every 25 steps while the domain is trained; nats 1.80 1.85 1.90 1.95 0 100 200 300 step within the domain base 1.98 3. Amharic 8 held-out windows, every 25 steps while the domain is trained; nats 1.32 1.34 1.36 1.38 1.40 0 100 200 300 step within the domain base 1.41 4. multilingual news 8 held-out windows, every 25 steps while the domain is trained; nats 2.40 2.45 2.50 0 100 200 300 step within the domain base 2.54 Every recorded validation point is drawn (12 per condition per domain; the first is at step 25; in the first panel each condition is also carried back to its own recorded base at step 0, where the model is the untrained base -- in the later panels the model has already trained on earlier domains and its loss at step 0 was not measured, so no segment is drawn there). The three conditions share one axis inside each panel; the loss range differs between panels because the domains differ. The dashed line is the recorded base reference on the same 8 windows. Source: val_curve.jsonl per condition.
Figure 5. Held-out loss while each domain is trained, against the recorded base reference (dashed, value shown). The Learner 1.0 conditions are close to their final level by the first measurement at step 25; the LoRA condition gets there over the 300 steps. All three end each domain at a similar level.

Demonstration 3 · Two invented languagesas published in the two-languages report

Two invented languages, taught one after the other in one pass measured training loss, each update 15-update average held-out loss on 2 withheld windows 1. Velenic 274 training windows of 256 tokens (70,144 tokens), each presented once 0 1 2 3 4 5 0 274 627 update loss (nats) 4.6625 2.8880 2.8871 2. Morvath 353 training windows of 256 tokens (90,368 tokens), each presented once 0 1 2 3 4 5 0 274 627 update loss (nats) 4.4150 4.3636 2.2842 Held-out loss is read at three fixed points (before any teaching, after Velenic, after Morvath) on two 256-token windows withheld from each corpus; it is not a continuous validation curve. The vertical rule marks the end of the Velenic teach, update 274. Source: plots/data/two_languages.json (learner_onepass block).
Figure 1. Learner 1.0, one-pass recording. Velenic's held-out loss falls from 4.6625 to 2.8880 nats during its own teach and reads 2.8871 after Morvath is taught. Morvath's falls from 4.3636 to 2.2842 during its teach.
The same two corpora through a single LoRA adapter, in sequence measured language 1 language 2 English control Cross-entropy on each language after each stage one adapter carried through both teaches; nats, lower is better 1 3 5 7 9 base after language 1 after language 2 cross-entropy (nats) 4.35 2.22 6.00 3.97 8.51 1.63 3.13 3.06 3.00 Rank 256 on the feed-forward projections, 1.11 billion trainable parameters, learning rate 2e-05. Source: plots/data/two_languages.json (lora block).
Figure 2. A single adapter learns language 1 (4.35 to 2.22 nats), then learning language 2 pushes language 1 to 6.00 nats, worse than before it was ever taught. English is untouched: the damage is between the two taught skills.
Generation identity after each stage: Learner 1.0 versus LoRA measured cross-language contamination (share of generated text in the other language) Learner 1.0 (greedy) contamination is 0.00 in every cell LoRA, original comparator recording: 1.00 after language 1 on language-2 prompts, 0.96 after language 2 on language-1 prompts before after language 1 after language 2 language 1 prompts, Learner 1.0 language 1 prompts, LoRA 0.00 0.00 0.00 0.00 0.00 0.96 language 2 prompts, Learner 1.0 language 2 prompts, LoRA 0.00 0.00 0.00 1.00 0.00 0.00 Means over 8 prompts per cell, greedy decoding. Learner 1.0: one-pass recording (answers/session.json), English controls 4/4 at every stage. LoRA: original comparator recording. Source: plots/data/two_languages.json.
Figure 3. Where the LoRA adapter answers language-1 prompts in language 2 after the second teach (0.96), Learner 1.0 keeps the two apart (0.00 in every cell).

Fact demonstrationsas published in the facts page

From your file to a served answer Everything in the top row happens before any training starts, and you see its output before you commit to it. schematic Your document PDF, Word, HTML, plain text one file, or many It is read for facts, twice grammar rules, the same rows every time a language model reading the page Fact rows, shown to you the two sets combined, screened and de-duplicated · editable A training job each fact written in several wordings, over several passes A new checkpoint immutable, pinned by id, loadable through the API Answers the question alone is sent: no document, no retrieval The second route, used to teach a skill rather than a set of facts A corpus of raw text 22,000 words, taught as it is no fact step, and none is needed: the text itself is the material the two invented languages were taught this way Every document taught, every fact row stored and every answer served: github.com/learnerlabs-ai/replications
Figure 1. Everything above the dashed line happens before you commit to training, and you can read and edit its output. The second path, below the line, has no preparation step and needs none.
Every checkpoint sits on the base line row-mean accuracy, higher is better · 65 task-metric rows · 16,481 held-out items per checkpoint · stock lm-eval measured the sequence learner three lessons, taught in turn 0.840 0.850 0.860 0.870 0.880 the base model, taught nothing: 0.8583 0.8579 0.8570 the two-languages learner 0.8597 0.8586 0.8584 after lesson A after lesson B after lesson C after language 1 after language 2 one learner taught three topics in turn one learner taught two languages Every scored row, the pinned checkpoint ids and the exact lm-eval invocation: github.com/learnerlabs-ai/replications (verifiers/battery)
Figure 3. Teaching does not trade away general capability at any point in a learner's history. The two language checkpoints sit 0.0004 and 0.0013 below the base model's row-mean, which is a fifth of a percentage point at most. The three sequence checkpoints sit 0.0014, 0.0003 and 0.0001 above it. There was never a dip to recover from, because there was never a dip.

Every held-out question and answer

Two sets: final = the 2,250 fixed-panel rows (225 per skill) answered by the checkpoint after the tenth teach; own-end = the same 2,250 rows answered by the checkpoint at the end of each skill's own teach. Greedy decoding, exact match against the frozen target, scorer per skill. Two PCFG rows hit the generation cap and count as wrong. Search matches prompt, target, output and id.

idprompttargetmodel outputresult