SR2 with a learned per-token damping ratio ζ(h): 1.7% behind SR2, the oscillation kept (Gen 3)

The question of this collection: the conservative core of Semantic Simulation integrates each token as a damped particle, and until now the damping was one constant, γ₀ = 0.1, in every direction. What happens when the stiffest directions of the potential, the modes that oscillate inside a layer step, are damped harder, by a fixed rule or by a rule the model learns token by token? Each arm is SR2 with one change to its damping.

This model: SR2 with a learned per-token damping ratio ζ(h): a small head reads each token's state and sets how hard its stiff modes are damped, starting at SR2's own damping. Verdict: 1.7% behind SR2 (59.29 against 58.32). Free to choose, the model added moderate damping (median ratio 0.56 at layer 0, 0.36 at layer 1), kept the oscillation, led SR2 while the learning rate was high and lost the lead in the decay. the position-dependent-damping collection holds the damping axis; the Gen 3 collection holds the OpenWebText ladder; the first-vs-second-order collection holds the first-order twins.

Result: the damping axis

arm damping of a typical token's stiffest mode settled perplexity against SR2
SR2 light: γ₀ = 0.1, total ratio about 0.03 58.32 —
learned ζ(h) (this model) moderate: total ratios about 0.59 (layer 0) and 0.39 (layer 1) 59.29 +1.7%
FO-b the overdamped limit: no velocity in any direction 61.16 +4.9%
SR3-crit critical: total ratio about 1.03 63.28 +8.5%

More damping of the stiff modes, worse settled perplexity; SR2's light damping is the best point measured. All four are the same architecture, corpus, schedule and seed.

  • This model: settled 59.29 (mean of the last three evals, 59.16, 59.33, 59.38); best 57.31 at step 31,000. Validation perplexity at block 512.
  • Trained on exactly 532,480,000 tokens (32,500 steps × 32 × 512), the Gen 3 ladder's budget and schedule, seed 0.
  • Pre-registered (protocol §5.13): GH7, within 2% of SR2, called 55%: HIT (+1.7%). GH6, median ζ below 0.3 at both layers, called 60%: MISS (0.56, 0.36). GH8, beats SR2 by 1% or more, called 25%: MISS. GH9, one layer's median at least 3 times the other's, called 40%: MISS (1.6). GH2, |correlation of ζ with the anharmonic fraction| below 0.2 at both layers, called 55%: MISS (+0.27, −0.17).
  • Run health: 0 watchdog triggers, 0 spike captures; SCAF leak monitor CLEAN at every audit; largest gradient norm 1.16.

What the damping does here

SR2 integrates, exactly, the 16 stiffest directions of each token's potential as damped oscillators at one base rate γ₀ = 0.1, a light damping (ratio about 0.03 on a typical token's stiffest mode). This model adds a damping head: a linear map from the token's state (384 numbers) to 64 hidden units, a GELU, and a linear map to one number s(h); 24,705 parameters. The ratio is ζ(h) = 0.005 × exp(s(h)), capped at 10, and each stiff mode i is damped at the rate γ₀ + 2 ζ(h) ωᵢ, inside the same exact flow SR2 uses; every other direction keeps γ₀.

  • It starts as SR2. The head's last layer is initialised to zero, so ζ = 0.005 for every token at the start (a total ratio of about 0.03 on the stiffest mode, against SR2's 0.026). At initialisation the model is bit-identical to SR3's form at that fixed ratio, which the verification checks.
  • It can only add damping. The exponential keeps the added rate positive, so the damping never falls below SR2's; the log parameterisation moves ζ multiplicatively, so critical damping was a few thousand steps away where the loss favoured it.
  • One head serves both layers, reading each layer's input; ζ is computed once per layer step and held fixed through it.
  • Its own clip group (gradient-norm bound 0.3).

What the head chose

reading layer 0 layer 1
median added ratio ζ, settled 0.56 0.36
10th–90th percentile over tokens 0.44–0.70 0.21–0.49
tokens above ζ = 1 (overdamped) 1.5% 0.7%
total ratio of a typical token's stiffest mode about 0.59 about 0.39
median ω·Δt of the stiffest mode (SR2: 8.93 / —) 10.16 6.56

Both layers first drove ζ below its start (to about 0.002 by step 2,500), then layer 0 rose to 0.56 by step 20,000 and layer 1, later and less, to 0.35 from step 25,000. Moderate damping, well short of critical: at the settled ratio a typical token's stiffest mode keeps about 1% of its amplitude through a layer step and still turns about one full rotation. The wells stiffened where they were damped (layer 0 has the stiffest wells measured on this base).

