From "Why Geometry Does Not Compress Weights" — to the architecture that creates this asymmetry.

Date: 2026-09-16 · Author: Millog · License: CC BY-SA 4.0

Data and code: cmq_experiment/tied_vs_untied/ (experiments H1–H4, Exp5–7), cmq_experiment/results_v6/ (quantization study)


Abstract

We test the hypothesis that weight tying — an architectural constraint standard in small LLMs — acts as an implicit regularizer: gradient interference on the shared input/output matrix deforms the embedding space into an anisotropic cone, and the network compensates by building a low-dimensional attractor ("dynamic hourglass") somewhere deep in the stack. We measured this directly on six local base models ranging from 0.135B to 5.12B parameters, including a tied-vs-untied control pair (Qwen2.5-0.5B and TinyLlama-1.1B) where the constraint is removed in one of the two models.

Results: (1) no gradient opposition exists — the paths are orthogonal everywhere (|cos| ≤ 0.023); interference manifests as dominance of one path ("tyranny of the output" in 4 out of 6 models, inversion to the input path in Gemma). (2) The hourglass is confirmed on 5 out of 6 models; the compressed zone covers up to 62% of stack depth — the "neck" is not a single layer but a wide band. (3) The spectral asymmetry "law vs trajectory" is confirmed: full-rank dense weights against low-dimensional activations — this is the mechanism behind the failure of geometric weight compression in our previous study. (4) Cross-model analysis shows generational drift of the shape of low-dimensional zones: from an early bottleneck at the input (Qwen2.5, TinyLlama), through centered hourglasses (SmolLM), to blending of compressed layers in the waist (Qwen3-4B — three minima L7/L11/L17) and further into a distributed regime without mid-stack compression (Gemma-4, sliding-window attention). (5) The "pressure of mass" hypothesis is locally falsified up to 8192 tokens: neither quality degradation nor lost-in-the-middle reproduces — geometry is flat with respect to context length.


Introduction

Computational Meat and the Illusion of Understanding

Language is "computational meat." To understand its architecture, one has to stop asking "what does the model do?" and start asking "how does it compute that?". We cannot look inside a neural network as we would into program code, but we can measure its internal states.

This article continues my previous study "Why Geometry Does Not Compress Weights" (see cmq_experiment/results_v6/). There I showed that LLM activations lie in a narrow cone: 90% of the energy is in ~1–3 principal components, while the weights are full-rank and dense. All geometric weight-compression techniques (Hadamard rotation, Lloyd-Max, conic decomposition, QJL) yielded zero or negative; the only working lever — data-adaptive error compensation (GPTQ). The final formula: weights = law of dynamics, activations = trajectory on a low-dimensional attractor.

But the main question remained: what creates this asymmetry? Why does training lead to dense weights and narrow representations? I proposed an architectural-origin hypothesis: tying the input and output matrices is an implicit regularizer that deforms the embedding space into a cone. And if this cone exists, then somewhere deep in the network must "compress" information down to low dimensionality, and at the output "expand" it back out. That is what dynamic hourglass means: not a static structure of weights but a pattern that emerges when data passes through the model.

In this article we test four hypotheses from which this picture follows:

  • H1 — Gradient interference. If the input and output matrices are one and the same, then gradients from the input path (embedding) and the output path (lm_head) interfere on the shared matrix. This creates an optimization conflict: the input path pulls embeddings in one direction, the output path in another. The result is anisotropic deformation of the embedding space.
  • H2 — Hourglass. If the space is compressed at the input (cone), then somewhere in the middle of the network must occur "expansion" to full dimensionality so that the model can process information, and afterwards a "compression" back for output. This creates an effective-dimensionality profile across layers: narrow → wide → narrow.
  • H3 — Spectral asymmetry. Weights should be full-rank (high effective dimensionality) and activations low-dimensional (low effective dimensionality). This is a direct consequence of H1 and H2: weights are encoded as "law" (dense, cleaned by training), while representations — as "trajectory on an attractor".
  • H4 — Pressure of mass. If the model uses low-dimensional representations to save compute, then as context grows it should degrade more strongly than a model with full-rank representations. This is the "lost in the middle" prediction as a geometric effect: a low-dimensional space cannot hold information from all positions of a long context.

