可控流形:怎样把 TreeHeap 从一团乱调到可用结构

你刚才提出的观点,我认为非常关键:

现在的 claim 应该是一个可控流形。

这句话解决了一个一直卡住我们的问题。

之前我们总是在两个层面之间跳:

数学层:plus / diff / compose / decompose / kernel
产品层:能不能生成句子、能不能翻译、能不能像 Transformer 一样工作

中间缺一层。

这一层就是:

控制变量 -> 结构变化 -> 产品功能涌现

也就是说,不要一上来就问:

TreeHeap 能不能直接生成正确句子?

而是先问:

当我调整 kernel 的细节时,
输出结构会不会从一团乱,
逐步走向更稳定、更像产品可用结构的状态?

如果这个过程可控,我们就可以在控制过程中学习规律。 然后再修补数学 kernel。

这就是 SPR-037。

什么叫“可控流形”

这里的“流形”不要先理解成高等几何里很复杂的对象。

可以先理解成一张可观察的调参地图:

横轴:relation_weight
纵轴:order_weight
高度:fold 结构质量

比如:

relation_weight = 0
order_weight    = 0

kernel 什么都不相信,输出就接近随机。

再比如:

relation_weight = 2
order_weight    = 2

kernel 既相信词之间的关系场,也相信线性邻近,输出结构应该更稳定。

于是我们得到一张面:

controls -> fold quality

这张面就是当前意义上的“可控流形”。

Houming818 的补充:梯度不一定只改参数

下面这一段是 Houming818 提出的补充。

我把它整理成工程语言,但这个想法的责任归属要说清楚:

观点来源:Houming818
整理解释:Codex Review
当前状态:理论假设,尚未被 SPR-037 的 toy proof 直接证明

你提出的问题是:

既然说可控流形,
那梯度信息从哪里来?

梯度是否一定要表现为普通神经网络那样的参数更新?

这非常关键。

因为如果 TreeHeap 只是:

θ <- θ - η ∇θ L

也就是只更新 kernel 参数,那它看起来和普通 MLP / Transformer 的训练方式太接近。

但你提出了另一种可能:

梯度也可以调整 heap 自身的平衡态。

比如一个很小的 heap state:

[2.0, 1.0, 3.0]

梯度来了以后,不一定是修改某个外部参数。

它也可能让当前 heap 变得更平衡:

[2.0, 1.0, 3.0]
-> [2.0, 1.5, 2.5]
-> [2.0, 1.8, 2.2]

这不是:

改函数参数

而更像:

调 heap state 的平衡性

两种梯度:参数梯度与状态梯度

因此 TreeHeap 里至少要区分两类梯度。

第一类是普通参数梯度:

θ <- θ - η ∇θ L

这里更新的是:

kernel 参数
compose 参数
read 参数
write 参数
relation field 参数

这和普通深度学习类似。

第二类是 Houming818 提出的 heap 平衡梯度:

H <- H - η ∇H E(H)

这里更新的不是外部函数参数,而是当前 heap state:

arr[1]
arr[2]
arr[3]
...

每个 arr[i] 可以是一个向量。

它们可以在能量函数的驱动下移动。

一个最小例子

假设我们定义左右平衡能量:

E_balance = (left - right)^2

当前状态是:

root  = 2.0
left  = 1.0
right = 3.0

左右差很大:

left - right = -2.0

能量高。

如果只对 heap state 做梯度下降,系统会推动:

left 变大
right 变小

于是得到:

[2.0, 1.0, 3.0]
-> [2.0, 1.5, 2.5]

这个过程更像物理里的松弛:

系统沿能量下降方向进入更稳定状态。

它不是先知道一个“目标 heap”,然后对目标 heap 求导。

它只需要知道:

当前 heap 的能量高不高。

这是否绕开了“目标 heap 可导”的问题

部分绕开了。

更准确地说:

不需要目标 heap 本身可导。

但仍然需要一个可计算、可微分的能量函数:

E(H)

例如:

E_balance(H)              左右是否平衡
E_parent_child(H)         父子是否一致
E_relation_match(H, W)    heap 是否贴合世界/关系场
E_entropy(P)              概率容器是否过早或过晚坍缩
E_path_smooth(H)          路径上的状态是否连续

总能量可以写成:

