news 2026/4/26 3:20:32

深度学习篇---FFN

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深度学习篇---FFN

一、什么是 FFN?

FFN(Feed-Forward Network,前馈网络)是 Transformer 架构中的核心组成部分之一,位于多头注意力(Multi-Head Attention)层之后。

它的作用可以这样理解:注意力层负责“收集信息”(哪里重要、谁和谁相关),而 FFN 层负责“处理信息”(对收集到的信息进行非线性变换和特征映射)。两者分工明确,缺一不可。

在标准的 Transformer 层中,结构为:

输入 → 多头注意力 → 残差连接 + LayerNorm → FFN → 残差连接 + LayerNorm → 输出

二、FFN 的标准数学形式

Transformer 原文中,FFN 是一个两层的全连接网络,中间有一个非线性激活函数(通常为 ReLU 或其变种):

或者写成分层形式:

其中:

直观理解:FFN 先把输入向量“升维”到一个更高维的空间,让模型有更多“表达自由度”,然后非线性激活引入复杂模式,最后再“降维”回原来的维度。


三、FFN 的核心作用

功能详细解释
特征非线性变换注意力层是线性的(加权求和),没有非线性能力;FFN 通过激活函数引入非线性,让模型能拟合复杂函数
特征维度拓展dff​ 通常设置为 4× dmodel,提供更丰富的中间表示空间
位置独立处理对每个 token 独立应用相同的 FFN,不涉及 token 间的交互(这部分由注意力完成)
知识存储研究表明,预训练模型中的大量“知识记忆”实际上存储在 FFN 层中,而非注意力层
跨 token 信息整合的补充注意力层关注“谁和谁相关”,FFN 层则基于相关信息进行推理和变换

四、FFN 的各种变体

随着大模型的发展,研究者提出了多种 FFN 变体,各有优劣:

变体名称公式特点
标准 FFN (ReLU)原始 Transformer 设计,简单有效
GELU FFNGPT、BERT、LLaMA 等常用,更平滑
SwiGLU FFNLLaMA、PaLM 等使用,效果更好
GeGLU FFNGLU 系列变体之一
GLU 变体系列多种门控线性单元引入门控机制,增强表达能力

实际应用现状

  • LLaMA 1/2/3:使用 SwiGLU(SwiGLU 是目前最主流的选择)

  • GPT-3:使用 GELU

  • BERT / 原始 Transformer:使用 ReLU 或 GELU

SwiGLU 之所以流行,是因为它结合了 Swish 激活和门控机制,在不同规模模型上都表现出更稳定的训练和更好的性能。


五、FFN 中的关键参数:膨胀率

膨胀率 =

模型膨胀率说明
原始 Transformer4标准设计
BERT-base4 (3072/768)沿用经典比例
GPT-34标准比例
LLaMA约 2.7~3.5略低于 4,更高效
小型模型可低至 2为了降低参数量

设计权衡

  • 更高的膨胀率 → 更多参数 → 更强表达能力 → 更多训练和推理成本

  • 更低的膨胀率 → 更高效 → 可能损失容量


六、FFN 的参数量与计算占比

BERT-base为例(dmodel=768,dff=3072dmodel​=768,dff​=3072):

组件参数量占比
多头注意力~2.36M~25%
FFN(两层)~7.08M~75%
LayerNorm、Embedding 等少量少量

关键发现:FFN 占用了 Transformer 层中约 2/3 到 3/4 的参数!这也是为什么 MoE(混合专家模型)会将专家放在 FFN 位置进行替换。

计算量:在推理时,FFN 的计算占比同样很高(约 60%~70%),因为需要为每个 token 独立做两次大维度的矩阵乘法。


七、FFN 的局限性

  1. 参数量大:占模型总参数的大部分,成为存储和传输的瓶颈

  2. 计算密集:是推理延迟的主要来源之一

  3. 位置无关处理:对每个 token 独立应用,无法利用 token 间已建立的交互关系(这可能也是缺点,但本质上是设计选择)

  4. 知识存储过于集中:实验发现,破坏 FFN 的某些神经元会显著损害模型对特定事实的召回,这既有鲁棒性隐患,也为“模型编辑”提供了抓手


八、优化 FFN 的方式

优化方法思路代表工作
低秩分解将 W1,W2​ 分解为低秩矩阵LoRA(微调时)
稀疏 FFN只激活部分神经元MoE 架构、ReLU 等天然稀疏
共享 FFN跨层共享 FFN 参数ALBERT
剪枝移除不重要的神经元模型压缩
结构化压缩减少 dff​TinyBERT、DistilBERT
替代激活函数降低计算密度GELU、SwiGLU 替代 ReLU

九、Mermaid 总结框图


十、一句话总结

FFN 是 Transformer 中的“计算核心”和“知识仓库”:它占据模型大部分参数,通过先升维后降维的非线性变换,为每个 token 独立地注入推理能力和知识记忆。虽然注意力负责“连接”,但真正让模型“思考”并记住事实的,很大程度上是 FFN。理解 FFN,就抓住了大模型设计的半壁江山。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/26 3:11:03

神经网络联合建模:分类与回归任务的高效解决方案

1. 神经网络在分类与回归联合任务中的应用价值在真实业务场景中,我们常常遇到需要同时预测离散类别和连续数值的问题。比如电商平台既要判断用户是否会点击商品(分类),又要预估点击后的停留时长(回归)&…

作者头像 李华
网站建设 2026/4/26 3:11:00

2026年全国青少年信息素养大赛算法应用主题赛C++赛项初赛+复赛备赛资料(2026最新模拟题+历年初赛复赛真题)

2026年全国青少年信息素养大赛算法应用主题赛C赛项初赛复赛备赛资料(2026最新模拟题历年初赛复赛真题) 2026年全国青少年信息素养大赛算法应用主题赛C样题及答案解析 https://noicsp.blog.csdn.net/article/details/159561154?spm1011.2415.3001.5331 …

作者头像 李华
网站建设 2026/4/26 3:10:42

自学软件测试day14——LINUX

Linux操作系统基础与应用摘要 本文系统介绍了Linux操作系统的基础知识与应用方法。首先阐述了Linux作为开源操作系统的特点,包括稳定性、多用户支持、安全性等核心优势。重点介绍了常用命令操作,包括目录管理、文件操作、文本查看等实用技巧。此外&#…

作者头像 李华
网站建设 2026/4/26 3:10:02

基于browser-use的AI浏览器自动化:从原理到实战部署指南

1. 项目概述:一个能“看见”和“操作”网页的AI智能体 如果你正在寻找一个能让AI大语言模型(LLM)真正“上手”操作浏览器、完成网页任务的工具,那么你找对地方了。 browser-use/web-ui 正是这样一个项目,它基于强大…

作者头像 李华