Experimental design: for each hypothesis there is a direct measurement (tied-vs-untied control pair) and a cross-model extension (6 models from 0.135B to 5.12B). Result: two hypotheses were confirmed (H2 — on five out of six models, H3), one was confirmed in an anomalous form (H1: not gradient opposition but tyranny of one path), and the fourth is locally falsified (H4). The cross-model extension yielded a new result — a quantitatively describable drift of hourglass shape across architectural generations: from early bottleneck to centered hourglasses with blending of compressed layers, and further.

Starting Point: Why Geometry Does Not Compress Weights

So that this article reads as a continuation, let me fix what is already known from the previous study (CHMC v1→v6, results_v6/).

We tried to apply the conic geometry of activations to compression of the weights themselves: weighted SVD along the cone, adaptive ranks, covariance corrections. The path ran from collapse (ratio 4894× in v1) to parity (~1.18× in v6 at equal bit budget BPW = 4.2875 — exactly GPTQ's budget). Result on three models: SmolLM — parity with GPTQ (mean 1.179–1.186 against 1.176), Qwen2.5-0.5B — loss (single run, 1.174 against 1.141), TinyLlama-1.1B — a real win of more than 30σ (1.059 against 1.081).

All geometric techniques on weights failed: Hadamard rotation — ratio 2.23×, Lloyd-Max — 1.35× at baseline 1.21×, Cone-Aware — 2.15×, QJL — PPL 267/228 (theoretical error bound √(1−1/4) ≈ 87%). The only working lever — dampening of the Hessian estimate (λ=0.05, −4%), i.e., noise control rather than capturing geometry. Across the ensemble of 124 experiments the only flag with a positive correlation to success — dampening (+0.40); all geometric flags are around zero or negative. Low-rank drift correction was falsified against a pre-declared criterion: d90 of drift = 227–792 instead of expected <50.

The key spectral facts that this article explains architecturally: activations — a narrow cone (d90 ≈ 9 out of 576 dimensions in SmolLM, mean cosine ≈ 0.75; in middle blocks up to 98.9% of variance lies in three principal components against 13–43% at the edges), weights — dense (minimal effective rank 29–30, median ~60). The question we pose here: where does this asymmetry come from? If it were a property of data or function, geometric weight compression should work. It does not — so the source lies in model architecture, and the main candidate at architectural level is weight tying.


Part 1. Philosophy of the Hourglass

Working Metaphor

Imagine a transformer as a dynamic system: input embedding → L transformer blocks → output lm_head. If we represent the "dimensionality" of data at each step, we expect a pattern: narrow (embeddings in a cone) → wide (information is processed in full dimensionality) → narrow (output back into the cone). This is the hourglass.

Important: this is not a static structure of weights but a pattern of representations as data passes through. The weights may be full-rank everywhere, while representations are low-dimensional at the edges and high-dimensional in the middle. The hourglass is a property of the function, not of the parameters.

Why This Is Better Than "Superposition"

The mechanistic-interpretability literature has the concept of "superposition": a model packs more concepts than dimensions by overlapping directions. That explains why weights are dense and full-rank. But superposition is a static model: it says what is encoded in the weight matrices.

The hourglass is a dynamic model: it tells how data flows through the network. It explains not only the density of the weights (the law must be complete to hold the trajectory) but also the low dimensionality of activations (the trajectory lies on an attractor), and the linear accumulation of error under quantization (perturbed dynamics deflects the trajectory, but the attractor pulls it back — divergence is linear, not exponential). One dynamic picture explains all three observations; static superposition — only the first.

The Memory Paradox

If representations are compressed to low dimensionality, how does a model remember long context? The KV cache stores keys and values in full (or nearly full) dimensionality — memory is not compressed as aggressively as computational states. This predicts: as context grows, pressure on low-dimensional representations should grow, because information from all positions must "pass through" the narrow waist of the hourglass. If the model copes — then either the waist is wide enough or memory bypasses it. We will check this in H4.


Part 2. Data and Protocols

Models

Six local base models from three families (Llama/Qwen/Gemma), all measured on physical GPU 1 (cuda:1 hardcoded in the scripts); fp32 where memory allows (VRAM 15.93 GiB), otherwise bf16. Gemma uses an isolated environment .venv-gemma4 (transformers 5.17.0), since its architecture is incompatible with the transformers of the other models; the vision module was excluded from all measurements.

Model Architecture Parameters (exact) hidden Layers Tying? Vocab max_pos
smollm-135m LlamaForCausalLM 134,515,008 576 30 yes 49,152 2,048
qwen2.5-0.5b Qwen2ForCausalLM 494,032,768 896 24 yes 151,936 32,768
tinyllama-1.1b LlamaForCausalLM 1,100,048,384 2048 22 no 32,000 2,048
qwen2.5-3b Qwen2ForCausalLM 3,085,938,688 2048 36 yes 151,936 32,768
qwen3-4b Qwen3ForCausalLM 4,022,468,096 2560 36 yes 151,936 40,960
gemma-4-e2b Gemma4ForConditionalGeneration 5,123,178,979 1536 35 yes 262,144 131,072

Control pair: Qwen2.5-0.5B (tied) and TinyLlama-1.1B (untied) — the only model in the sample without weight tying; its input matrix (wte) and output matrix (lm_head) are separate, which allows measuring H1 "before" and "after" the regularizer.

Corpus: 4 markdown documents of the cmq_experiment project (README.md, PROJECT.md, FINAL_REPORT_v4.md, report.md). Token pool: up to 8599 (Qwen tokenizer) / ~10080–10082 (Llama family); the difference in pool size — different BPE vocabularies cut the same text into a different number of pieces. The whole corpus fits into the context of models with max_pos ≥ 32k; SmolLM and TinyLlama (max_pos = 2048) used a corpus window — hence their length L=2048 in Exp6.

Measurement Protocols

  • Exp7/H1. 128 tokens. G_total — backward of the built-in CE-loss. G_in — frozen clone of lm_head, backward of CE over the input path (only embeddings updated). G_out — no_grad hidden states + a fresh copy W', manual CE with HF shift (only output matrix updated). For untied models both gradients are taken in one backward. Proxy: per 128 tokens, cosine between the qkv0 perturbation from the embedding update and the perturbation from the weight update is computed — direct measure of conflict on shared weights.
  • Exp5/H2. For each layer (levels 0..L, where level 0 = embeddings) a context of 2048 tokens is taken, hidden states are centered, exact SVD; PR = number of principal components for 90% variance. Neck = argminimum of the centered profile (PRc). Anisotropy — mean cosine between pairs of vectors of the layer (raw and centered).
  • Exp3/H3. Exact SVD of gate_proj weights at the neck and incoming activations; k95(weights) against k95(activations), energy of top-10/top-3 singular directions.
  • E4b (H4, geometry). E_DC = N·‖x̄‖²/Σ‖vᵢ‖² — share of DC-energy (common direction) in last-layer states; two conditions: prefix (coherent corpus) vs mixed (shuffled blocks of 256 tokens), N ∈ {100, 1000, 4096, 8192}, one model A.
  • E4e/E4f (H4, function). Pattern-completion probe on model A: a unique code (KZVX-9281 + 2 analogs) is embedded into the context at position p; lift = Δlogit(target token vs alternative) minus the control run without the needle. E4e — by length (L ∈ {100, 500, 1000, 2048, 4096, 8192}); E4f — by position: L ∈ {2048, 4096, 8192} × p = 0.05…0.95 (step 0.1) × 3 reps → 90 cells + 9 controls.
  • Exp6 (cross-model). Per-position lift on all six models, positions [0.05, 0.25, 0.45, 0.75, 0.95], 2 reps/cell; Inversion Contrast = Mean Lift(mid) − Mean Lift(edges); > 0 → inverted-U, < 0 → classic U / LiM direction.

All results in _work/exp{5,6,7}_metrics.json, cross_model_results.json and _work/neck_zone_stats.json; summary tables — in SUMMARY.md.

Part 3. Results

Hypothesis 1 — Gradient Interference as Tyranny of the Output

#### Method

For each model we take one run on 128 tokens. G_total is computed by backward of the built-in CE-loss (all parameters are updated). Then two "separate" gradients: G_in — with a frozen clone of lm_head, so that only the input embeddings are updated; G_out — with no_grad hidden states and a fresh copy W', manual CE with the standard HF shift, so that only the output matrix is updated. The cosine between G_in and G_out measures opposition: if the paths conflict on the shared matrix, the cosine must be substantially negative. Proxy measure: for each of the 128 tokens we compute the perturbation of the first qkv0 state from the embedding update (G_in) and from the lm_head weight update (G_out), and take the mean cosine distance — a direct measure of how different directions in representation space pull on shared weights.

#### Control Pair (original Exp1)

Metric Tied Qwen-0.5B (A) Untied TinyLlama-1.1b (B)
cos(G_in, G_out) on the shared W +0.018 (orthogonal) n/a (separate matrices: cos(G_emb, G_lm) = +0.0013)
Norm ratio out/in (lm/emb) 3.754 0.998
cos(G_total, G_out) 0.967 — output path absorbs the full update —
Proxy: effect of emb-update on qkv_L0 +0.007 +0.002

In the tied model the output path dominates by norm 3.754×, and G_total nearly coincides with it (cos = 0.967): the gradient of the input role is "suppressed." In the untied model norms are balanced (ratio 0.998) and paths orthogonal (cos +0.0013): separate matrices do not interfere either. The proxy conflict in both cases is negligibly small (≤ 0.007): shared weights are not "torn" into different directions.

!

01_gradient_interference
Figure 1. Gradient Interference of the Control Pair

Figure 1. Gradient norms and cosines of G_in/G_out on the shared matrix: Qwen2.5-0.5B (tied, output dominates ×3.754) and TinyLlama-1.1b (untied, balanced, orthogonal).

#### Cross-model Exp7: six models

Model Tying? cos(G_in,G_out) / cos(G_emb,G_lm) ‖G_out‖/‖G_in‖ Dominant path Proxy emb→qkv0
smollm-135m yes +0.0155 4.416 output (cos(G_total,G_out) ≥ 0.967) +0.0014
qwen2.5-0.5b yes +0.0183 (original exp1: +0.018) 3.754 (original: 3.754) output +0.0073 (original: +0.007)
tinyllama-1.1b (untied) no +0.0013 (cos G_emb,G_lm) 0.998 (balanced) — +0.0022
qwen2.5-3b yes −0.0061 6.953 output +0.1748
qwen3-4b yes −0.0036 5.496 output +0.2231
gemma-4-e2b yes +0.0229 0.021 — inversion (input dominates) input: ‖G_in‖ = 664 vs ‖G_out‖ = 13.97, cos(G_total,G_in) = 0.9997 +0.1197

Three observations.

First: there is no opposition anywhere. The G_in/G_out cosines lie in the range [−0.006, +0.023] — this is orthogonality within noise. The hypothesis "the input path pulls embeddings against output" is falsified in all six cases: the gradients of the two paths do not conflict; they are nearly perpendicular. Interference on the shared matrix is not a struggle but coexistence.

Second: interference manifests as dominance. In four out of five tied models, the output path dominates by norm ×3.75–6.95 and G_total is nearly identical to it (cos(G_total,G_out) ≥ 0.967). We call this "the tyranny of the output": the shared regularizer does not create a conflict — it makes one of the two paths negligible for the shared matrix. This same direction yields a prediction confirmed by H2: if the output path dictates the shared matrix, then embedding space is optimized for decoding (output) rather than encoding — hence its conicity.

Third: in Gemma-4 the picture is inverted. ‖G_in‖ = 664 against ‖G_out‖ = 13.97, cos(G_total,G_in) = 0.9997 — the input path dominates. Two honest caveats. First, a matrix's gradient norm depends on its size (in Gemma the embedding is 1536×262144 — the largest in the sample), so cross-model norm ratios are not compared directly; only the direction of dominance within a model is comparable. Second, in Gemma4 the output of the embedding passes through scaling (wrapper class Gemma4TextScaledWordEmbedding): the input-path gradient is differentiated through this multiplier, and at large scale ‖G_in‖ grows proportionally to it. This is the natural explanation for the inversion: not "input drowns out output" but that embedding scaling amplifies the input gradient — an interpretation verifiable by reading the scale factor from the model code. To our knowledge, this is the first documented observation of dominance inversion on a shared matrix: in the tied-decoder literature "tyranny of the output" is discussed, its inversion is not reported in any source — the regime requires separate study.

Proxy trend. The proxy conflict grows with model size: 0.0014 (SmolLM) → 0.0073 (Qwen0.5B) → 0.2231 (Qwen3-4B), and in untied TinyLlama it is minimal among the large models (0.0022). The direction matches expectation: the larger the model, the more the input and output paths "diverge" in representation space — but even the maximum of 0.22 is far from conflict; this is a moderate divergence of directions, not opposition.

!

07_geometry_of_paths_8_models
Figure 2. Gradient Interference Across Six Models

Figure 2. Input/output gradient norms and cosines across six models (Exp7): output dominance in four tied models, inversion at Gemma-4.

!

05_embedding_anisotropy
Figure 3. Embedding Anisotropy Against Model Size

Figure 3. Anisotropy of the embedding space (raw and centered) versus size: tied models are deformed into a cone, the single untied TinyLlama — minimal anisotropy.

#### Verdict H1:PARTIALLY CONFIRMED IN ANOMALOUS FORM — reproduces on all six models

Weight tying does work as a regularizer, but the mechanism is not "gradient opposition" but dominance of one path: the shared output path sets the embedding matrix (cos(G_total,G_out) ≥ 0.967 in 4 out of 5 tied models), the input path is marginal. The proxy conflict is small everywhere, but grows monotonically with model size and is minimal in untied TinyLlama — the direction matches the hypothesis. In Gemma-4 dominance is inverted to the input path (embedding scaling), which does not break but refines the picture: the regularizer always picks one winner, but the winner depends on the architecture.

Hypothesis 2 — Universal Hourglass and Its Generational Drift

#### Method

For each stack level (0 = embeddings, 1..L = transformer blocks) we take a 2048-token context, center the hidden states by their mean, and run an exact SVD. PR — number of principal components explaining 90% of variance (raw); PRc — the same for centered states. The hourglass neck = level with minimal PRc. We additionally compute layer anisotropy — mean cosine between vector pairs (raw and centered).

#### Control Pair (original Exp2)

Metric Tied Qwen-0.5B (A) Untied TinyLlama-1.1b (B)
PR(L0) — embeddings 25.88 155.83
PR mid-level (L12 / L11) 1.37 2.12
PR last layer 7.64 30.36
Neck (min centered PR) L4, PR = 1.17 L3, PR = 1.13

Both models give wide–narrow–wide: a broad input end, a narrow neck (PR ≈ 1.2 — practically rank 1), and a broader output end. The TZ criterion — "shape resembles an hourglass" (symmetry not required) — both models pass. Recorded asymmetry (caveat): collapse at the input edge (L3–L4), then a long low plateau, recovery only in the last ~5 layers — Qwen: raw PR peaks ≈91 @ L1, ≈68 @ L22–23; TinyLlama: monotonic growth to 57 @ L21. The neck is nearly identical for tied and untied (1.17 vs 1.13) → the low-dimensional attractor is a property of small LLMs on this context, not specific to tying. This is already a hint that the hourglass shape depends on the architecture, not only on weight tying.

!

02_pr_profiles_control_pair
Figure 4. PR profiles of the control pair

Figure 4. Principal-rank profiles across the Qwen2.5-0.5B (tied) and TinyLlama-1.1b (untied) stacks: wide–narrow–wide, neck L4 (PR 1.17) / L3 (PR 1.13), asymmetry — collapse at the input edge and recovery in the final layers.

#### Necks in Six Models (Exp5)

Model L Neck (level) Neck depth PRc(neck)
smollm-135m 30 L12 40% 1.08
qwen2.5-0.5b 24 L4 17% 1.17
tinyllama-1.1b 22 L3 14% 1.13
qwen2.5-3b 36 L3 8% 1.10
qwen3-4b 36 L17 (middle of the stack) 47% 1.13
gemma-4-e2b 35 L35 (last block before lm_head) no mid-stack 6.00

For Gemma, centered PR stays high across all layers (≈ 33–122) and drops to 6.0 only at the last level: there is no mid-stack collapse; its "bottleneck" sits at the output edge and is ~5× looser than the necks of the other models (PR 6 vs ≈ 1.1).

Embedding anisotropy (raw / centered): smollm 0.349/0.059; qwen0.5b 0.159/0.043; tinyllama 0.022/0.020; qwen3b 0.083/0.021; qwen4b 0.091/0.019; gemma 0.064/0.027. The only untied model has the minimal anisotropy (0.022) — the direction matches H1: without a shared regularizer, the embedding space is not deformed into a cone as strongly as in tied models (on the unbalanced sample 5 tied / 1 untied this is an observation, not statistics).

#### Compression Zones: From Bottleneck to Layer Mixing

The "neck" as a single minimum point — a coarse model. We characterized the low-dimensional zone quantitatively (cross_model/compute_zone_stats.py, _work/neck_zone_stats.json): n_low = number of stack levels 1..L with PRc < T=2 (PR ≈ 2 means effective rank close to 2); zone = largest connected run of sub-T levels containing the neck; local minima — internal dips of the profile below threshold.

Model n_low / L Zone around neck Width Zone start (fraction of depth) Local minima <2 Regime
smollm-135m 14/30 (47%) L12–L25 14 (47% of depth) 0.40 {L12} centered hourglass
qwen2.5-0.5b 15/24 (62%) L3–L17 15 (62%) 0.12 {L4} early funnel
tinyllama-1.1b 8/22 (36%) L3–L10 8 (36%) 0.14 {L3, L8} early funnel, double waist
qwen2.5-3b 22/36 (61%) L3–L24 22 (61%) 0.08 {L3} early funnel / long shelf
qwen3-4b 20/36 (56%) L7–L26 20 (56%) 0.19 {L7, L11, L17} centered hourglass, triple waist
gemma-4-e2b 0/35 (0%) none (<2); at T=10: only L35 (PRc 6.0) — 1.00 {} distributed regime, output compression

Three regimes and generational drift. Old generation (Qwen2.5 ×2, TinyLlama) builds the low-dimensional zone right at the input: onset at 8–14% of depth, asymmetric funnel — a "bottleneck" in the classical sense. In TinyLlama there are two dips inside the zone (L3 and L8) — a primitive vestigial form of layer mixing. Middle generation (SmolLM) centers its zone: onset 0.40, width 14 layers, single minimum at mid-stack (L12). The new generation splits into two vectors. Qwen3-4B — the most centered hourglass in the sample (width 56% of depth), but its waist consists of three compressed minima L7/L11/L17: that is exactly "mixing of compressed layers" — the model does not fold information into a single neck, it maintains low-dimensionality as a wide band with structure inside, i.e. several attractor "nodes" distributed across the stack. Gemma-4 goes further than the hourglass: there is no mid-stack compression at all (n_low = 0 under the strict threshold; PRc across the stack 33–122), and only the final block compresses (PRc 6.0, five times looser than the necks of the other models). The likely mechanism — sliding-window attention: 28 of 35 layers operate with a window of 512 tokens, and the representation does not need global compression across the stack because each layer is local; only the output concentrates. This is an interpretation, it requires a separate experiment (window ablation), but quantitatively the picture "hourglass → distributed regime" is recorded: zone onset shifts from 0.08 to 1.00 as architectures get newer. This drift predicts differences in positional recall profiles across models — the connection is checked by the cross-model LiM scan (Exp6) given below.

Honest limitations: n = 6 models of three families, cross-comparisons are confounded by size and architecture; SmolLM — a small model with a centered zone, so "newer = more centered" is not strictly monotonic in size but describes the generational trend (Qwen2.5 → Qwen3, Gemma). Nevertheless, the shape of the zones reproduces on each model independently of size: for all five standard models the zone spans 36–62% of stack depth — "the hourglass" is not a point but an extended structure.

!

08_pr_profiles_all_models
Figure 5. PR profiles of six models

Figure 5. Full PR profiles of six models on one axis: Qwen2.5/TinyLlama funnels at the input, centered bands of SmolLM and Qwen3-4B (triple waist), flat Gemma profile with compression only at the output.

#### Verdict H2:CONFIRMED ON 5 OF 6 MODELS (Gemma — exception)

All five standard models show a low-dimensional zone in the stack with neck PRc ≈ 1.1–1.2; the zones cover up to 62% of depth, and the shape of the zones drifts across generations: early bottleneck (Qwen2.5, TinyLlama) → centered hourglass (SmolLM) → hourglass with mixing of compressed layers in the waist (Qwen3-4B: three minima L7/L11/L17) → distributed regime without a mid-stack neck (Gemma-4, probably — consequence of sliding-window attention). The universality of "one neck at the middle" is refuted; what is universal is the existence of an extended low-dimensional zone and its shift toward the output / distribution in newer architectures.

Hypothesis 3 — Spectral Asymmetry: Law vs Trajectory

#### Method

At the neck of the hourglass (L4 in Qwen, L3 in TinyLlama), we run exact SVD on the gate_proj weight matrix and its incoming activations. k95(X) = number of singular components explaining 95% of energy; top-10/top-3 energy — share of energy in the first directions.

#### Control Pair (original Exp3)

Model Matrix Dimensionality k95(weights) k95(activations) Top-3 activation energy Top-10 weight energy
Qwen2.5-0.5B (tied) gate_proj 896×896 766/896 21/896 0.930 0.048
TinyLlama-1.1b (untied) gate_proj 2048×2048 1610/2048 8/2048 0.944 0.056

The pattern is identical in both models, tied or not: weights are nearly full-rank (k95 ≈ 85–79% of dimensionality), activations radically low-dimensional (k95 = 21/896 ≈ 2.3%, 8/2048 ≈ 0.4%), while the top-3 directions carry 93–94% of energy and the top-10 weights — only 5%. Weight tying is not required to create this asymmetry: it reproduces in the untied model as well.