E_total(H)
  = E_balance(H)
  + E_parent_child(H)
  + E_relation_match(H, W)
  + E_entropy(P)

然后做:

H <- H - η ∇H E_total(H)

这就把可导要求从:

目标结构必须可导

转移成:

当前状态的能量函数必须可导

这个差别很大。

这对 TreeHeap 为什么重要

如果这个方向成立,TreeHeap 的学习就不只有一种:

参数学习:让 kernel 函数变强
状态松弛:让 heap 自身进入平衡态

用一句话说:

普通神经网络更像改函数。
TreeHeap 还可能改结构状态。

这会让“可控流形”变得更像一个真实动力系统:

kernel 参数决定能量地形
heap state 在能量地形上滑动
概率容器在合适时刻坍缩
最后形成稳定结构

也就是说,SPR-037 现在测的是:

手动控制变量能不能改变 fold 质量。

Houming818 的补充指向下一层:

梯度能不能不是只改控制变量,
而是推动 heap state 自己进入更好的平衡态。

这个补充目前还没有证明

需要强调:

SPR-037 的实验没有证明 heap state relaxation。

SPR-037 只证明了:

手动扫 relation_weight / order_weight 时,
fold 质量存在一个可观测控制面。

Houming818 这里提出的是下一步 claim 候选:

TreeHeap 不只有参数梯度路径,
还可能存在 heap state 平衡梯度路径。
这种路径可以在目标结构不可导时,
通过可导能量函数完成结构松弛。

这应该进入后续实验,而不是混进当前结论。

一个最小 proof 可以是:

1. 固定 kernel 参数
2. 初始化一个不平衡 heap state
3. 定义 balance / parent-child / relation 三类能量
4. 只更新 H,不更新 θ
5. 观察 heap 是否收敛到更稳定、可读、可坍缩的结构

如果这个实验通过,TreeHeap 会多出一条很有自己味道的学习路径:

不是只训练参数,
而是让 heap 自己松弛到稳定结构。

为什么这比直接生成更好

假设我们直接让模型生成:

the cat is running for a car

一开始可能输出很乱。

如果只有最终结果,我们只能说:

模型不行。

但如果有控制面,我们可以问更细的问题:

relation_weight 太低了吗?
order_weight 太高了吗?
collapse 太早了吗?
noise 太大了吗?
某个 subheap 没有被正确分割吗?
kernel 缺少共轭/镜像/分解操作吗?

这就从“黑箱失败”变成“可诊断失败”。

产品工程最需要的不是一次神迹,而是可诊断、可修补、可复现。

这次 toy proof 怎么做

我没有直接跑 WMT。

这次只做一个最小 proof:

给定几句短句和弱 block 目标,
看 kernel 控制量能不能把 fold 从乱态推向稳定块。

短句包括:

the cat is running for a car
a dog is chasing the ball
the book that i bought yesterday is expensive
some kids are playing in the park

注意,这里不是要证明完整语法。

我们只给一些弱 block:

the cat
is running
a car
for a car
the book
i bought yesterday
that i bought yesterday
is expensive

这些 block 相当于“产品上希望看到的稳定局部结构”。

kernel 的控制量

这次 kernel 只有两个主要旋钮。

1. relation_weight

表示 kernel 多相信“词之间的关系场”。

比如:

the -> cat
is -> running
a -> car
book -> relative clause

如果 relation_weight 高,相关词更容易被合并。

2. order_weight

表示 kernel 多相信线性邻近。

比如:

the cat
is running
a car

这些词本来就在句子里靠得近。

如果 order_weight 高,邻近词更容易合并。

数学形式

每一步 fold 时,kernel 都要决定两个块 AB 要不要合并。

这次的打分函数是:

score(A, B)
  = relation_weight * relation(A, B)
  + order_weight    * order(A, B)
  - balance_penalty
  + noise

其中:

relation(A, B)

表示两个块在关系场里有多接近。

order(A, B)

表示两个块在原始句子顺序里有多接近。

balance_penalty

防止一开始就把很不均衡的大块小块乱合。

noise

模拟不稳定扰动。

实验变量

我们扫描:

relation_weight in {0, 0.25, 0.5, 1, 2, 4}
order_weight    in {0, 0.25, 0.5, 1, 2, 4}
seeds = 64

