imagining syntax

Text set in serif type with a dotted bar in the margin was drafted by an LLM (claude-fable-5, claude-opus-5, gpt-5) and sometimes reviewed by the author. The rest is the author's own. How to read this site

Capabilities

Explanation: About this page \@{about-this-page}

This page describes what imsyn's controls actually do, so that a flag name or a directory label is never the only source of truth about a run's behavior. It begins with how training data is produced, because that is where the settings interact in ways the names alone do not convey, then how one model's training is structured and how often it shows each sentence, and then what a single training step does to the model's weights. A section on how the trained model is tested for agreement comes next, and a glossary of the recurring terms follows, each definition linking to the other terms it uses.

Between those last two sits a comparison of the measures the schedule-optimization campaign has scored itself by, and of what changed each time the measure did.

Referenced by (1 direct)

Direct references:

How training data is generated

Explanation: The grammar \@{the-grammar}

Every sentence imsyn trains on comes from one small grammar. A sentence is the <noun> <verb>, optionally wrapped by one or two prepositional phrases of the form by the <object> or near the <object>. The subject noun and the verb agree in number, and any prepositional objects sit between them as attractors for the agreement task. Because the vocabulary is fixed and the grammar has only a few slots, the set of possible training sentences is finite. Four choices fix a sentence: its number, its verb (40 options), its subject noun (one of the verb's 30 seen partners), and how its optional prepositional phrases are filled. That last factor is the number of phrase combinations. A single phrase is one of two prepositions with one of thirty object nouns, so it has 60 forms, and a sentence can carry no phrase (1), a trailing phrase (60), a leading phrase (60), or both (60 × 60). Those cases sum to 1 + 60 + 60 + 60 × 60 = 3,721. Multiplying the four choices, 2 × 40 × 30 × 3,721, gives about 8.9 million sentences.

What varies across the project is not the grammar but the distribution over which noun pairs with which verb. The parameter α, written Z in the code and in directory names, is the exponent of a Zipfian distribution over a verb's possible partners. At α = 0 the subject noun is uniform over a verb's seen partners; at α = 1 it follows classic Zipf; at higher α the mass collapses onto each verb's canonical partner. α sets how repetitive the pairings are, and it is the independent variable in almost every experiment.

Two questions decide how a run's training data behaves, and they are independent of each other. The first is whether α changes during the run. The second is how the training pool is built — how many sentences it holds and whether they are drawn with or without replacement — which together fix how often the model sees each sentence. Reading one question as if it answered the other is the most common way to misjudge a run.

Referenced by (1 direct)
Explanation: Which dependency the sentence expresses \@{which-dependency-the-sentence-expresses}

The grammar above describes the default task, subject-verb agreement, where number is marked on the verb. A run may instead select the anaphor task with --task anaphor, which keeps the sentence space, the α distribution and the held-out pairings exactly as they are, and moves the agreement off the verb. Its verbs are regular past-tense forms that never inflect, so the painter painted and the painters painted share one verb token, and every sentence ends in a reflexive: the painter near the trader painted himself. Every noun in a training sentence carries the subject's number, so nothing in the training data tells binding the subject apart from binding the first noun or the nearest one, and the mismatch conditions are what separate them. The two tasks share every other knob, which is the point: a curve measured under one is read against the same axes as a curve measured under the other.

Explanation: Whether α changes during the run \@{whether-alpha-changes-during-the-run}

A plain imsyn run holds α fixed for the whole run. A curriculum run varies α according to a schedule, an ordered list of segments that each hold one α for a set number of steps. The schedule 3.0:300,2.0:300,1.0:300 trains at α = 3.0 for 300 steps, then at 2.0, then at 1.0. α is piecewise-constant: it changes only at segment boundaries. No mode varies α smoothly from step to step; a gradual ramp is approximated by using many short segments.

Explanation: How the training pool is built: size and replacement \@{how-the-training-pool-is-built-size-and-replacement}

Every run trains on a fixed dataset that it draws once and then cycles. Two independent knobs shape that pool. Its size is set by --dataset-sentence-count, 12,000 by default, split into 9,600 for training and 1,200 each for validation and test. The training loader shuffles the 9,600 training sentences and cycles through them; one full pass is an epoch, which at batch size 32 takes 300 steps. A run consumes T = steps × 32 sentence-slots, so each training sentence is shown about T / 9,600 times — four at the defaults. Raising the count lowers that reuse; setting it near T removes reuse entirely, showing each sentence about once.

How the pool is drawn is the second knob, with or without replacement. By default the draw is without replacement: it keeps sampling until it has N distinct sentences, so the pool is deduplicated and every sentence in it is shown equally often. α is then visible only in which pairings were collected, never in how frequently each is shown — this is the paper's regime. With --with-replacement the draw keeps duplicates: the pool is N independent samples from the α distribution, so common pairings appear in it many times and rare ones seldom. α now weights how often the model sees each pairing, and the expected number of times a given sentence x is trained on is T · p(x) rather than a flat T / 9,600. That is a genuinely different training signal, so with-replacement runs are comparable with each other, not with the without-replacement baseline.

The without-replacement branch above needs one qualification. Deduplication is not a neutral way to collect the same distribution: past a pool size the grammar cannot supply, it lowers the realized α and reshapes how many prepositional phrases a training sentence carries. The page on the paper's own corpus works out where that threshold sits and what it costs, and the page on sampling regimes sets out what can be built instead.

Staged curriculum runs apply both knobs one segment at a time: each segment draws its own N-sentence pool at that segment's α — with or without replacement — and cycles it for the segment's duration before moving on. α still moves in discrete steps; no mode varies it continuously.

The regimes the reports name follow from these two questions:

regime α over the run how the pool is built and reused
plain imsyn run (the paper) one fixed α N = 12,000 without replacement, recycled (reuse T / 9,600 ≈ 4×)
curriculum, staged (default) piecewise-constant schedule one without-replacement pool per segment, recycled within it
--with-replacement fixed α or a schedule pool drawn with replacement; α weights exposure T · p(x)
imsyn run continue inherits the source run's α the source run's dataset, recycled further

Hierarchy and reuse

Explanation: Hierarchy \@{hierarchy}

A single imsyn run invocation trains several models, and each model's training is itself a nested structure. Naming the levels from the outside in makes the reuse question below precise.

run                          one `imsyn run …` invocation
└─ replicate  (×N)           one seeded training of the model   → iter_001 … iter_00N
   │                         seed = base_seed + i
   │  model                  the transformer this replicate trains (fresh seeded init)
   └─ epoch  (×E)            one full pass over the dataset,  E = steps / 300
      └─ step  (300 / epoch) one optimizer update
         └─ batch            32 sentences, one forward-and-backward pass
            └─ sentence ×32  drawn from the dataset

dataset   the fixed pool of 9,600 unique training sentences the epochs draw from

The two entries that are not nesting levels are the model and the dataset. A model is the network being trained; a replicate is one seeded training of it, and a run produces N replicates that differ only in seed. A dataset is the pool a replicate's batches draw from — always a materialized, cycled pool, whether it is drawn with or without replacement.

Explanation: Reuse \@{reuse}

How often a given sentence is reused within one replicate follows from this structure, and the two data regimes answer it differently.

Without replacement — a plain run and each segment of a staged curriculum — the pool is a fixed set of N distinct sentences (9,600 in the training split by default). Each epoch shuffles the pool and shows every sentence once, so across E = steps / 300 epochs a sentence in the pool is shown exactly E times (⌊E⌋ or ⌈E⌉ when E is not whole) and a sentence outside the pool is never shown. Reuse is certain and even: once training runs two or more epochs, every training sentence recurs, each the same number of times. A 1,200-step run at the default size is four epochs, so it shows each of its 9,600 sentences exactly four times and the remaining eight and a half million possible sentences not at all.

With replacement the pool is instead N independent draws from the α distribution, so it holds duplicates and reuse becomes a matter of probability rather than an even count. A particular sentence occupies about N · p of the pool's slots, where p is its probability under the current α, and each slot is cycled steps × 32 / N_train times, so the sentence is trained on about steps × 32 × p times in expectation. The common, high-probability pairings recur often; the long tail of rare sentences lands in the pool once or, more often, never. At α = 0 a plain sentence with no prepositional phrase has probability near 1/9,600 and is expected about four times — the same as the without-replacement case — while raising α concentrates the mass and lifts the common pairings well above four as the tail empties.

without replacement with replacement
training pool N distinct sentences N independent draws (duplicates kept)
times a given sentence is shown exactly E = steps / 300 if in the pool, otherwise 0 random, mean steps × 32 × p
what sets the reuse the epoch count E (pool size vs steps) the sentence's probability p, set by α
shown more than once every pool sentence once E ≥ 2 only the high-probability pairings

What one step does

Explanation: One step \@{one-step}

A step turns one batch into one change to the model's weights, and it is the only place the weights change. It has two halves: measuring how wrong the model currently is, which produces the loss, and using that measurement to adjust the weights, which is the optimizer update.

Explanation: Computing the loss \@{computing-the-loss}

Training treats every sentence as a chain of next-token predictions. A sentence is tokenized, wrapped in a beginning and an end marker, and split into an input and a target that are the same token sequence shifted by one position, so at each position the model sees the tokens so far and is asked for the token that actually comes next.

Example: A sentence, end to end \@{walkthrough}

Follow "the runner near the skater challenges" all the way through. The tokenizer splits it on spaces into six words, maps each to its index in the vocabulary, and adds a beginning marker (BOS, index 1) and an end marker (EOS, index 2) at the two ends, giving eight tokens:

position 0 1 2 3 4 5 6 7
token BOS the runner near the skater challenges EOS

Shifting this sequence against itself by one position turns it into seven next-token questions. The input at each position is the run of tokens up to that point, and the target is the one token that comes next:

position input target (next token)
0 BOS the
1 the runner
2 runner near
3 near the
4 the skater
5 skater challenges
6 challenges EOS

The first row asks for "the" after the beginning marker, and the last asks for the end marker after "challenges". These seven rows are the sentence's whole contribution to training.

Sentences differ in length, so to place several in one batch they are padded to a shared length. Another sentence in the same batch, "the singer sings", wraps to five tokens and yields only four questions. The longest input in the batch sets the width, seven tokens here, and the shorter sentence is filled out to match: its input is extended with a padding token (PAD, index 0) and its target with the sentinel −1, while a mask marks which positions are real:

position 0 1 2 3 4 5 6
input BOS the singer sings PAD PAD PAD
target the singer sings EOS −1 −1 −1
mask 1 1 1 1 0 0 0

The mask keeps the padded positions out of the model's attention, and the −1 targets are exactly the ones cross-entropy is told to skip, so the filler adds nothing to the loss.

At each real position the model emits logits, one score per vocabulary token. A softmax turns those scores into a probability distribution over the whole vocabulary, and cross-entropy reads one number off it: the probability the model placed on the token that actually comes next. That position's loss is the negative natural logarithm of that single probability. Only the true token's probability enters the loss; the scores on the other tokens matter just through the softmax that makes the probabilities sum to one.

The negative logarithm rewards confidence in the right token and punishes confidence away from it. A few values show its shape:

probability on the true next token loss at that position
1.00 (certain and correct) 0.00
0.90 0.11
0.50 0.69
0.10 2.30
1/167 (an even guess over the vocabulary) 5.12

Read the other way, a loss L means the model gave the true token a probability near exp(−L): a loss of 0.69 is about an even chance on the right token, and 2.30 is about one chance in ten. A freshly initialized model spreads its guess roughly evenly over all 167 tokens and so starts near 5.12, the logarithm of the vocabulary size; training pulls it down from there.

Put the seven questions of the first sentence to a model that has already learned the grammar, and it lands on roughly these probabilities for the true targets, each turned into a loss by its negative logarithm:

input target probability on target loss
BOS the 0.50 0.69
the runner 0.03 3.51
runner near 0.25 1.39
near the 0.98 0.02
the skater 0.03 3.51
skater challenges 0.03 3.51
challenges EOS 0.98 0.02

Two positions are almost free: "the" always follows a preposition and the end marker always follows the verb, so the model is nearly certain and the loss is about 0.02. The opening position is middling, because a sentence starts with "the" only about half the time and with a preposition otherwise. The costly positions are the two nouns and the verb, each an open pick from about forty candidates of its kind. The verb is where the project's question lives: which verb comes is genuinely open, but its number is not, because "runner" fixes it, so the cost there is the price of the lemma alone and none of it is spent on the forty plural verbs. Averaging the seven losses gives about 1.8 for this sentence.

The loss for the batch is this same per-position average, taken over every real next-token position in all 32 sentences at once, with the padded −1 positions skipped.

The loss never reaches zero, because some of what comes next is genuinely uncertain. Which verb follows a subject is one of many words, and no model can always name it in advance. What is never uncertain is the verb's number, which the subject fixes, so a model that has learned agreement stops spending probability on wrong-number verbs. That avoidable part of the loss is the part training drives down, and it is the signal the whole project studies.

Explanation: Updating the weights \@{updating-the-weights}

Backpropagation then differentiates the loss. In one backward pass it computes, for every weight, the gradient, the derivative of the loss with respect to that weight. The forward and backward passes only read and differentiate the weights; nothing so far has changed them.

The optimizer makes the change. AdamW keeps, for each weight, a running average of its recent gradients and of their squares, and moves the weight by the first divided by the square root of the second, so directions with small but consistent gradients still make steady progress and noisy ones are damped. The base learning rate is a constant 6e-4, with no warmup and no decay over the run. Two adjustments sit around this update. The gradients are first clipped to a global norm of 1.0, so one surprising batch cannot move the weights too far. And weight decay shrinks each weight slightly toward zero, at a strength set by the coefficient 0.1, which discourages large weights and tends to help the model generalize.

Weight decay is applied only to the 2-D tensors. A model's weights are stored as tensors, arrays of numbers with a fixed number of axes: a weight matrix or an embedding table is two-dimensional, a grid of outputs by inputs, while a bias or a LayerNorm scale is one-dimensional, one number per feature. The two-dimensional tensors are the matrices that mix features and hold the learned transformation, so shrinking them toward zero regularizes what the model has learned; the one-dimensional offsets and scales are left alone, because pulling them toward zero would distort the network without the same benefit. The optimizer tells the two apart by each tensor's number of axes.

Once the optimizer moves the weights the step is done. The model is now slightly different, and the next batch is measured against these new weights.

Evaluating agreement

Explanation: Agreement evaluation \@{agreement-evaluation}

Training drives the loss down; evaluation asks the sharper question the project is built around, whether the model has learned subject-verb agreement as a rule and not as a habit that happens to fit the pairings it saw. The test isolates that one choice: given a subject, does the model prefer the verb that matches it in number, even when nouns of the other number stand between them.

The probe is a minimal pair. Take a grammatical sentence, "the runner near the skaters challenges", and form its twin by flipping the verb's number, "the runner near the skaters challenge". The two differ in one thing only, whether the verb agrees with its subject, so a model that has learned agreement should give the grammatical member the higher probability. It reads both and scores correct on the pair when it does. A condition's accuracy is the fraction of its pairs, 1,000 by default, that it scores correct, and 50 is chance.

Two independent choices about a pair produce the four conditions the reports name. The first is whether the subject-verb pairing is one training showed. A seen pairing occurred in training; an unseen pairing is one of the held-out partners that training never showed. A seen probe therefore tests agreement on familiar material, and an unseen probe tests whether the rule carries to pairings the model has never met. Unseen probes are always drawn uniformly (α = 0) over the held-out pairings, so their difficulty is the same for every run whatever its training α.

The second choice is whether the prepositional phrases help or interfere. Every probe carries both phrases, and their objects are the attractors. In a match probe the attractors share the subject's number, so following the subject and following the nearest noun call for the same verb. In a mismatch probe the attractors take the opposite number, and the two strategies part ways: "the runner near the skaters ___" wants a singular verb by agreement and a plural one by recency. Mismatch is where they separate, and it is what lets the condition tell them apart.

match (attractors agree) mismatch (attractors interfere)
seen pairing seen_match seen_mismatch
unseen pairing unseen_match unseen_mismatch

A model that has genuinely learned agreement does well on all four. A model that has instead settled for agreeing with the most recent noun, the shortcut the attractors exist to catch, passes the match conditions and fails the mismatch ones. unseen_mismatch is the hardest of the four and the outcome most experiments are read through: agreement generalized to a pairing never trained, across two attractors of the wrong number.

How a schedule is scored

Explanation: One number per arm, and four ways to choose it \@{scoring-measures}

Comparing two schedules means collapsing a cohort of seeds into one number, and that collapse is not a formality. The schedule-optimization campaign has scored the same runs four different ways, and the four do not agree about which schedule is best. Each seed either reaches a target accuracy at some step or never reaches it within the budget, so an arm is a distribution over crossing times with some of its mass at "never". A measure is a choice of what to read off that distribution, and every such choice discards something.

measure what it reads off a cohort where it decided what it cannot see
crossing probability ŝ the fraction of seeds across by step k the v1 and v2 winners when the crossers arrived
median crossing time the middle crosser the v4 promotion ladder seeds that never cross at all
Kaplan-Meier q0.9 the step by which nine seeds in ten are across every published result from v3 on nothing, but it is undefined once more than a tenth of seeds censor
fitted q0.9 that same quantile read off a lognormal fitted to those seeds the v5 search the gap between its model and the data

The first two are ordinary summaries that turned out to be blind in ways that mattered. The second two are the same quantity estimated two ways, and their disagreement is what decided the fifth round.

Three further quantities are computed and reported but never used to select: restricted mean survival time, which stays defined at any censoring level and so anchors paired comparisons; CVaR, the mean of the slow tail; and the survival curve, which is the crossing probability read at every deadline rather than one. seed coverage travels beside all of them, because a fast time over the seeds that finished is not a result.

Explanation: From a deadline to a distribution \@{scoring-evolution}

The campaign began by asking whether a schedule gets there at all. The first frozen objective was a crossing objective (ŝ): the probability that unseen_mismatch reaches 92.5 within 400 steps and holds. It answered its question, a high-start descent crossing on 0.94 of held-out seeds against 0.67 for the best constant α, and then ran out of resolution, because a probability near 1 cannot rank the arms that all reach it (saturation). Re-freezing at a harder threshold and a shorter deadline bought one round of resolution and then tied again: the top three arms came in at 0.867, 0.847 and 0.793, pairwise inseparable on 150 seeds, while their median crossings differed by about seventy steps. The measure was throwing away exactly the information that separated them.

That is what moved the campaign from a deadline to the distribution. From v3 onward the objective is the 90th percentile of the per-seed crossing time itself, estimated from the Kaplan-Meier curve so that seeds still uncrossed at the horizon shape the answer without being scored as crossings (tail quantile q0.9). The 90th percentile rather than the median is the point: it asks when nearly every seed is finished, so a schedule that strands a tenth of its cohort cannot win by being quick in the rest.

Two rounds of search then ran against that objective, and neither ranked its own candidates on it. The v4 ladder promoted on the median with a censoring guard in front, and the v5 driver promoted on a fitted quantile. Both substitutions were made for the same documented reason, that the reported estimator is unusable at the depths a search actually measures, and the second one is what cost that round its result.

Explanation: The instrument moved underneath the measures \@{scoring-instrument}

A measure is only defined relative to how a crossing is detected, and that changed once, between v3 and v4, which is why no number crosses that boundary. Under the old rule a crossing was confirmed by waiting: the accuracy had to sit above the threshold at two consecutive waypoints. Waiting cannot tell a lucky probe from a model that has not moved, and it charges training steps to answer either question, so it biased every crossing time late. The confirmation rule now re-measures instead, holding the weights that produced the reading fixed and scoring them against three fresh sets of minimal pairs.

Removing that late bias moved the whole field earlier, by more than most schedule differences: the best constant α went from 366.9 to 300.0 and the previous champion from 282.6 to 225.0. The horizon fell from 600 steps to 400 in the same change, which can only push a measured quantile later or into censoring, so the direction of the shift is the confirmation rule and not the shorter horizon. The waypoint grid also tightened from every 25 steps to every 10 from step 100, and runs now stop as soon as a crossing is confirmed, which buys most of the campaign's throughput and means there is no post-crossing accuracy to read.

The rule for the reader is mechanical. Numbers measured under the waiting rule and numbers measured under re-measurement are different quantities, the leaderboard labels every row with the rule it was scored under, and the two are never merged.

Explanation: Why the median and the tail disagree \@{median-versus-tail}

The median crossing time is the cheapest usable summary and the reason the v4 ladder promoted on it. At 20 seeds it has a spread of a few steps, where the reported tail quantile has a standard deviation near 35 and is often not defined at all, so the median can order a board that the 90th percentile leaves mostly blank.

What the median cannot see is a stranded tail. A schedule that abandons a fifth of its seeds looks fast in the seeds that remain: constant α at 2.2 posts the fastest median on the v4 board while censoring 0.20 of its cohort, with nothing in the median to say so. The board answers that with a guard rather than a better statistic, refusing to rank any candidate censoring above 0.10, and the guard runs before the median.

Even among arms that finish, the two orderings come apart. Two of the v4 finalists reached identical medians of 187.4 steps over the same 60 seeds, and their reported 90th percentiles were 198.9 and 286.4. One of them is the fastest schedule the campaign has found and the other is nowhere, and the median cannot tell them apart. A tail objective exists to separate exactly that pair.

Explanation: Why the fitted quantile and the measured one disagree \@{fitted-versus-measured}

The reported tail quantile is an order statistic. With no censoring it is the 135th crossing of 150 seeds, the 54th of 60, the 18th of 20, and the slowest of six; if one of six seeds fails to cross there is no reading at all. That is why it cannot rank a search: across the whole board, 290 of 930 candidates have no reported 90th percentile at their deepest cohort, and 256 of the 640 that never left the first rung have none. The fitted tail quantile exists to fill that gap, extrapolating a tail from the shape of the crossings that did happen.

The two are estimates of the same quantity and they do not agree. Over the 27 candidates measured at the full 150 seeds, where both are defined and both are read on identical data, the fitted value runs a mean 8.8 steps above the measured one, with a spread from −0.3 to 20.7, and the size of the gap tracks the fitted dispersion at a correlation of 0.82. That is the model doing what it was asked to do: a lognormal reads a heavier upper tail as a larger scale parameter and extrapolates further past the data, so the schedules penalized most are the ones whose slowest seeds are furthest out. The two rank those same 27 candidates at a rank correlation of 0.19.

Depth compounds it, in the same direction for both estimators. Of the 26 candidates measured at both 60 and 150 seeds, the median crossing time does not move at all, while the measured 90th percentile rises by a median of 3.0 steps and the fitted one by 9.9; the campaign log records a mean fitted dispersion of 0.209 at six seeds against 0.111 at 150. A shallow cohort is optimistic about the tail, and a search that promotes on shallow readings selects the luckiest shrinkage as readily as the fastest schedule, which is the winner's curse operating on the estimator rather than on the schedule.

A fresh cohort settles which of the two carries information about the future. Across the eleven arms taken to held-out confirmation, the measured quantile reproduced itself to a mean of 2.4 steps while the fitted value sat 6.0 away, and the search ordering predicted the held-out ordering at a rank correlation of 0.86 when both sides were measured against −0.34 when the search side was fitted. The cost was the round: on the fitted ranking 13 of 27 candidates beat the standing incumbent and on the measured one 3 did, the incumbent placed 14th on the quantity the search optimized and 4th on the quantity the campaign publishes, and the candidate with the best measured tail on the entire board placed 19th on the fitted ranking and was never sent to confirmation. The schedule the search did nominate came in 14.1 steps behind the incumbent on held-out seeds.

Referenced by (2 direct)
Explanation: What follows for any future round \@{scoring-rules}

Rank on the quantity you report. Where that is impossible, and at six seeds it genuinely is, the substitute has to be calibrated against the reported measure at the depths where both are defined, and the ranking has to return to the reported one before anything is selected. A substitution that is never checked is not a shortcut but a different objective.

Two supporting habits do the rest of the work. Every arm in a comparison runs on one shared seed base, so differences are read per seed rather than between two marginal distributions (paired seeds); paired intervals are much tighter than unpaired ones and are what the campaign's claims are adjudicated on. And a time is never reported without the censoring beside it, because the fraction of seeds that never arrived is the part of the distribution every summary statistic is tempted to drop.

Glossary

Explanation: Reading the glossary \@{reading-the-glossary}

Each term links to the others it uses.

Definition: vocabulary \@{vocabulary}

the fixed word set the model reads. At --vocab-size 40 it holds 40 verbs and 40 nouns, each in a singular and a plural form, plus the determiner "the", the prepositions "by" and "near", and four special tokens (PAD, BOS, EOS, unk), for 167 tokens in all. It is finite and does not change during a run.

Referenced by (33 direct, 375 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: number \@{number}

the singular or plural feature that subject-verb agreement turns on. In a sentence the subject noun and the main verb share it, and a prepositional phrase's object is an attractor that may or may not share it.

Referenced by (63 direct, 343 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: grammar \@{grammar}

the fixed template every sentence follows, [PP] the <subject-noun> [PP] <verb>. It is the same in every experiment; only the pairing distribution changes, through α, never these rules.

Referenced by (17 direct, 389 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: pairing \@{pairing}

which subject noun goes with a verb. Each verb has a canonical partner at the same rank, and the subject noun is drawn at an α-weighted offset from it, so α sets how tightly a verb concentrates on its canonical partner. See seen and unseen pairings.

Referenced by (42 direct, 367 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: α (Z) (also: zipfian parameter) \@{alpha}

The exponent of the Zipfian distribution over a verb's partners, and the main independent variable of the project. At 0 the subject noun is uniform over the seen partners; at 1 it follows classic Zipf; higher values concentrate the mass on the canonical pairing. It shapes the distribution, not the grammar. The code and directory names write it as Z.

Referenced by (179 direct, 239 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: seen and unseen pairings (also: unseen pairing, seen pairing) \@{seen-unseen-pairings}

of a verb's possible partners, the first vocab_size - unseen_count carry training probability and are seen; the last unseen_count (10 by default) are held out of training and used only by the unseen_* evaluations, which sample them uniformly and are therefore α-independent.

Referenced by (15 direct, 391 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: prepositional phrase (PP) (also: PP, attractor) \@{prepositional-phrase}

an optional by the <object> or near the <object> modifier. A sentence carries zero, one, or two of them, and each object noun is an agreement attractor between the subject and the verb.

Referenced by (14 direct, 393 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: sentence \@{sentence}

one string produced by the grammar, for example the runner near the skater challenges. Its subject and verb agree in number and are chosen as a pairing, and it may carry one or two prepositional phrases. The space of possible sentences is finite, about 8.9 million at the default vocabulary.

Referenced by (32 direct, 376 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: phrase combination \@{phrase-combination}

one way of placing a sentence's optional prepositional phrases. A single phrase has 60 forms (two prepositions × thirty object nouns), so a sentence can carry no phrase (1), a trailing phrase (60), a leading phrase (60), or both (60 × 60), which sum to 1 + 60 + 60 + 60 × 60 = 3,721.

Referenced by (1 direct, 1 transitive)

Direct references:

Definition: seed \@{seed}

the integer that makes a run reproducible. It fixes dataset sampling, batch order, model initialization, and any schedule noise, so the same seed reproduces the same replicate.

Referenced by (107 direct, 306 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: dataset \@{dataset}

a sample of sentences written to disk, 12,000 by default and split 9,600 / 1,200 / 1,200 into train, validation, and test. It is generated for one (α, seed, count, replacement, vocabulary) combination, cached, and recycled across epochs. By default it is deduplicated, so every retained sentence trains equally often and α is visible only in which pairings were collected; drawn with replacement it instead keeps α's frequencies.

Referenced by (24 direct, 236 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: data regime \@{data-regime}

how a run sources its training sentences — always a materialized dataset that is cycled, shaped by two knobs: its size (--dataset-sentence-count) and whether it is drawn with or without replacement. A plain run recycles one without-replacement dataset; a staged curriculum draws a fresh one per segment.

Referenced by (8 direct, 249 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Definition: batch \@{batch}

the 32 sentences the model processes together in one forward-and-backward pass (batch_size=32).

Referenced by (18 direct, 389 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Definition: step (also: training step) \@{step}

one optimizer update computed from one batch: the forward pass produces the loss, backpropagation turns it into gradients, and the optimizer moves the weights once. This is the only moment the weights change. Training length is counted in steps: --total-iters, --max-iter, and the waypoints are all step counts. A step is also called a training iteration.

Referenced by (101 direct, 206 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Definition: epoch \@{epoch}

one full pass through a dataset's training split. At 9,600 training sentences and batch size 32, an epoch is 300 steps; a different dataset sentence count rescales it. Every run has epochs, since all training pools are materialized and cycled.

Referenced by (6 direct, 250 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: waypoint \@{waypoint}

a step count at which the model is checkpointed and evaluated during training, so a run records how each accuracy develops over time rather than only at the end.

Referenced by (40 direct, 268 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: checkpoint \@{checkpoint}

the saved copy of the model's weights that a run writes to disk at a waypoint or at the end of training. The waypoint is the measurement time; the checkpoint is the artifact left there. It holds the weights only, not the optimizer's running averages, which is why continuing training from one, as imsyn run continue does, is a warm restart rather than a true resumption.

Definition: weight \@{weight}

one of the model's learnable numbers, also called a parameter. The model is a few million of them (about 1.63M at the default size), and each step adjusts all of them at once.

Referenced by (9 direct, 291 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: logits \@{logits}

the raw scores the model produces at each position, one per vocabulary token, before they are turned into probabilities.

Referenced by (2 direct, 301 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: cross-entropy \@{cross-entropy}

the function that scores a prediction against the truth. It turns a position's logits into probabilities with a softmax, then takes the negative logarithm of the probability given to the correct next token; a confident correct answer scores near zero, and the score climbs as that probability falls.

Referenced by (2 direct, 300 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: loss \@{loss}

the single number a forward pass produces for a batch, and the quantity training drives down. It is the cross-entropy of the next-token predictions averaged over every real position in the batch's sentences, padding excluded. Backpropagation differentiates it to get the gradients.

Referenced by (10 direct, 290 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: gradient \@{gradient}

for one weight, the derivative of the loss with respect to that weight, which says which way and how strongly to change it to lower the loss. Backpropagation computes all of them in a single backward pass, and the optimizer consumes them.

Referenced by (5 direct, 295 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: optimizer (also: AdamW) \@{optimizer}

AdamW, the rule that turns a batch's gradients into one update of the weights. For each weight it keeps a running average of the recent gradients and of their squares and moves the weight by the first over the square root of the second, at a constant learning rate of 6e-4 (no warmup or decay). The gradients are clipped to a global norm of 1.0 first, and weight decay is applied. It runs once per step.

Referenced by (11 direct, 289 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: weight decay \@{weight-decay}

a regularizer that shrinks each affected weight slightly toward zero at every step, at a strength set by the coefficient 0.1. It discourages large weights, which tends to improve how the model generalizes. In AdamW the shrink is applied straight to the weight rather than folded into the gradient, and here only the 2-D tensors receive it.

Referenced by (3 direct, 297 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: 2-D tensor \@{2d-tensor}

the model's weights are stored as tensors, arrays of numbers with a fixed number of axes. A weight matrix or an embedding table is two-dimensional, a grid of outputs by inputs; a bias or a LayerNorm scale is one-dimensional, one number per feature. Weight decay reaches only the two-dimensional tensors, the matrices that mix features and hold the learned transformation, and not the one-dimensional offsets and scales; the optimizer tells them apart by counting axes.

Referenced by (2 direct, 298 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: schedule (also: curriculum) \@{schedule}

the ordered list of segments that sets how α moves across a curriculum run. Under a schedule α is piecewise-constant: it changes only at segment boundaries, never continuously.

Referenced by (99 direct, 165 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: segment (stage) (also: stage) \@{segment}

one block of a schedule, a single α held for a number of steps, written 3.0:300. In staged mode each segment generates its own dataset, which is the sense in which it is also called a stage.

Referenced by (26 direct, 234 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: model \@{model}

the network being trained, a GPT-style transformer (256-wide, 2 layers, 4 heads by default) that reads the vocabulary and predicts the next token. Its architecture is fixed within an experiment, and each replicate trains its own copy from a fresh, seeded initialization.

Referenced by (84 direct, 328 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: replicate \@{replicate}

one seeded training of the model, from a fresh initialization to its final weights. --n-iterations N trains N of them, stored as iter_001, iter_002, and so on, differing only in seed; results are summarized across them, and this is the axis that variance is measured over.

Referenced by (58 direct, 352 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Definition: iteration \@{iteration}

a word the codebase uses in two unrelated senses. One is a training step, as in --total-iters and the iter_<NNNNN> waypoint directories. The other is a replicate, as in --n-iterations and the iter_001 directories. The first counts weight updates; the second counts whole models.

Referenced by (4 direct, 296 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: run \@{run}

one invocation of a training pipeline, producing the N replicates it was asked for under runs/<timestamp>_<name>/.

Referenced by (42 direct, 374 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Definition: sweep \@{sweep}

a grid of runs over α values, each value trained by several replicates — the project's basic experiment shape. The paper reproduction is a sweep of Z from 0.0 to 3.0 in steps of 0.1 with ten seeds at each value, and a result like the intermediate unseen_mismatch peak is a statement about a sweep's curve across α, not about any single training run.

Referenced by (42 direct, 237 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: arm \@{arm}

one child of a manifest experiment: a labeled configuration (its own flags, its own schedule where one applies) realized as a nested child run with its N replicates. Reports aggregate within an arm and compare across arms, and pre-registered claims name arms by label, so the arm is the unit of comparison where the replicate is the unit of variance.

Referenced by (48 direct, 38 transitive)

Direct references:

Definition: with / without replacement (also: with replacement, without replacement) \@{replacement}

how a dataset's sentences are drawn. Without replacement (the default) keeps sampling until N distinct sentences are collected, so exposure is uniform and α is visible only in which pairings appear — the paper's regime. With replacement (--with-replacement) draws N independent samples keeping duplicates, so α weights how often each pairing is trained (expected steps × 32 × p per sentence). The two are not comparable. Runs and reports from before 2026-07-14 call with-replacement sampling "continuous."

The clause about α above is truer of the intent than of the result. Collecting N distinct sentences also changes the α the model experiences and the mix of form classes it reads, because the grammar's mass sits on too few strings to supply a large pool without saturating: see deduplication saturation and effective α.

Referenced by (7 direct, 248 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: dataset sentence count \@{dataset-sentence-count}

the total number of sentences a dataset holds before its 80/10/10 split, set by --dataset-sentence-count (12,000 by default). Because the pool is cycled it fixes reuse: each training sentence is shown about steps × 32 / (0.8 × count) times, so a larger count means less reuse and a count near steps × 32 shows each sentence about once.

Referenced by (4 direct, 251 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Definition: minimal pair \@{minimal-pair}

an evaluation probe, a grammatical sentence paired with its twin that flips the verb's number, so the two differ only in whether the verb agrees with the subject. The model scores correct on the pair when it gives the grammatical member the higher probability, and a condition's accuracy is the fraction of its pairs (1,000 by default) scored correct, where 50 is chance.

Under the anaphor task the twin flips the clause-final reflexive instead, since the verb there carries no number.

Referenced by (11 direct, 298 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Definition: match and mismatch (also: match, mismatch) \@{match-mismatch}

whether a probe's two prepositional-phrase objects share the subject's number (match) or take the opposite number (mismatch). Both phrases are always present, so a mismatch probe places two attractor nouns of the wrong number between subject and verb. Following the subject and following the nearest noun agree on a match probe and disagree on a mismatch one, which is what makes mismatch the discriminating case.

Referenced by (10 direct, 306 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Definition: seen_match \@{seen-match}

a minimal pair on a pairing the model trained on, with attractors that share the subject's number. The easiest condition, since memory and agreement both point to the right verb. Sampled at the run's own training α.

Referenced by (14 direct, 255 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Definition: seen_mismatch \@{seen-mismatch}

a minimal pair on a trained pairing whose attractors take the opposite number. It separates genuine agreement from the nearest-noun shortcut on familiar pairings. Sampled at the run's own training α.

Referenced by (15 direct, 13 transitive)
Definition: unseen_match \@{unseen-match}

like seen_match but on a held-out pairing training never showed, drawn uniformly (α = 0). It tests whether agreement generalizes to new pairings when no attractor interferes.

Referenced by (13 direct, 20 transitive)
Definition: unseen_mismatch \@{unseen-mismatch}

a minimal pair on a held-out pairing with opposite-number attractors, drawn uniformly (α = 0). The hardest condition and the project's main outcome, since it asks for agreement generalized to a pairing never trained, across the attractor trap. Its α = 0 sampling makes its difficulty identical across every arm and training α.

Referenced by (72 direct, 225 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Definition: reflexive (also: anaphor) \@{reflexive}

the clause-final pronoun of the anaphor task, himself or themselves, which has to agree in number with the subject it binds to. Every noun in the vocabulary is notionally masculine, so gender never varies and number is the only contrast the slot expresses.

Referenced by (11 direct, 298 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Definition: anaphor task \@{anaphor-task}

the second dependency imsyn can generate, selected with --task anaphor. It holds the sentence space, the α sampling and the seen and unseen pairings of the default subject-verb task fixed, and moves number agreement off the verb and onto a reflexive at the end of the sentence; its minimal pair flips that reflexive. Because the reflexive never entered the α distribution, the task asks whether concentrating noun-verb pairings helps a dependency the concentration never touched.

Referenced by (6 direct, 303 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Definition: recency, or agreement attraction (also: agreement attraction) \@{recency}

the error of making the verb agree with the nearest noun instead of with its subject. The nearest noun is usually a prepositional-phrase attractor, so a model relying on recency answers mismatch probes with the wrong number. It is the shortcut the mismatch conditions exist to expose, and the reports also call it AGREE-RECENT or B_recent; accuracy below 50 on a mismatch condition means a model has settled on it.

Referenced by (35 direct, 248 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Definition: collocational bootstrapping \@{collocational-bootstrapping}

the proposed mechanism by which seeing concentrated pairings first helps a model learn agreement. When α is high each verb almost always takes its favorite noun, so the model can build a strong association from a verb to its subject and learn to agree with the subject rather than by recency; later exposure to spread-out pairings then generalizes the rule. Curriculum experiments test whether ordering the data this way beats a fixed α.

Referenced by (14 direct, 247 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Transitive (depth 12):

Transitive (depth 13):

Definition: annealing \@{annealing}

lowering α over the course of a run, from concentrated toward uniform, along a schedule. It is the descending curriculum, the peaked-to-uniform order that collocational bootstrapping predicts should help; the reverse order, uniform to concentrated, is the anti-curriculum control.

Referenced by (13 direct, 244 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Transitive (depth 12):

Definition: child-directed speech (also: CHILDES) \@{cds}

the developmental motivation for descending-α schedules: the Zipf exponent measured in speech to children falls as they age, from about 1.46 toward 1.25 over the first 96 months in the CHILDES-derived trajectory, so a child's input grows less repetitive as its grammar firms up. The cds schedule preset replays those eight measured values as a curriculum, a gentle drift that stays near 1.4; the slope sweeps then exaggerate the decline to ask what trajectory the model itself prefers. The direction transfers but the scale does not — the model does best starting near α = 2, settling near α = 1, and, unlike a child, is harmed rather than helped when its input's predictability decays all the way to uniform.

Definition: seed bimodality (also: bimodality, seed split) \@{seed-bimodality}

the pattern in which the replicates of one setting split into two outcome groups instead of scattering around a single mean, for example some seeds learning agreement and others settling on recency. The mean then falls in the empty gap between the groups and describes no actual run, so the per-seed values matter more than the average.

Referenced by (22 direct, 12 transitive)
Definition: catastrophic interference \@{catastrophic-interference}

the loss of an already-learned rule caused by later training, as opposed to never having learned it. It is read off the waypoints: accuracy that rises and then falls as training continues shows the rule was present and then overwritten, which is what happens when an annealing schedule spends its tail near uniform α.

Referenced by (12 direct, 243 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Definition: erosion (also: post-peak erosion) \@{erosion}

the slow decline of agreement accuracy over continued training after its peak, as distinct from the abrupt collapse of catastrophic interference. It is confined to generalization — the mismatch conditions drift back toward recency while seen_match stays at the ceiling — and it acts as a gradient rather than a threshold, strongest when the late α sits near uniform but measurable even under maintenance at α = 1.0 or 1.4 after a peaked start. Deeper models erode sooner, which is what gives training an optimal-stopping window in time rather than a plateau.

Referenced by (22 direct, 233 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Definition: deep-uniform \@{deep-uniform}

exposure to α at or near 0, roughly α ≤ 0.4, where the noun-verb pairings approach uniform. Training there erases a learned agreement rule rather than merely failing to build one: a sustained deep-uniform tail collapses unseen_mismatch below chance as the model flips to recency, the catastrophic interference of the annealing experiments, and even brief visits — four 75-step bursts to α = 0.0 — keep the rule from consolidating, where the same bursts to α = 1.0 are largely tolerable. The damage weighs by position, the final segments counting most because little training remains to repair them, and it is partly reversible by a later moderate stage.

Referenced by (17 direct, 239 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Transitive (depth 12):

Definition: maintenance \@{maintenance}

the phase of a schedule after the rule has been built, and the α it trains at — the maintenance diet — which decides whether the rule is held or eroded. The diet's α orders the endpoint: holding at 1.4 erodes least, 1.0 more, and a deep-uniform tail destroys the rule outright; yet no diet tried preserves a peaked start's early peak, since even maintenance at α = 1.4 finishes below a model that trained there throughout. The curriculum work's reading is that a peaked start buys speed to the peak, not the endpoint — capturing it would mean stopping at the peak rather than feeding more of any α.

Referenced by (6 direct, 250 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Definition: undertraining \@{undertraining}

the confound in which a result reflects too few training steps rather than a real limit of the model or the setting. Because most experiments hold the step budget fixed across arms, a low accuracy can mean the arm needed longer rather than that it could not get there; waypoints or a continued run tell the two apart.

Referenced by (19 direct, 243 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Definition: training budget (also: horizon) \@{budget}

the total number of training steps a run is given, written T when a schedule is rendered over it. Most experiments hold it fixed across arms, which is what makes undertraining a live confound; continuation runs probe it directly by extending a finished run's budget fourfold, and the budget-frontier work compresses one schedule shape onto progressively shorter horizons. A longer budget is not simply better: more steps recover a delayed onset, but they also expose the model to erosion once the peak is past.

Referenced by (61 direct, 197 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Definition: capacity (also: model capacity) \@{capacity}

what a model of a given width and depth has room to represent. Too little and there is no room for the agreement rule: a 16-wide model stays at chance on everything, a 32-wide one can hold only the recency shortcut, and a fixed 256-wide embedding asked to span a growing vocabulary loses even the easy conditions once the token inventory outgrows it. More is not simply better either, since the 512-wide model fits its training pairings well while its seeds split over whether generalization is learned at all, a deficit that four times the budget does not close, so it is the width and not undertraining. In the middle of the range, capacity and pairing concentration partly trade off: narrower models need a higher α to leave the shortcut.

Definition: phase transition \@{phase-transition}

a sharp change in what a model learns as a control is varied smoothly, rather than a gradual one. A model can flip from recency to true agreement over a narrow band of α or of model size, so accuracy jumps rather than drifts as that control crosses the threshold.

Referenced by (11 direct, 248 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Definition: onset (also: transition onset) \@{onset}

the training time at which agreement accuracy first rises from its floor toward the learned rule, the start of the phase transition away from recency. In practice it is read as a crossing, the step at which unseen_mismatch first reaches a threshold or a near-peak band, and it is measured per replicate, since a cohort's seeds can arrive at scattered times. The word also names the same edge along the α axis of a sweep, the lowest α at which the transition happens at a given budget; more budget moves that onset left, which is the signature of undertraining.

Referenced by (17 direct, 238 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Definition: saturation \@{saturation}

the flattening of a curve once a quantity has reached its ceiling, so further increases in the control add little. A peak accuracy that already sits near 100 for every arm is saturated, which is why the later φ-landscape work measures speed and consistency instead of height.

Referenced by (18 direct, 10 transitive)
Definition: burst schedule (also: burst) \@{burst-schedule}

a schedule shape used in the φ-landscape study, a descending envelope of α with periodic drops to a low floor and recoveries, the bursts, laid over it. Its parameters are the envelope's start and end, the valley depth each burst falls to, the number of bursts, and the duty fraction of each cycle spent at the envelope rather than in the burst; a staircase fineness K sets how many discrete segments approximate the curve.

Referenced by (26 direct, 7 transitive)
Definition: φ-landscape \@{phi-landscape}

the study campaign that maps how the shape of an α schedule determines the peak of unseen_mismatch: its height, its timing, and its consistency across seeds. Its first phase found the height saturated near 100 per seed, so the later phases score every shape on the pair of per-seed time-to-band and seed coverage instead: a deformation map perturbs the winning burst schedule one parameter at a time, an ascent combines the uphill directions it finds, and a budget frontier time-compresses the winner, which ran into a hard learning floor near 196 steps.

Definition: band and time-to-band (also: band) \@{time-to-band}

a band is a near-peak range of accuracy, for instance 95 and above, and time-to-band is the step at which a run first enters it. It measures how quickly a schedule reaches good performance, separately from the height it eventually reaches, and is taken per replicate then summarized, because a median-curve crossing can hide seeds that arrive at scattered times.

Referenced by (16 direct, 243 transitive)

Transitive (depth 1):

Transitive (depth 2):

Transitive (depth 3):

Transitive (depth 4):

Transitive (depth 5):

Transitive (depth 6):

Transitive (depth 7):

Transitive (depth 8):

Transitive (depth 9):

Transitive (depth 10):

Transitive (depth 11):

Definition: seed coverage \@{seed-coverage}

the fraction of a setting's replicates that reach a target band at all. It is read together with time-to-band, since a fast time over few covered seeds is not a real win. This is a different quantity from the report's replicate-coverage check, which only confirms that every arm ran the same number of seeds.

Referenced by (23 direct, 35 transitive)
Definition: crossing objective (ŝ) (also: ŝ, s-hat) \@{crossing-objective}

the frozen criterion an experiment scores itself by, written as a probability: that a chosen accuracy, usually unseen_mismatch, reaches a target level m_star by a fixed budget of k steps and holds at or above it for w_dwell consecutive waypoints, after an optional w_smooth-point moving average over the waypoint grid. It is declared once and never changed, so every arm is judged at the same bar. Its estimate is ŝ, the fraction of a setting's seeds that meet the criterion; each seed either crosses or does not, so ŝ is a binomial proportion, reported with a wilson score interval and compared across arms with an exact mcnemar test.

Definition: crossing time (also: crossing times, censored, censoring) \@{crossing-time}

the step at which a single seed first meets the crossing objective (ŝ), interpolated between the two waypoints that bracket the crossing rather than snapped to the grid, and read off the same smoothed, dwell-sustained curve the objective uses. A seed whose accuracy never sustains the threshold within the budget k is censored: it has no crossing time, and it counts against ŝ without contributing a number to summaries of how fast the crossers arrived. A median crossing time is therefore read together with seed coverage, since a fast median over few uncensored seeds is not a real win, and its uncertainty comes from a percentile bootstrap.

Definition: confirmation rule (also: re-measurement, dwell, confirmed crossing) \@{confirmation-rule}

what has to happen before a reading above the threshold counts as a crossing time. Two rules have been used and they are not comparable. The dwell rule waited: the accuracy had to sit above m_star at w_dwell consecutive waypoints, which cannot separate a lucky probe from a model that has not moved and charges steps to answer either question, biasing every crossing late. The re-measurement rule, in force from v4, freezes the weights that produced the reading and re-scores them against w_confirm fresh sets of minimal pairs, three by default, so confirmation costs probes rather than training. Every leaderboard row records which rule scored it, because the change moved the whole field earlier by more than most schedule differences.

Referenced by (1 direct)
Definition: survival (also: survival curve, survival-at-budget) \@{survival}

ŝ recomputed at a range of smaller budgets k′ than the one the crossing objective (ŝ) fixes, so a setting is described not by a single pass rate but by how that rate grows as training is given longer. Reading the curve separates two ways of being good that a single ŝ conflates: an arm that crosses earlier reaches a high survival at small k′, while one that crosses more reliably reaches a high survival only at the full budget. Faster and more reliable are different virtues, and the survival table is where they come apart.

Referenced by (2 direct)
Definition: Wilson score interval (also: wilson) \@{wilson-interval}

the 95% confidence interval reported for ŝ. Because ŝ is a binomial proportion over a handful of seeds, the ordinary normal approximation misbehaves when the estimate sits near 0 or 1 or when the seed count is small, exactly the regime these experiments run in. The Wilson score interval stays within the 0-to-1 range and holds its stated coverage there, so it is the interval the objective tables and figures carry for ŝ, in place of the normal approximation.

Definition: exact McNemar test (also: McNemar, exact McNemar) \@{mcnemar-test}

the paired test for whether two arms differ on the crossing objective (ŝ), used because every schedule comparison runs its two arms over one shared pool of seeds. Each seed gives each arm a single crossed-or-not outcome, and only the discordant seeds — those one arm crossed and the other did not — carry any information about a difference; the seeds that agree, crossing in both arms or in neither, drop out. The test asks whether the discordant seeds split evenly between the two directions, an exact binomial on the discordant counts rather than a chi-squared approximation, which is what "exact" names and what keeps it valid at the small discordant totals these shared pools produce.

Definition: percentile bootstrap (also: bootstrap, percentile bootstrap CI) \@{bootstrap-ci}

a confidence interval built by resampling a setting's seeds with replacement many times, recomputing the statistic on each draw, and reading the 2.5th and 97.5th percentiles of those values as the interval. It is used where a quantity has no tidy closed form: the median crossing time over a setting's crossing seeds, and the seed-to-seed spread of a claim's mean or median difference between two arms. Unlike the wilson score interval, which fits the binomial ŝ, the bootstrap assumes nothing about the shape of the distribution, which is why the reports reach for it on times and deltas.

Definition: paired seeds (also: common random numbers, paired difference) \@{paired-comparison}

the design that lets two arms be compared seed by seed rather than distribution against distribution. Every arm in a comparison derives its replicates from one shared base seed, so a given seed means the same initialization and the same batch order in both arms and their difference is measured within it, with the seed-to-seed variation that dominates these cohorts differenced away. A paired interval on the same data is therefore much tighter than an unpaired one, which is why the campaign's claims are adjudicated on paired differences: a McNemar test where the outcome is crossed-or-not, and a percentile bootstrap that resamples seeds and recomputes both arms on every draw where the outcome is a time or a quantile. The pairing holds only within one cohort; arms measured on different seeds have to be compared as distributions.

Referenced by (1 direct)
Definition: Kaplan–Meier estimator (also: KM, KM curve, product-limit) \@{kaplan-meier}

the product-limit estimate of the survival function of the per-seed crossing time: at each observed crossing step the curve drops by the fraction of still-uncrossed seeds that cross there, so seeds censored at the horizon shape the curve without being scored as crossings. All v3 crossing-time summaries (tail quantile q0.9, restricted mean survival time) are read off this curve.

Definition: tail quantile q0.9 (also: q0.9, censored quantile, 90th-percentile crossing time) \@{tail-quantile}

the first step at which the kaplan–meier estimator curve falls to 1−q: the crossing time of the q-th-percentile seed. The v3 objective minimizes q0.9; it is identified only when at most 1−q of seeds are censored, and an unidentified arm ranks below every identified one, ties broken by censoring fraction.

Definition: fitted tail quantile (also: q-hat, censored lognormal fit, Tobit fit) \@{fitted-quantile}

the same 90th percentile as the tail quantile q0.9, read off a censored lognormal fitted to a candidate's per-seed times instead of off the Kaplan-Meier curve: a Tobit maximum likelihood on the log times, censored at the horizon, evaluated at exp(mu + 1.2816 * sigma). Its purpose is availability, since it is defined wherever two seeds crossed while the measured quantile needs nine in ten, and its cost is that it extrapolates, reading a heavier upper tail as a larger scale and pushing the estimate further past the data. It has appeared in three forms, and they are not interchangeable: the leaderboard's own column is a free fit from that row's seeds alone, written once when the row was scored; the v5 driver refits the whole board each round with each candidate's scale shrunk toward the pooled one by its uncensored count, weight 0.375 at six seeds and 0.938 at 150, so a cheap rung is judged mostly on the board's tail and only a deep one on its own; and the v4 surrogate shared a single scale across every candidate, which made its tail score a monotone function of the median and so ranked on the median without saying so. At 150 seeds the first two agree within about a step. None of them agrees with the measured quantile (why they disagree).

Referenced by (1 direct, 1 transitive)

Transitive (depth 1):

Definition: restricted mean survival time (also: restricted mean) \@{rmst}

the area under the kaplan–meier estimator curve up to the horizon B — equivalently the mean of min(T, B) over seeds. Defined under any censoring level, so it is the primary paired confirmation statistic; it under-weights the tail relative to tail quantile q0.9, which is why it is never the selection criterion.

Definition: restricted CVaR (also: CVaR, conditional value at risk) \@{restricted-cvar}

the mean of min(T, B) over the slowest 1−q fraction of seeds — the tail complement to restricted mean survival time: the expected cost of the bad tail, computable even when stalled seeds make the unrestricted tail mean infinite.

Definition: log-rank test (also: log-rank, weighted log-rank, MaxCombo, Fleming–Harrington) \@{log-rank-test}

a two-sample test comparing whole crossing-time survival curves under censoring. Fleming–Harrington weights emphasize early or late differences; MaxCombo takes the largest of four weighted statistics with a multiplicity-correct null. Reported as support only: seeds are paired across arms, which log-rank ignores.

Definition: almost stochastic order (also: ASO, dominance) \@{stochastic-dominance}

a distribution-level comparison (Dror et al. 2019): the fraction ε of quantile mass on which one arm fails to dominate the other. εmin < 0.2 is the campaign's pre-registered decisive-win criterion — earlier at essentially every quantile, not just on average.

Definition: Luby restarts (also: restart policy, random restarts, restart baseline) \@{luby-restarts}

training restarted from a fresh seed whenever the current run has not crossed within a cutoff, cutoffs following the universal Luby sequence (1, 1, 2, 1, 1, 2, 4, …) scaled by a quantum. The classical remedy for heavy tailed runtimes, and therefore the mandatory control for any claim that a schedule truncates the tail.

Definition: log--log CCDF (also: log-log complementary CDF, log-log survival plot, CCDF) \@{log-log-ccdf}

the complementary cumulative distribution P(T>t), here the probability that a seed has not reached the confirmed crossing time by step t, drawn with logarithmic scales on both axes. A straight tail is consistent with a pareto tail; a tail that bends downward is lighter. The plot is a diagnostic rather than a verdict: right-censored seeds provide only the fact that T exceeds the horizon, so an apparently flat unresolved end cannot by itself establish a power law. The reports therefore pair this picture with censored likelihood fits and aic-gated model selection model selection.

Referenced by (4 direct, 2 transitive)
Definition: exponential tail (also: exponential model, memoryless tail, constant-hazard tail) \@{exponential-tail}

the light-tail reference model in which the remaining wait has a constant hazard: conditional on a seed still not crossing, its chance of crossing in the next interval does not depend on how long it has already waited. Its CCDF is straight on a semilog plot and curves downward on a log--log ccdf. The tail-fitting code estimates it by censored maximum likelihood above the same threshold as the competing lognormal tail and pareto tail models.

Referenced by (3 direct, 3 transitive)
Definition: lognormal tail (also: lognormal model, log-normal tail) \@{lognormal-tail}

a positive-time model in which log⁡T, rather than T, is approximately normal. It can produce a long right tail and is heavier than an exponential tail, but it is not a power law: its log--log ccdf eventually bends rather than remaining straight. It is included because multiplicative seed-to-seed slowdowns can look heavy-tailed over a finite training horizon without following a pareto tail.

Referenced by (2 direct, 4 transitive)

Direct references:

Transitive (depth 1):

Transitive (depth 2):

Definition: Pareto tail (also: Pareto model, tail index) \@{pareto-tail}

a power-law model with P(T>t)∝t−α above a fitted threshold. It appears as a straight line of slope −α on the log--log ccdf; smaller positive α means a heavier tail and more extreme slow seeds. A fitted Pareto is evidence for a power-law account only when censoring is handled in the likelihood and it passes the aic-gated model selection comparison against the exponential and lognormal alternatives.

Referenced by (4 direct, 2 transitive)
Definition: AIC-gated model selection (also: AIC gate, delta AIC) \@{aic-gated}

the rule that keeps a small numerical model preference from becoming a substantive tail claim. Exponential, lognormal, and Pareto tails are fitted by censored maximum likelihood to the same observations and threshold, then compared with Akaike's information criterion, which penalizes extra parameters. Lower AIC is better, but ``lowest'' is not enough here: a non-exponential model must beat the exponential tail by at least 10 AIC points before the campaign calls the tail heavier than exponential. If that pre-registered margin is not met, the heavy-tail gate fails even when lognormal or Pareto has the smallest AIC.

Referenced by (3 direct, 3 transitive)
Definition: heavy tail (also: heavy-tailed, power-law tail, tail truncation) \@{heavy-tail}

a crossing time distribution whose survival falls slower than any exponential — some seeds finish fast, some effectively never. Diagnosed on the log--log ccdf with censored maximum-likelihood fits comparing an exponential tail, lognormal tail, and pareto tail, subject to aic-gated model selection model selection. These diagnostics also distinguish a genuine heavy tail from a bimodal fast/stalled mixture (seed bimodality).

Referenced by (1 direct)

Direct references:

Definition: successive-halving ladder (also: ladder, rung, promotion) \@{successive-halving}

the budget policy a schedule search runs under: every candidate is measured at a small number of seeds, the fastest third advance to a larger cohort, and the survivors advance again, with rungs of 6, 20 and 60 seeds in v4 and 6, 20, 60 and 150 in v5. Cohorts are nested, so a promotion trains only the seeds the candidate does not already have, and the saving is the point: v4's 400 candidates cost 5,024 seed-runs against 24,000 at a flat budget. The cost is that promotion decisions are made at the depth where every estimator is least trustworthy, so the ladder interacts with the choice of measure rather than being independent of it (why that matters), and a candidate that loses its promotion is not reconsidered later.

Definition: winner's curse (also: selection bias, shrinkage, winner's-curse gap) \@{winners-curse}

search selects the arm whose measured score is most inflated by noise, so the selected arm's held-out score drops. The campaign reports the search-to-holdout gap and an empirical-Bayes shrunk advantage beside the raw one; a negative gap is flagged as a realization artifact.

Referenced by (1 direct, 2 transitive)