S1 实验:Echo、顺序哈希与容量证据
S1 的任务是先证明路径结构能稳定工作。
它不处理完整语义,也不处理翻译。它只问:
路径机制能不能可靠地区分 token,并保留顺序信息?
实验脚本
复现脚本:
holds/SameTime/experiments/spr_s1_reproduce.py
holds/SameTime/experiments/spr_s1_falsification.py
io 上运行:
cd /data/homecicd/sametime/code/wmt
sudo -n python3 spr_s1_falsification.py
1. pure roll 的顺序碰撞
设:
我 = [1, 2, 3, 4]
你 = [5, 6, 7, 8]
如果父节点合并为:
H = left + torch.roll(right, shifts=1)
会得到:
我打你 -> [9, 7, 9, 11]
你打我 -> [9, 7, 9, 11]
两个方向完全相同。这说明 pure roll 不能独立承担顺序编码。
2. roll + sign_alt
修复方式是在右子树 roll 后加一个交替符号:
def sign_alt(x):
return x * [1, -1, 1, -1, ...]
H = left + sign_alt(torch.roll(right, shifts=depth+1))
同样的例子变成:
我打你 -> [9, -3, 9, -3]
你打我 -> [9, 5, 9, 5]
实验输出:
pure_roll_collision=True
sign_alt_separated=True
结论:
S1 的顺序哈希需要非交换破缺。
roll + sign_alt是当前最小可用方案。
3. 分解路由容量
S1 把一个 64 维词向量切成 4 个 chunk:
chunk0: dim 0..15
chunk1: dim 16..31
chunk2: dim 32..47
chunk3: dim 48..63
每个 chunk 走一棵深度 7 的树:
2^7 = 128 leaves
四个 chunk 的叶子号组合:
128^4 = 268,435,456 effective leaves
WMT14 英文词表规模:
vocab=41429
结果:
solo=41311/41429
solo_percent=99.72
bleu4=99.99
这说明几乎每个 token 都能独占组合叶子。
4. 这个结果证明了什么
它证明:
- 路径空间容量足够。
- 路径分配稳定。
- Echo 任务可以近乎无损。
- 顺序哈希可以避免最简单的反向碰撞。
它没有证明:
- token 理解上下文。
- path state 等于 semantic state。
- 同词多义会自动分流。
因此,S1 的正确定位是:
Token Path Hash。
它是 SPR 的基础设施,不是完整语义路由。
License: GPLv3