What sets ζ(h) (the trained head read token by token, Spearman rank correlation):

against layer 0 layer 1
unigram surprisal (how rare the token is) +0.56 -0.19
anharmonic fraction ε (M1) +0.27 -0.17
frequency of the token's stiffest mode -0.28 +0.36
position in the sequence +0.08 -0.17
next-token loss -0.12 -0.08

At layer 0 the head keys mainly on how rare the token is (rarer tokens are damped more); at layer 1 on the stiffness of the token's stiffest mode. The pre-registered call that ζ would be independent of the local anharmonic fraction (GH2) missed.

The damping dial (the trained ζ(h) replaced by c × ζ(h) at inference, weights fixed; change in perplexity against c = 1):

c 0 0.1 0.25 0.5 0.75 1 1.25 1.5 2 3 5 10
both layers +82.3% +58.4% +30.4% +8.9% +1.8% 0 +1.5% +6.1% +25.4% +101.4% +292.5% +715.4%

The minimum is at the trained damping: the head is not past its own optimum. The optimum is sharp (about ±25% in c costs under 2%) and steeper toward heavy damping (doubling +25%, halving +8.9%); nearly all of the reliance sits at layer 0 (its added damping removed: +70%; layer 1's: +6.7%). Reliance on fixed weights, not need.

How the gap formed

step phase SR2 this model against SR2
500 warmup 461.81 461.71 −0.0%
5,000 constant 108.37 106.91 −1.3%
10,000 constant 85.96 82.32 −4.2%
15,000 constant 76.83 74.33 −3.3%
20,000 constant 70.82 69.62 −1.7%
25,000 decay 65.92 65.75 −0.3%
30,000 decay 58.07 58.88 +1.4%
32,500 decay, end 58.32 59.38 +1.8%
  • Ahead through the stable phase: at 50 of 65 evaluations, by up to 4.7% (step 9,500), a mean of −0.029 nats over steps 5,000–21,000.
  • Level by step 22,500, behind from 25,500: from step 21,000 to the end SR2 gained 0.196 nats, this model 0.171; the whole settled deficit forms in the decay.
  • A caveat on the lead. Building the head draws random numbers that shift the initialisation of the parameters built after it, so this run did not start from SR2's exact initial weights (51 of the 89 shared tensors differ at the same seed); the data order is the same. The early lead is therefore not attributed to the head, and the +1.7% sits inside an unmeasured seed spread.

Where the model differs from SR2

reading SR2 this model
ω·Δt of a typical token's stiffest mode at the endpoint (median over tokens, Cell 6b-13) 7.55 7.82
the same, layer 0 / layer 1 8.93 / — 10.16 / 6.56
share of those readings past the explicit-integrator wall (2.0) 99.7% 96.9%
context channels' decay rates at the end of training 0.386, 0.521, 0.887, 0.981, 0.995 0.378, 0.467, 0.879, 0.986, 0.991
share of the layer step carried by the kick, layer 0 / layer 1 0.37 / 0.51 0.54 / 0.63
velocity reset at inference (Gate 1) +3.9% +4.3%
one extra layer at the trained Δt (Gate 2) +35% +49%
eight layers (Gate 2) +567% +1,133%
refinement at three steps, Gate 3 (nats) 0.405 0.747
distance of the step from the V_θ geodesic, R(geo) (Cell 6b-9) 0.62 0.48
V_φ's share of that distance -0.002 -0.001

The added damping did not make the model less reliant on its velocity (Gate 1 +4.3%, SR2 +3.9%); depth extension sits between SR2 and critical damping; refinement is the worst of the second-order arms, because a head trained on the states of a Δt = 4 step sets a different damping at a finer step. The step is closer to the V_θ geodesic than SR2's.

The per-layer flow

Refining each trained layer's share of the integration time into N/2 substeps with the quadratic frozen at the layer's input (debug/refinement_flow_confirmation.py, batch seed 20261009), against the trained step repeated at the finer Δt:

N 3 4 6 8 12 16
per-layer flow, perplexity 127.08 75.17 73.75 74.63 75.82 76.73
penalty over N = 2 (nats) 0.816 0.291 0.272 0.284 0.300 0.312
the trained step repeated 452.24 at N = 8 (2.086 nats)

The flow levels off about 0.31 nats above the trained step, where critical damping drifts to and far from SR2's converged 0.104: moderate learned damping costs as much refinement as critical damping.

Across the damping axis (per-layer flow at N = 16, nats above the trained step): SR2 0.104, converged; learned ζ(h) 0.312, levelling off; SR3-crit 0.300, drifting; FO-b 0.904, not converging. Only the lightly damped model's trained step closely samples a convergent flow.

Reproducing

colab_fock_cfc_baoab_lowrank_depth_ladder_openwebtext_d384.ipynb, Cell 0 changed from the defaults:

REVERSE_CHANNEL=False, VPHI_GRAD_PATH='live', XI_GRAD_PATH='live',
LOWRANK_DAMPED_FLOW=True,
LEARNED_DAMPING_RATIO=True, DAMPING_RATIO_INIT=0.005,   # tag 'gzh': zeta(h) = 0.005 * exp(head(h)), capped at 10
DAMPING_HEAD_HIDDEN=64, DAMPING_HEAD_CLIP=0.3
VPHI_ANALYTIC_FORCE=True, LAYER_CHECKPOINT=False   # speed switches, same arithmetic

Run Cells 0, 1, 1b, 1c, 1d, 2, 3, 4, 5, 5b and 6, then 8, 7, 6b-7, 6b-13 and 6b-9. Cell 5b prints a damping block (LEARNED DAMPING RATIO) and the training loop prints the per-layer median ζ and the fraction above 1 every 50 steps. The switch verification is debug/verify_sr3_switch.py and debug/verify_gzh_switch.py; the per-layer flow is debug/refinement_flow_confirmation.py; the dial and the token-by-token readout are debug/d3_damping_dial.py and debug/d1_zeta_readout.py (all CPU).

Training artefacts were written to semsimula_fock_cfc_baoab_owt_xi5long_topk16_dt32da16_mh4_aniso_dcvt5x8_vtjoint_cgqk_norc_vplive_xilive_sr2_gzh_L2probe_ob_untied_wsd_e5c_plgate_rep0.05_fockreg0.005_g0.1_baoab_cfc_lowrank_idt4_lr0p0012_noattn/.

Glossary

term meaning
settled PPL validation perplexity at block 512, the mean of the last three evals (steps 31,500–32,500). Best is the lowest single eval
Gen 1 / Gen 2 / Gen 3 the model generations. Gen 1: explicit integrators. Gen 2: the CfC/BAOAB ladder with the sources of Vφ and ξ (and of an exchange field) detached, which keeps every force causal, but no loss gradient ever reaches an earlier token through them. Gen 3: the same forward pass with those gradients live
live / detached gradients whether the loss gradient flows into the earlier tokens that act as sources of a force. Detaching changes no forward value; it only cuts that backward path
Vθ the learned scalar potential on a token's state h, given its context ξ: a bank of anisotropic Gaussian wells. Its negative gradient is the conservative force on the token
Vφ a pair potential between a token and a few selected earlier tokens (sparse top-k)
ξ the causal context channels: exponential moving averages of earlier states at several horizons, which condition Vθ
Fock mechanism, registers, reverse channel a pool of register particles, created and destroyed from the token context. The reverse channel is the register-to-token force; it is not the gradient of any potential on the tokens, so it is the model's non-conservative part
exchange field an attention-like token-to-token interaction added to the conservative core. Each token is pushed by earlier tokens through learned query, key and value projections, as in attention. The ladder tests it in two forms, attention and attention_potential
attention (non-conservative exchange field) the exchange term enters as a force directly. It is not the gradient of anything, so the step stops being a geodesic step
attention_potential (attention as a potential) the same interaction written as a scalar potential whose gradient is the force. The routing weights are computed from the hidden states and held fixed with respect to the state being moved, so the force stays an exact gradient and the model stays conservative
no-exchange (LADDER_MECHANISM = 'none') the arm with no exchange field at all: Vθ, Vφ and ξ, plus the Fock register mechanism unless the arm is conservative-only
live exchange field (RELAX_GRAD_PATH = 'live') attention_potential with the identical forward force written out over live tensors, so the loss gradient reaches the field's sources and routing. In Gen 2 these were detached, and the field sent no gradient into any hidden state
Gen 2 probe a Gen 2 arm retrained with one gradient path changed, to test a hypothesis before the full Gen 3 ladder. The live-exchange-field probe (attention_potential with RELAX_GRAD_PATH = 'live', the full 32,500 steps) is the one that found the gradient starvation
gpt2-matched the reference transformer: GPT-2 architecture, d = 384, L = 8, tied embeddings (33.7M parameters), trained on the same tokenizer, corpus, batches and token budget. Shared by Gen 2 and Gen 3
tag components (vplive, xilive, rglive, norc, L4probe, idt…) pieces of the run's variant tag, so that every configuration gets its own Drive folder: live Vφ sources, live ξ, live exchange field, no reverse channel, the depth L, and the integrator step Δt
conservative-only a model in which every force is a gradient: no reverse channel and no non-conservative exchange field
CfC/BAOAB low-rank propagator the integrator. Each layer step is split into position (A), force kick (B) and friction (O) substeps, and the stiff harmonic modes of Vθ are integrated exactly in closed form
ω·Δt, θ a stiff mode's frequency times the step size. Past 2, an explicit integrator would be unstable (the wall); the closed-form propagator is not. θ/sin θ is the factor by which a split step's dissipation depends on the mode's phase, largest near θ = π
geodesic step, R(geo), share the step a damped particle would take under Vθ alone; R(geo) is the distance of the real step from it, relative to the step's length. A component's share is how much it moves that distance (6b-9 attribution)
Gates 1–3, FLOW / MAPS see Terms in the geometry section
CG1–CG7, 6b-N the CfC-geometry experiments, and the ladder-notebook cells that run them
SCAF, Tier A, Tier B the in-flight causal-leak monitor. Its core test changes future tokens and requires the logits at earlier positions to stay bit-identical. Tier A asks the same of the hidden states, as 1 − cos between the clean and perturbed state at each earlier position and layer. Tier B asks whether the perturbation moves any earlier state into a different dominant Vθ well (the basin-crossing rate). All three read 0 for a causal model
leak tax, prefix-only the loss difference between scoring a position with only its prefix and with the full sequence; about 0 for a causal model
clip-hit the share of logged steps whose gradient norm exceeded the clipping threshold (1.0)
pre-registered a prediction recorded, with its threshold, before the run

Files

path what
README.md this card
config.json architecture, training, the damping switch, result and diagnostics
checkpoints/fock_cfc_*noattn_best.pt weights at the best eval (step 31,000), optimizer state stripped
results/ the training log and full run outputs, Cells 6b-7, 6b-13 and 6b-9, the per-layer flow, the dial and the token-by-token readout
code/ the notebook and the model code the switches belong to

Companion notes

note what it covers
Tech_Report_Position_Dependent_Damping_CfC_BAOAB.md the technical report: the theory of position-dependent damping on the exact integrator, the parameterisations, the implementation with code excerpts, the results and the open programme
Depth_Ladder_and_Matched_Baseline_Protocol.md §5.13: the damping arms' pre-registrations, amendments and scored results
Position_Dependent_Damping_and_Reinforcement_Field.md the earlier note (Gen 1), kept as the record the pre-registrations cite

Caveats

  • One seed per model. The seed spread, the yardstick for a gap under 3%, has not been measured (a second seed of SR2 is first in the queue).
  • This run and SR2 do not share initial weights (see the caveat on the lead above).
  • L = 2, d = 384, 0.53 billion tokens, OpenWebText. Everything here is at one scale on one corpus; in three of four comparisons the second-order arm gained more in the learning-rate decay than its comparison, so a longer run could move the gaps.

Citation

@misc{Gueorguiev2026SemSim,
  author    = {Gueorguiev, Dimitar P.},
  title     = {Semantic Simulation: A Prescriptive Lagrangian Framework
               for Semantic Inference --- Conservative Potentials,
               Conservative and Non-Conservative Memory, and Competing Mechanisms},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.19712427},
  url       = {https://doi.org/10.5281/zenodo.19712427},
  note      = {Version v25 (Nov 9, 2026).
               Companion code repository (DOI 10.5281/zenodo.24066016):
               \url{https://github.com/dimitarpg13/semsimula-paper}}
}

Card generated from _ladder/ladder.json on 2026-11-08.

Downloads last month
434
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train dimitarpg13/semsimula-ladder-live-owt-d384-l2-none-norc-sr2-gzh

Collection including dimitarpg13/semsimula-ladder-live-owt-d384-l2-none-norc-sr2-gzh

Evaluation results

  • Validation perplexity at block 512, settled (mean of the last three 500-step evals at block 512) on OpenWebText
    validation set self-reported
    59.290