在上一章中,我们已经知道,Attention 的作用是:让模型能够在生成每个 Token 时,回看并加权所有历史信息。

这解决了一个关键问题, “上下文相关性”

但如果我们就草率的认为Attention = 智能, 那就错了。

因为仅靠 Attention,其实模型还是做不到,把得到的“信息”变成“推理能力”

所以其实在 Transformer 里有两个核心模块:

Attention(负责“找关系”)
FFN(负责“加工信息”)
很多人看到这里会产生一个误解,Attention 是核心,FFN 是辅助?

不对,这完全弄反了.

在真实模型里:

FFN 才是参数量最大、最“像知识”的部分

而 Attention 更像“信息路由系统”。所以我们先从Attention的局限性开始讲起

5.1 Attention 的局限性
我们先回到最早这句话:

小明昨天去北京出差,今天他回来了。

Attention 能很好解决:

“他”是谁
北京指代什么
时间关系
但是我们换一个任务:

把这句话改写成正式邮件

或者:

总结这段话的核心意思

或者:

推理小明的行程逻辑

Attention 马上就会遇到一个问题,它只能“关联信息”,但不能“加工信息”。

以做一个简单的比喻
Attention,它就像一个“资料整理员”.

它很擅长:

找相关内容
做信息匹配
拼接上下文
但却它不擅长:“加工、抽象、归纳”

所以 Transformer 需要第二个模块:FFN(前馈神经网络),那么FFN到底是什么呢?

5.2 FFN:真正的“加工工厂”
我们直接让Attention和FFN对比一下.

Attention vs FFN
模块 做什么
Attention 找信息
FFN 处理信息
可以用后厨做一个比喻
Attention:后厨采购员
他会:

查看所有食材
决定买什么
决定买多少
FFN:大厨
他会:

将买回的食材(信息)加工
炒至成菜肴(高级特征)
回到模型
Attention 输出的是:“相关信息集合”.

但 FFN 做的是:把这些信息归纳总结后重新“加工成新的表达”.

我们还是找到小明~
输入:

小明昨天去北京出差,今天他回来了

Attention 可能输出:小明 + 北京 + 出差 + 时间关系

FFN 则会进一步加工成:小明完成了一次北京出差行程

所以关键区别就在于:

Attention 不创造信息

FFN 才负责“生成新的表达能力”

5.3 FFN 的基本结构
在 Transformer 里,它长这样:

输入向量

线性变换(升维)

激活函数(ReLU / GELU)

线性变换(降维)

输出向量

用一句通俗的话讲解的话,实际上 FFN = 把信息“放大 → 变形 → 压缩”的加工器

这是一个比较关键的点.
Attention 是多个 Token 之间的信息交互

FFN 则是每个 Token 自己内部的“脑内处理”

大概就是这样:

模块 作用范围
Attention Token 之间交流
FFN Token 自己思考
5.4 举个例子理解 FFN
我们继续用小明~,

小明昨天去北京出差

Attention 做的是:

小明 ↔ 他(指代关系)
北京 ↔ 地点关系
但 FFN 做的是:

“这句话整体是什么意思?”

把FFN 的工作方式比喻为人类学习方式的话

我们可以理解为

Attention—你在查资料

FFN—你在理解资料

继续请出我们的老演员,小明~~
同一条信息:

小明昨天去北京出差

Attention 看到的是:

小明
北京
出差
时间关系
但 FFN 会则会抽象和重组整个信息:

把这些“碎片信息”组合成一个新的表达

例如:

一次商务出行事件

注意:

这一步不是纯“检索”,而是有计算:

压缩 + 抽象 + 重组

5.5 FFN 的本质:逐点“非线性变换”
FFN 做的事情:
对每一个 Token 向量:

单独做一次“非线性加工”

什么叫非线性?
线性 = 机械加减
例如:

小明 + 1 = 小明?
北京 + 2 = 北京?
没有意义

非线性 = 产生新语义
例如:

输入:

“小明 + 出差 + 北京”

输出:

“商务活动”

👉 FFN 的作用就是:

把“简单叠加的信息”变成“新的语义结构”

5.6 FFN 的关键结构:升维 → 压缩
这是 FFN 最核心的设计。

Step 1:升维(Expand)
把一个向量:

768维

扩展成:

3072维

为什么要升维?

因为升维之后才能存储更多信息.

空间变大 → 可以表达更多“组合关系”

我们可以理解为:

原来只有一块钱,升维之后, 你就有了5块钱, 你可以购买和组合购买更多的东西.

Step 2:非线性变换(ReLU / GELU)
这一层只做一件事:

筛选 + 激活 + 抑制

我们可以简单理解为,通过算法将有用的信息放大,将没用的信息压缩.

Step 3:降维(Project back)
再从:

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