完整题目
在Transformer的前馈神经网络(FFN)模块中,通常将隐藏层维度从d_model扩展到多少倍?这一设计的动机是什么?是否存在理论依据或实验支持?
原始配置与参数动机
原始Transformer使用d_model=512、d_ff=2048,即FFN中间维约为4倍。每个位置共享同一两层MLP:FFN(x)=W2 activation(W1 x+b1)+b2。扩维给逐token非线性变换更大的通道容量,再投影回残差维度;它不是自编码器式信息瓶颈。
4倍是论文配置和长期使用的经验起点,不是原论文通过2倍、4倍、8倍统一消融后证明的理论最优值。最优宽度取决于参数预算、算力、激活函数、稀疏性和硬件。
现代门控FFN
SwiGLU类FFN通常有两条上投影和一条下投影,共三组主要矩阵。若想与“4d的普通两层FFN”近似匹配参数量或FLOPs,中间维常从4d调整到约8d/3,再按硬件对齐取整。这个比例是预算匹配结果,不是所有模型必须遵守。
Attention包含输入相关的softmax(QK^T),不能称为纯线性模块。FFN选型应在相同预算下比较质量、训练稳定性、吞吐和激活内存。
继续追问 · 2 个问题
- FFN的参数量占整个Transformer的多少比例,为什么常说"Attention is all you need"但FFN却用了这么多参数
- SwiGLU等门控机制相比原始FFN有什么改进,为什么现在主流模型都采用这种设计
换一种问法,检查是否真正理解
场景切入
假设现在为 Transformer 设计 FFN hidden size,需要在容量、参数量和计算之间取舍。你会把原始 4 倍配置当作起点,还是当作理论必需?如何验证?
层层追问