跳到正文

FFN 隐藏层维度为何扩 4 倍?

Transformer 中 d_ff 的扩维动机与理论依据

原题:在Transformer的前馈神经网络(FFN)模块中,通常将隐藏层维度从d_model扩展到多少倍?这一设计的动机是什么?是否存在理论依据或实验支持?

模型架构 · 字节真题

回答与解析

原始配置与参数动机

原始Transformer使用d_model=512d_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选型应在相同预算下比较质量、训练稳定性、吞吐和激活内存。

口语版讲法(约4分钟)

  • 给出原始4倍配置
  • 解释逐token非线性容量
  • 否定虚构统一消融
  • 推导SwiGLU预算匹配
  • 说明选型评测

原始Transformer里,模型维度d model是五百一十二,FFN中间维d ff是两千零四十八,所以常被概括为扩展到四倍。FFN对每个token位置独立应用同一组两层线性变换和非线性激活,先从d扩到更宽的通道,再投影回d,以便和残差相加。它的作用是增加逐token的非线性表示容量,不是自编码器那种为了重建而压缩再解码的瓶颈。

四倍不能说成理论最优。原始论文采用了这个配置,但没有提供所谓二倍、四倍、八倍完整消融并证明四倍普遍最好。中间维应该和模型深度、attention宽度、参数预算、训练数据、激活函数及硬件一起选择。某个模型使用四倍,只能说明这是成熟起点,不能外推到所有规模和任务。

还要纠正一个相关比喻:attention不是纯线性模块。Q、K、V投影本身是线性的,但QK转置形成输入相关分数,之后还有scale、mask和softmax,再对V加权。因此整体attention对输入是非线性的。不能用“attention只做线性混合,所以必须靠四倍FFN补非线性”作为严格推导。

现代模型常用SwiGLU等门控FFN。普通两层FFN主要有一组d到四d的上投影和一组四d到d的下投影,总体大约八d平方参数。门控FFN通常有两条从d到m的上投影和一条m到d的下投影,大约三dm。若要和前者近似匹配参数量,令三dm接近八d平方,就得到m约为八d除以三。实际实现还会按张量核友好尺寸取整。

这个八分之三同样不是普遍定理,只是预算匹配。若模型使用MoE、稀疏激活或不同门控结构,计算方式会变化。工程比较时我会固定总参数或每token FLOPs,测验证loss、下游质量、训练稳定性、吞吐和激活内存,并检查kernel利用率。这样才能回答某个宽度是否值得,而不是把四倍当成被理论证明的常数。

还要区分参数量与激活内存。更宽FFN不仅增加矩阵计算,也会放大中间激活;激活检查点可以换取显存,但会增加重算。若使用稀疏MoE,只有被路由专家参与每token计算,总参数与激活FLOPs又要分开报告。

FFN宽度还会影响模型参数在attention与逐token变换之间的分配。相同总参数下,增加中间维可能要求减少层数或attention宽度,所以单独扩宽后得到的提升不能证明比例本身最优。

宽度选择也应记录舍入规则,否则不同硬件对齐会让名义比例与真实参数量不一致。

关键一句:SwiGLU中间维约八分之三倍d为何来自参数预算匹配。

核验来源

  1. Attention Is All You Need
  2. GLU Variants Improve Transformer
  3. LLaMA: Open and Efficient Foundation Language Models

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设现在为 Transformer 设计 FFN hidden size,需要在容量、参数量和计算之间取舍。你会把原始 4 倍配置当作起点,还是当作理论必需?如何验证?

  2. 问法 2 · 层层追问

    FFN 对每个 token 做什么?……为什么先扩维再投影回 d_model?……原论文为何常见 4 倍?……SwiGLU 的中间维怎样做参数或 FLOPs 匹配?

  3. 问法 3 · 直球技术

    请解释 Transformer FFN 的逐位置非线性通道扩展、常见 hidden ratio 的经验来源、缺少普遍最优证明,以及激活函数和预算变化下的选型。

同模块相关题目