File size: 1,416 Bytes
1c9c214 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | """Are the failing family's marginals position-DEPENDENT, and the succeeding ones not?
At t = 1 every input token is [MASK], so the input sequence is constant. With a
purely RELATIVE position encoding the attention score between positions i and j
depends only on (i - j); when every value vector is identical the layer output is
v * sum(attn) = v, the same at every position. Boundary effects aside, a
RoPE-only model therefore cannot express position-DEPENDENT marginals at the
fully-masked state. This is an expressivity limit, not an optimisation one, so
more training cannot fix it.
That predicts exactly which families succeed: those whose true marginals are
constant across edge slots.
"""
import sys, os
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import numpy as np
from graphs import exact_stats, FAMILIES
print(f"{'family':<14}{'n':>3}{'V*':>10}{'marginal spread':>18}{'position-dependent?':>22}")
for n in (6,):
for name in FAMILIES:
try:
s = exact_stats(name, n)
except ValueError:
continue
p = np.array(s["marginals"])
spread = float(p.max() - p.min())
dep = "YES - RoPE cannot" if spread > 1e-6 else "no - RoPE suffices"
print(f"{name:<14}{n:>3}{s['one_pass_ceiling']*100:>9.2f}%{spread:>18.4f}{dep:>22}")
print(f"{'':>17}min={p.min():.3f} max={p.max():.3f} distinct={len(set(np.round(p,4)))}")
|