看见树内的变化:TreeHeap 单层观察与跨语言差分
TreeHeap 的 encoder 和 decoder 可以形成一套私有编码协议。
这很像一个人自己的笔迹:别人不一定能从某一笔的角度判断它代表什么,但书写者自己可以稳定地写,也可以稳定地读。
可是,私有编码不能成为拒绝观察的理由。
即使我们不知道 64D state 的第 17 维是什么意思,仍然可以问:
把“米饭”换成“土豆”以后,树的哪些节点发生了变化?变化沿哪条路径传播?把变化后的子堆移植过去,decoder 是否只改变对应概念?
这篇文章先公开一次真实的单层观察,再提出一种新的 TreeHeap 特征设计:差分传播路径。
1. 我们刚刚训练了什么
实验使用真实中文语料,而不是人工随机树:
| 项目 | 设置 |
|---|---|
| 训练数据 | 200,000 个真实中文 block |
| 每个 block | 64 token |
| TreeHeap 深度 | 6 |
| 节点 state | 64D |
| 验证数据 | 512 个未参与训练的 block |
| 设备 | io / RTX 3090 |
树的各层覆盖范围如下:
| 深度 | 单节点覆盖 token | 同一 64-token block 的节点数 |
|---|---|---|
| 1 | 2 | 32 |
| 2 | 4 | 16 |
| 3 | 8 | 8 |
| 4 | 16 | 4 |
| 5 | 32 | 2 |
| 6 | 64 | 1 |
共享 FOLD kernel 从左右子节点递归计算父节点:
$$ z_i^{(d+1)}=K_\theta\left(z_{2i}^{(d)},z_{2i+1}^{(d)},e_d\right). $$其中,$e_d$ 是深度坐标。所有地址使用同一个 $K_\theta$,不是每个位置单独记一张参数表。
这次没有要求 root 完整恢复 64 个 token,而是观察两个尺度量:
- Bag 轮廓:这个节点覆盖的区域里有什么 token,不要求顺序。
- Adjacency 轮廓:这个区域内有哪些有向相邻 token 对,要求顺序。
Bag 类似远看一张图时看到的主体颜色;Adjacency 更像物体边缘的方向和连接关系。
2. 一个节点里到底能看到什么
当前实验中,一个节点有三类可观察数据。
2.1 地址与感受野
地址告诉我们该节点覆盖哪一段输入。
例如 depth=4 的 node 2 覆盖 token [32,48)。这是 TreeHeap 数据结构天然提供的坐标,不需要 probe 猜测。
2.2 私有 64D state
例如某个节点的前 8 维是:
[0.5808, -0.1203, -0.7574, -0.9964,
-1.1835, 0.4895, -1.8861, 1.2427]
这些数字本身没有人类词典。不能说 0.5808 就是“花”,或者 -0.9964 就是“时间”。
它们只在当前 encoder 与 decoder 共同形成的坐标系中有意义。
2.3 读出与干预
我们可以训练 READ kernel,从 state 读取 Bag 或 Adjacency;还可以替换 state,观察 decoder 输出是否改变。
前者是相关性观察,后者才是因果观察。
3. 把 depth=4 的四个节点全部摊开
下面是一条真实验证文本:
蔓交错,到四月花期,就是一扇开满花的拱门。清唱咖啡,有一面墙的书架,尚有空余,总有客人愿意将看过的,或者喜欢的书放在书架上给大家分享。这里有个赠书的江湖。鼎韵艺术沙龙。
在 depth=4,每个节点覆盖 16 token,一共有四个节点:
| 节点 | 实际覆盖文本 | Bag 读出 cosine | Adjacency 读出 cosine |
|---|---|---|---|
| 0 | 蔓交错,到四月花期,就是一扇开满花的拱…… | 0.379 | 0.129 |
| 1 | 门。清唱咖啡,有一面墙的书架,尚有空…… | 0.597 | -0.087 |
| 2 | 余,总有客人愿意将看过的,或者喜欢的书放在书架…… | 0.216 | -0.044 |
| 3 | 上给大家分享。这里有个赠书的江湖。鼎韵艺术沙龙 | 0.644 | -0.142 |
cosine 越接近 1,表示 READ 输出越接近该片段的精确观察目标。
这张表说明:
- 四个节点都不是空白常量;
- Bag 内容轮廓有不同程度的可读性;
- 有向排列信息基本没有形成;
- 同一层不同节点的质量差异很大。
四个 state 相互之间的 cosine 是:
node0 node1 node2 node3
node0 1.000 0.451 0.860 -0.079
node1 0.451 1.000 0.326 0.517
node2 0.860 0.326 1.000 -0.087
node3 -0.079 0.517 -0.087 1.000
这说明该层没有完全坍缩成一个 state。node0 与 node3 接近正交,而 node0 与 node2 非常接近。
但“向量不同”不等于“已经理解语义”。
4. 一个必须公开的反例
我们拿 depth=4 的 node0,在另外 511 个验证 block 中寻找 state 最近邻。
查询片段是:
蔓交错,到四月花期,就是一扇开满花的拱……
返回片段是:
发的日子,要预防季节性的传染病的发生,应多吃清淡食物。
结果:
| 指标 | 数值 |
|---|---|
| state cosine | 0.9848 |
| 两段文本的精确 Bag cosine | 0.2242 |
| 两段文本的精确 Adjacency cosine | -0.1449 |
两个 state 看起来几乎相同,但对应文本既不是明显同义,也没有接近的顺序结构。
这意味着当前 state 空间可能存在方向聚集或局部坍缩。它携带了一些可读信息,却还不是可靠的语义检索坐标系。
因此不能只展示 state cosine=0.9848,然后宣布模型理解了两句话。必须用外部观察量和因果替换继续核验。
5. 从低层看到高层
全部验证集的平均结果是:
| 覆盖 token | 2 | 4 | 8 | 16 | 32 | 64 |
|---|---|---|---|---|---|---|
| Bag READ cosine | 0.267 | 0.286 | 0.306 | 0.334 | 0.377 | 0.436 |
| Bag Query 增益 | 0.184 | 0.122 | 0.095 | 0.086 | 0.071 | 0.077 |
| Adjacency READ cosine | 0.010 | 0.012 | 0.015 | 0.017 | 0.021 | 0.027 |
这里出现了一个值得保留的现象:
覆盖范围越大,Bag 轮廓越容易从节点中读出;但精细检索优势没有随深度一起增加。
这与 Houming818 提出的多尺度理解相容:高层可能不是低层 token 的模糊错误副本,而是在表达覆盖范围更大的几何轮廓。
但是本次实验只支持很窄的说法:高层保存了一部分无序内容统计。
它还没有证明:
- 高层形成了人类语义;
- TreeHeap 已经拥有世界模型;
- 有向结构已经被编码;
- TreeHeap 检索优于 Transformer。
完整 Claim 的 6 个 Gate 只通过了 3 个,因此 ARA 状态仍是 not supported。
6. 私有编码如何被观察
绝对坐标不可读,不代表相对变化不可研究。
考虑最小句对:
A:小明爱吃米饭。
B:小明爱吃土豆。
两句话只改变一个概念。对每个深度、每个地址计算:
$$ \Delta_i^{(d)}=H_i^{(d)}(B)-H_i^{(d)}(A). $$如果 TreeHeap encoder 真正利用树结构,那么差分不应该平均污染整棵树。我们预测它主要分布在:
米饭/土豆叶节点
↓
宾语 subheap
↓
“吃 + 宾语”父节点
↓
root 的较粗变化
与“小明”对应的兄弟 subheap 应当基本稳定。
这就是新的可观察特征:差分传播路径。
7. 差分路径的四个测量
7.1 地址局部性
设被替换 token 的祖先路径为 $P$,全树节点集合为 $V$。差分能量集中率定义为:
$$ R_{path}=\frac{\sum_{i\in P}\left\|\Delta_i\right\|_2^2} {\sum_{j\in V}\left\|\Delta_j\right\|_2^2}. $$如果 $R_{path}$ 很高,说明变化确实沿结构路径传播,而不是无地址地扩散。
7.2 深度轮廓
不同深度不必保存相同含义。我们记录每层的相对差分:
$$ D_d=\frac{1}{|V_d|}\sum_{i\in V_d}\left\|\Delta_i^{(d)}\right\|_2. $$低层可能表现为具体 token 替换;高层可能只表现为“食物类别内部发生变化”。这里不要求高层重新说出“土豆”二字。
7.3 跨句式迁移
再构造:
小红爱吃米饭。 -> 小红爱吃土豆。
他今天吃了米饭。 -> 他今天吃了土豆。
如果“米饭到土豆”的差分只在第一句话成立,它可能只是样本记忆。
如果多个句式中的差分方向显著一致,才说明 encoder 抽取了可迁移关系:
$$ cos(\Delta_{小明},\Delta_{小红})
cos(\Delta_{小明},\Delta_{随机替换}). $$
7.4 子堆因果替换
相关性仍然可能欺骗我们。因此需要把 B 的宾语 subheap 写入 A:
H(A)
- remove: “米饭” subheap
+ insert: “土豆” subheap
-> decoder
如果 decoder 的输出从“小明爱吃米饭”变为“小明爱吃土豆”,而主语和谓语保持不变,才说明这个 subheap 对目标概念具有因果作用。
这一步比训练一个 probe 更强,因为 probe 可能只是从相关噪声中猜答案。
8. 多语言差分观察
加入英文最小句对:
C:Xiaoming likes eating rice.
D:Xiaoming likes eating potatoes.
中文与英文可以拥有不同的私有编码坐标。我们不要求两棵树的原始 state 完全相等,而是学习一个受控对齐映射 $M$:
$$ M\Delta_{zh}\approx\Delta_{en}. $$其中:
$$ \Delta_{zh}=H(小明爱吃土豆)-H(小明爱吃米饭), $$$$ \Delta_{en}=H(Xiaoming\ likes\ potatoes)-H(Xiaoming\ likes\ rice). $$如果对齐后的真实概念差分明显优于随机替换差分,就说明两套私有编码都捕获了同一种世界变化。
这里有一个严格边界:任意非线性私有坐标中的裸减法未必天然稳定。因此跨语言结论必须同时接受 subheap 替换和 decoder 输出的因果验证,不能只看 cosine。
9. 这会比 Transformer 更容易观察吗
这是一个 Predict,不是已有结论。
Transformer 也可以做 activation patching、attention 分析、linear probe 和 hidden-state diff。我们不能把 Transformer 描述成完全不可观察。
TreeHeap 的潜在优势来自显式结构坐标:
| 观察问题 | Transformer | TreeHeap 的预期坐标 |
|---|---|---|
| 变化发生在哪里 | token、层、head 的分布式激活 | 明确 heap 地址 |
| 变化如何传播 | 跨层和 attention 边 | 叶到 root 的祖先路径 |
| 观察尺度 | 依赖层和 receptive pattern | TreeHeap 深度 |
| 局部因果替换 | activation patching | 完整 subheap swap |
| 多语言关系 | hidden alignment | 同地址、同尺度差分对齐 |
只有当 TreeHeap 的差分确实更局部、迁移更稳定、因果替换更干净时,才能说它在这类问题上比匹配规模的 Transformer 更容易观察。
树的外形本身不是证据。
10. 下一条 Claim 与 Predict
Claim
对只替换一个概念的最小句对,TreeHeap state 差分应集中在被替换叶节点及其祖先路径;对应 subheap 的因果替换应主要改变 decoder 的目标概念。该差分规律应能跨主语、跨句式,并在对齐后跨语言迁移。
初步 Predict
- 被替换路径承载至少 70% 的全树差分能量。
- 未改变兄弟 subheap 的平均差分显著小于祖先路径。
- 相同概念替换的跨句式差分 cosine 比随机替换至少高 0.10。
- subheap swap 后,目标词变化率显著提高,非目标 token 保持率不下降超过 5%。
- 中英对齐后的概念差分优于随机语言配对至少 0.10。
- 与匹配维度 Transformer 做同样干预;如果 TreeHeap 没有更好的局部性或因果选择性,则不支持“更容易观察”的优势主张。
这些阈值需要在 ARA 实验注册时冻结,然后再运行代码,不能看到结果后移动门槛。
11. 当前结论
这次打开单层以后,我们看到的不是一个已经完成的语义世界模型,而是一个更具体的中间状态:
- 每个节点有明确地址、覆盖范围和非恒定 64D state;
- 高层可以读出部分更大范围的 Bag 内容轮廓;
- 当前有向顺序信息没有形成;
- 极高 state cosine 仍可能返回不相关文本,说明几何空间尚未校准;
- 下一步不能继续只看平均 loss,需要观察改变一个概念时,差分沿树如何传播;
- subheap swap 将把“看起来相关”升级为“对输出具有因果作用”。
我们真正想建立的不是一个人为解释每个参数的词典,而是一种可重复的观察方法:
不要求读懂模型的每一笔,但要能追踪它改了哪一笔、变化沿哪里传播,以及这一笔是否真的改变了模型的回答。
12. 证据与原创边界
本次实验的 ARA、代码、checkpoint、逐层观察数据与失败 Gate 均保存在开放仓库 SameTime 中:
ara/s3-generation/logic/treeheap_multiscale_geometry.md
ara/s3-generation/src/s3_treeheap_multiscale_geometry.py
ara/s3-generation/src/s3_treeheap_multiscale_geometry_observe.py
ara/s3-generation/evidence/s3_treeheap_multiscale_geometry_smoke/
“高层可能表达更大几何范围而非损坏 token 副本”以及“用最小句对观察 TreeHeap 差分传播路径”的研究判断由 Houming818 提出;Codex Review 负责形式化、实验实现、证据审计和本文整理。
本文是 SameTime 项目的原创研究表达,但不宣称发明表示差分、因果干预、activation patching、多语言表示对齐、随机投影或多尺度分析等已有公共方法。TreeHeap 是否具有更强的结构可观察性,仍需下一组对照实验验证。