粒度困境——该切多细
把一个复杂任务切得更细,"切分本身"出错的概率就更高;切得更粗,"子任务"失败的概率就更高。这两种风险都是真实存在的——所以存在一个均衡点,而且更进一步,有一些技巧可以移动这个均衡点。
U 形曲线:粒度是 harness 的容量旋钮
设任务规模为 S,切分成 n 个叶子任务,每个大小 。有两个风险项:
- 切分风险 ≈ ——每一次切分都是一个可能出错的动作,有自己的
α(safe-recursion-theorem);切分越多,毒化某个子树的机会就线性增多; - 叶子风险 ≈ ——而
ε(s)相对叶子大小是凸的、且陡峭的,这是能力地形(coupling-to-the-learner)决定的:叶子太大就会掉出训练流形之外。所以这一项会随着切分变细而下降。
总风险 是U 形的——正是 bias–variance 那个形状。均衡点 = 一阶条件:切分应该持续进行,直到再多切一刀带来的边际 α 超过它换来的边际 ε 下降为止。
用 P×C 来权衡,而不是用概率
这两类错误不是同一种性质:切分错误是系统性的、迟发的——子树把错误的问题解得很完美,每个叶子的 gate 都是绿的,只有到重组 gate 那一步才暴露出来,而这时整个子树的预算已经烧光了。叶子错误是局部的、早发的——会被叶子自己的 gate 当场抓住,代价只是一次重试。所以均衡条件必须按成本加权:拿 去和 比较——P×C 正是恰当的计价单位,而这个加权会把均衡点往比原始概率所暗示的更粗的方向推。
三种能移动曲线的技巧(比挑一个点更好)
-
就地决定粒度,而不是全局决定。 能力地形是不均匀的:在陌生地形上切得细,在样板化的地形上切得粗。停止规则本来就是按分支定的(叶子的 spec 能否从其注入内容中学到——coupling-to-the-learner),所以均衡点是地形上的一条等高线,而不是一个单一数字。
-
先探后切(惰性分解)。 不要提前把整棵树都定死。给粗粒度的叶子一个小的试探预算(一次尝试 + 一次 gate);如果失败,再切分——并且让失败的内容(哪些检查没通过)来决定在哪里下刀。这就是冲突驱动的分解:冲突定位出切缝,不可行片段(no-goods)累积在 coordinator 中,于是原本静态的赌注变成了一个连续的决策过程,能测出
ε(s),而不是去猜。 -
沿着接缝切(近可分解性)。 不是一个常数——它取决于你在哪里下刀。沿着弱耦合处切(simon-ando)会得到彼此几乎不交互的子任务,这样切分证书(⋀Sᵢ + reassembly ⟹ S,root-protocol)会很短。证书长度是切割质量的一个代理指标:一段短的蕴含论证意味着这是一条真正的接缝;一段费力扭曲的论证则说明你切在了承重结构上。而在确实需要更细粒度的地方,就把
α花钱买下来:在切分 gate 上投入更多验证预算。
这个困境存在一个均衡点(P×C 计价下的 U 形曲线),但真正的手艺在于移动这条曲线——沿接缝切,先探后切,让地形决定粒度。