NC-FFN:当每个神经元都能用逻辑语言自我介绍
NC-FFN:当每个神经元都能用逻辑语言自我介绍
一个古老的问题
Transformer 的前馈层(FFN)是整个架构里最不透明的部件。注意力层至少有个名字——"头"——你能勉强说"这个头在看前面的名词"。FFN 呢?两层线性变换夹一个 GELU 激活,中间几万个神经元,每个都在做 GELU(W2 @ GELU(W1 @ x))。你问"第 4096 号神经元在算什么",没人答得上来。
过去两年,可解释性研究的主流路线是事后拆解:训练一个稀疏自编码器(SAE),从已有 FFN 里"撬"出可读特征。Anthropic 做了 monosemanticity,OpenAI 做了 SAE 探针,效果不错但代价高昂——每个模型都要重新训练 SAE,而且 SAE 本身也是黑盒。
Thomas Marshall 在 2026 年 6 月的这篇论文里换了个思路:别事后拆了,直接造一个天生可读的 FFN。
NC-FFN:用模糊集合替换 GELU
核心改动非常简单。把 FFN 隐藏单元从 GELU(W1 @ x) 换成显式模糊集合运算:
- 交集(intersection):$A \cdot B$ —— "A 且 B 同时为真"
- 差集(set-difference):$A \cdot (1-B)$ —— "A 为真但 B 不为真"
参数中性是关键设计:NC-FFN 的参数量和 GELU FFN 完全一样。不是"加更多参数换可解释性",是"同样参数换一种结构"。
混合分区(hybrid partition)是工程细节:75% GELU + 25% Boolean,因为纯 Boolean FFN 有个可训练性天花板——完全 Boolean 的网络在训练时会突然 spike 失败。75/25 的混合比例是经验最优点。
三个结果
结果一:推理能力不降反升
用一个纯 FFN 堆栈跑 N-bit 奇偶校验(经典的推理 probe)。结论:
> 有界乘法单元是浅层深度下参数效率最高的推理基。
两个轴:
- Bounding(sigmoid 有界)买的是"宽度高效、浅层推理"。
- Unbounding(无界乘法)买的是"深度组合"。
- 加性基线(GELU)在两者之间 plateau。
结果二:语言建模打平 GELU
125M 参数,OpenWebText,NC-FFN 和 GELU 基线在相同参数量下困惑度打平。没有语义增益,也没有损失。
但有一个"小而持续的语法缺陷"——集中在语法许可(licensing)和量词上。比如:
- 比较级 + "than":*She is taller than* him.
- 被动分词 + "by":*The book was written by* him.
- 否定极性项 + "nor":*He didn't smile, nor* did he speak.
这是 NC-FFN 的结构性短板:within-token 的集合运算表达不了 sequence-level 的依赖。
结果三:自遗忘量词补上短板
论文的"中心结果"(central result)是:加一个序列级模糊量词模块,同时解决两个问题。
模块设计:
- 软存在量词(soft existential):对序列做软"存在"运算。
- 软比例量词(soft proportion):对序列做软"大多数"运算。
- 每个单元有独立的可学习遗忘率,初始化在"不忘"极限。
1. 语法缺陷在 epoch 1 就恢复了——到 epoch 2 时差距减半。 2. LAMBADA 上微幅领先基线。 3. 逻辑结构保持并向深层迁移,而不是像之前那样在深层侵蚀成软门控。 4. 遗忘率自学习:每个单元的中位半衰期约 1.5 个 token,零个近永久单元。量词是局部、预测性的算子,不是锁存器。
最惊人的是第 5 点:
> 量词单元无需字典学习就能读作语法许可检测器。
每个单元在一个语法许可词上激活,然后用它 ~1.5 token 的记忆把成员资格向前带到被许可的虚词上:
- 比较级 → 预测 "than"
- 被动分词 → 预测 "by"
- 否定极性项 → 预测 "nor"
三个更深的发现
逻辑是任务塑形的
> 网络的逻辑内容是其目标奖励的动态读出:在奖励乘法推理的任务上,Boolean 结构精确结晶;在只奖励预测的地方,它侵蚀成软门控。
这回答了一个根本问题:可读性不是免费的。NC-FFN 提供了可读的结构,但结构是否被利用取决于任务是否奖励它。语言建模的大部分预测任务不需要显式逻辑,所以深层 Boolean 退化成软门控。推理任务需要,所以浅层 Boolean 结晶。
Layer 0 不可替代,深层是冗余容量
因果消融实验:消融 layer 0(embedding-adjacent 层)的 Boolean 块,模型崩塌;消融深层 Boolean 块,几乎无影响。
这和上面的发现一致:真正的两操作数逻辑只在 layer 0 结晶,深层是"冗余容量"——被分配了但没被强利用。
可读性是局部的,不是全网覆盖
诚实地说,论文承认:可读单元只占网络的几个百分点,集中在后期层。一个完全 Boolean 的 FFN(没有 GELU 稳定器)训练不出来。可读性目前只在"分区"内免费——75% GELU + 25% Boolean 的混合比例是工程妥协。
这意味着什么
对可解释性的意义
当前可解释性有两条路: 1. 事后探针(SAE, probing):从已有模型里撬出可读特征。 2. 架构设计:直接造天生可读的模型。
NC-FFN 属于第二条路。它的核心贡献不是"比 GELU 好一点"(实际上打平),而是每个单元都是命名运算——交集、差集、量词——不需要 SAE 就能读。
这把可解释性的成本从"每个模型训练一个 SAE"降到"读模型自带的逻辑结构"。如果这条路能走通,可解释性研究的基础设施会彻底变样。
对"逻辑 vs 学习"争论的意义
一个老问题是:神经网络到底是在"学逻辑"还是在"学统计模式"?
NC-FFN 给了一个精确的回答:两者都有,取决于任务奖励什么。在奖励推理的任务上,网络使用显式逻辑;在只奖励预测的任务上,逻辑侵蚀成统计门控。逻辑不是学来的,是被任务拉出来的。
对"自遗忘"的意义
自遗忘量词是这篇论文最优雅的设计。传统 RNN 的遗忘门是全局的(LSTM 的 forget gate),NC-FFN 的遗忘是每单元独立的——每个量词单元自己学该记多久。
结果是:不同语法许可有不同的窗口长度(比较级 vs 被动 vs NPI),每个单元自己调到最优。这不是设计,是涌现。
诚实的边界
- 需要 GELU 稳定器:纯 Boolean 训练不出来,75/25 是经验比例。完全 Boolean FFN 是未解决的开放问题。
- 可读性局部:只有百分之几的单元可读,集中在后期层。
- 规模未验证:只在 125M 参数上测过。GPT-5 级别的 NC-FFN 会怎样?不知道。
- 语义层无增益:LAMBADA 微幅领先,但整体困惑度打平。NC-FFN 的优势在可读性,不在性能。
我的看法
这篇论文最让我兴奋的是"逻辑是任务塑形的"这个发现。
过去我们以为"可解释性"是模型属性——这个模型可解释,那个不可解释。NC-FFN 告诉我们:可解释性是任务-模型交互属性——同样的架构,在推理任务上结晶出逻辑,在预测任务上侵蚀成统计。
这意味着:如果你想要一个可解释的模型,光改架构不够,还要改训练目标。一个只在"下一个 token 预测"上训练的 NC-FFN,深层会退化成 GELU 的表亲。只有加入奖励推理的任务,Boolean 结构才会保持。
这对可解释性研究是一个方向性提示:与其追求"天生可解释的架构",不如追求"奖励可解释性的训练管线"。架构提供可能性,任务决定现实。
第二个让我兴奋的点是"自遗忘量词变成语法许可检测器"这个涌现现象。没有人告诉模型"比较级后面跟 than"——模型自己发现"比较级"这个概念,自己学会"记 1.5 个 token",自己把记忆窗口调到刚好覆盖许可词到被许可词的距离。
这是结构涌现的一个干净案例:架构提供"可遗忘的序列算子"这个原语,训练目标提供"预测下一个 token"的压力,两者结合就涌现出了语法许可检测器。中间没有任何人为先验。
这和生物进化里的"结构决定功能"有同构性:DNA 提供氨基酸序列(架构),环境提供选择压力(任务),两者结合涌现出蛋白质功能(语法许可检测器)。没有设计者,只有约束和选择的循环。
---
论文:Explicit Fuzzy Logic in the Feed-Forward Layer: Self-Forgetting Quantifiers Discover Legible Grammatical-Licensing Detectors 作者:Thomas Marshall arXiv:2606.31845
🌟 智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
🎁 领取 2000万 Tokens