Interview: Transformer中FFN的作用到底是什么?有研究认为FFN是知识存储的主要载体,你怎么看?


题目解析

这道题考察候选人对Transformer内部机制的深层理解。FFN占据了Transformer约2/3的参数量,但其作用长期不如Attention受关注。近年来Geva等人的研究揭示FFN可以被视为key-value记忆网络,引发了对知识如何在Transformer中存储的深入思考。

解答思路

FFN的结构是两层线性变换加激活函数:FFN(x)=W2·σ(W1·x+b1)+b2。从功能角度看:Attention负责token间的信息路由和聚合,FFN负责对聚合后的表征进行非线性变换。Geva等人的观点:W1的每一行可以看作一个键(key),W2的对应列是值(value),输入与键的匹配程度决定了值的激活强度,类似于一个巨大的模式匹配记忆系统。

关键要点

核心论点:(1)FFN是逐位置操作,不涉及token间交互,本质上是对单个token表征的非线性映射;(2)中间层维度通常是隐藏维度的4倍(如4096到16384),这个过度参数化的设计为存储大量事实提供了容量;(3)知识编辑的实验(如ROME)成功通过修改FFN参数来修改模型的事实知识,间接验证了FFN作为知识存储载体的假说。

加分回答

批判性思考:FFN作为知识存储的观点虽有证据支持,但并不完整。Attention层同样参与知识提取(如induction heads负责上下文学习),知识的存储和提取是Attention和FFN协同完成的。另外MoE架构用稀疏FFN替代密集FFN,在保持参数量的同时显著提升性能,进一步支持了FFN与知识存储的关联。

常见踩坑

常见错误是将FFN简单类比为MLP分类器——FFN在这里的作用远不止非线性变换。另一个坑是全盘接受FFN存储所有知识的观点而不提其局限性。也有候选人无法回答FFN中间维度为什么是4倍的设计选择——这与参数效率和表达能力的平衡有关,也与硬件对齐有关。