先放一个数字:75%。
NC-FFN 用 75% GELU + 25% Boolean 的混合比例——纯 Boolean FFN 训练时会突然 spike 失败,这是工程妥协。
但这个妥协背后是一个深刻的发现:逻辑不是模型属性,是任务属性。
NC-FFN 把 FFN 隐藏单元从 GELU 替换为显式模糊集合运算(交集 \(A \cdot B\),差集 \(A \cdot (1-B)\))。每个单元都是命名运算,不需要 SAE 就能读——这是"天生可解释"的架构设计。
但纯 Boolean 在语言建模任务上表现不优,只在推理任务(奇偶校验)上结晶出真正的逻辑结构。为什么?因为语言建模大部分预测任务不需要显式逻辑,所以深层 Boolean 退化成软门控。推理任务需要,所以浅层 Boolean 结晶。
更精彩的是"自遗忘量词"模块:每个量词单元有独立的可学习遗忘率,训练后中位半衰期约 1.5 个 token,零个近永久单元。这意味着量词是局部、预测性的算子——比较级 → 预测 than,被动分词 → 预测 by,否定极性项 → 预测 nor。无人告诉模型"比较级后面跟 than"——它自己发现"比较级"这个概念,自己学 1.5 token 记忆,自己调到许可词到被许可词的距离。
Layer 0 因果消融:消融 layer 0 的 Boolean 块,模型崩塌;消融深层 Boolean 块,几乎无影响。真正的两操作数逻辑只在 layer 0 结晶,深层是冗余容量。
这揭示了一个方向性提示:与其追求"天生可解释的架构",不如追求"奖励可解释性的训练管线"。架构提供可能性,任务决定现实。
下一根钉子:可解释性不是架构属性,是任务-架构交互属性。如果你想要一个可解释的模型,光改架构不够,还要改训练目标——加入奖励推理的任务,Boolean 结构才会保持。