评价指标是 block F1:

预测出来的 block
和我们给定的弱 target block
有多少重合。

这不是 BLEU。

这也不是翻译质量。

它只是问:

fold 出来的局部结构是否接近目标块?

实验结果

结果如下:

指标 数值
low-control mean F1 0.0828
best mean F1 0.8148
high-sum-control mean F1 0.8148
diagonal gain 0.7319
product cells 22
pilot pass true

最重要的是对角线:

relation_weight order_weight mean F1
0.00 0.00 0.0828
0.25 0.25 0.4036
0.50 0.50 0.6398
1.00 1.00 0.7603
2.00 2.00 0.8119
4.00 4.00 0.8148

这个形状很重要。

它不是随机跳一下。

它显示:

控制量很弱 -> 输出接近乱态
控制量增强 -> fold 结构明显变好
控制量继续增强 -> 进入平台期

这正是“可控流形”的最小证据。

一个具体 trace

对句子:

the book that i bought yesterday is expensive

某次较好的 fold trace 是:

the + book
i + bought
is + expensive
i bought + yesterday
that + i bought yesterday
the book + that i bought yesterday
整句合并

这很接近我们想看的结构:

the book
i bought yesterday
that i bought yesterday
the book that i bought yesterday
is expensive

注意,这不是完整语法树。

但它说明 kernel 已经能把一些局部块先稳定下来。

这就是产品功能的早期形态:

先不要完美理解整句,
先把局部稳定块折出来。

这证明了什么

这次 claim 是:

S1-MANIFOLD-C01:
If TreeHeap fold is driven by kernel controls over a latent relation field,
product-like structure should emerge as a measurable control surface.
Increasing relevant control variables should move output from noisy blocks
toward stable target blocks on a toy relation task.

状态:

supported pilot

它证明的是:

在一个透明 toy relation field 上,
TreeHeap fold 可以被 kernel 控制量调节,
并且结构质量会沿控制面明显提高。

换句话说:

我们可以把 TreeHeap 的失败变成可观测、可调试的失败。

这对工程很重要。

这没有证明什么

它没有证明:

TreeHeap 已经理解语言
TreeHeap 已经能翻译
TreeHeap 胜过 Transformer
relation field 能无监督自动学出来
这两个旋钮就是最终旋钮

尤其是:

relation field 这次是 toy 构造的。

这意味着下一步必须把 toy relation field 换成真实数据估计出来的 relation field。

比如:

共现窗口
masked token restoration
弱依存关系
contrastive phrase pairs
短句人工弱标注

对 TreeHeap 路线的意义

现在我更赞同你的判断:

代数逻辑和产品逻辑不能分太开。

但也不能直接从代数跳到 WMT。

中间要有一层:

TreeHeap Structure Lens

它应该能显示:

当前 token/block 的邻近关系
当前 fold trace
每个 merge 的 energy
每个 stop/left/right 的概率
哪些结构稳定
哪些结构还在叠加
哪些控制量改变后结构变好

也就是说,产品上先做一个“结构透镜”。

不是先做最终翻译器。

下一步

我建议下一步不是继续加 toy trick。

而是把这个控制面放到真实数据上。

最小版本:

输入真实短句
从语料共现或 masked restoration 估计 relation field
用 TreeHeap kernel fold
扫 relation/order/collapse 控制量
看 block F1、稳定性、能量是否形成可控面

如果真实数据也有类似曲面:

低控制乱
中控制变好
高控制平台

那我们就有了继续推进 S1 的依据。

如果没有,也很好:

说明 toy relation field 太人工,
或者 kernel 缺少关键算子,
或者真实语言 fold 不是这个控制方向。

这就是 ARA 的价值。

一句话总结

SPR-037 的结论是:

TreeHeap 不能只证明自己有代数操作。
它还必须证明这些操作能被控制,
并且控制过程能让产品可见结构逐步涌现。

这次 toy proof 给了一个正信号:

low-control F1 = 0.0828
best F1       = 0.8148
diagonal gain = 0.7319

所以当前更清晰的路线是:

先建立可控结构透镜,
再用真实数据学习 relation field,
最后才谈生成和翻译。

May the Code be with us.

ARA: controllable manifold / claims / experiment script / evidence