R45 · 读取之后,还要怎样处理拿到的内容?
当前位置已经读到并接回上下文内容。还需要在这一行内部加工通道,才能形成可继续层叠的完整块。
状态 b4
默认图在读取后接入FFN,强调对当前内容作非线性通道变换。
FFN提供另一种逐位置非线性;attention已含softmax,不能把它称为完全线性。
状态 b5
FFN外再接残差与归一化,得到可层叠的完整块;可见范围并未因FFN新增。
状态 b0
备用态从同一u出发扩到六维,ReLU把负项置零。观察扩展与非线性各改变什么。
状态 b1
W₂把隐藏通道投回四维;各位置使用同一网络,但彼此不在此步交换内容。
状态 b2
加回原u,再用相同归一化配置得到z。两条分支的来源与第二次残差在此汇合。
状态 b3
完整块并置跨位置读取与逐位置加工。沿同一行串起两头、输出投影、两次残差/LN及FFN。
公式与算例详情
每个位置内部的通道变换
沿用 R43–R44 的全可见、未训练 post-norm 算例,dropout 关闭;继续使用第一次 Add & Norm 得到的 u,与 B01 的 causal 前向不同。可从 b0 逐步复算,或回到默认解释 b4。
FFN 对每个 token 独立应用相同的通道网络:$f_i=\operatorname{ReLU}(u_iW_1+b_1)W_2+b_2$。本例采用4→6→4并令偏置为0。第一层把 $u=(u_1,u_2,u_3,u_4)$ 映射为 $(u_1,u_2,u_3,u_4,u_1-u_2,u_2-u_1)$;ReLU 后得到约 $(1.170705,0.649589,0,0,0.521116,0)$。
第二层采用 $f=(0.5h_1,0.5h_2,0.5h_3+0.25h_5,0.5h_4+0.25h_6)$,得到 $(0.585353,0.324795,0.130279,0)$。与上页 u 相加,得到 $(1.756058,0.974384,-0.255140,-1.434875)$;再用相同 $\epsilon=10^{-5}$、$\gamma=(1,1,1,1)$、$\beta=(0,0,0,0)$ 做 LayerNorm,得到本层输出 $z\approx(1.233154,0.588798,-0.424732,-1.397220)$。
attention 负责跨 token 的信息交换,FFN 负责每个 token 内的非线性通道变换;同一 FFN 参数在各位置共享。本例后两维的负数经过 ReLU 归零,但由残差仍可保留原表示分量。FFN 的价值不建立在“attention 完全线性”的错误前提上:softmax 与输入相关权重已经使 attention 非线性。
参考与采用
- Vaswani et al. · Attention Is All You Need:原始 encoder–decoder Transformer:信息来源、并行性、路径和代价。 复核位置:§3、Table 1/2;本轮核对v7 PDF;首次提交2017-06-12
原课页采用记录:M27 attention 之后的 block。页码均按PDF物理页计。
继续学习
若 ReLU 把负数置零后为何仍能保留信息不直观,沿FFN、残差与第二次归一化完整复算,不停在隐藏层。Transformer 的信息流“把完整单元接回翻译模型”和LAB 03 F 段继续检查 u→FFN→相加→LN;再把 attention 输出投影置零,说明残差为什么仍可传递原表示,而不是断言整个 block 的导数恒为 1。