知识全景图/ 软件工程与系统/ 人工智能全景图/ MLP、FFN、激活函数与 SwiGLU

MLP、FFN、激活函数与 SwiGLU 底层图谱

从 Feed Forward Network、上投影 / 下投影、GELU、SiLU、GLU、SwiGLU 到 MoE 专家,理解 Transformer block 里另一半计算和容量从哪里来

阅读定位: 这一页补在 Token / Attention / TransformerNorm / Residual参数 / 权重 / Checkpoint 之间,专门解释 Transformer block 里的前馈网络。 Attention 负责跨位置搬运信息,FFN / MLP 负责在每个位置内部做非线性加工;本页关注参数形状、激活函数、门控、计算成本、MoE 专家和部署排查。
一、Transformer Block 里 FFN 在哪
Hidden State
当前位置表示
Norm
尺度校准
Attention
跨位置混合
Residual
写回主路
Norm
再次校准
FFN / MLP
非线性加工
Residual
再次写回
模块回答的问题直觉容易忽略什么
Attention当前位置应该读取哪些上下文信息跨 token 信息路由它不是 Transformer 的全部
FFN / MLP读到信息后,当前位置内部怎样加工逐位置非线性变换和特征组合大量参数和计算常常在这里
Activation为什么多层线性变换不退化成一层线性给模型加入弯曲、门槛和选择性激活函数会影响稳定性、稀疏性和吞吐
Gate哪些中间特征应该被放大或抑制用一个分支调制另一个分支SwiGLU / GEGLU 改变权重形状和转换逻辑
一句话:

Attention 像“从上下文里取料”,FFN 像“在当前位置做加工”。只懂 Attention,会漏掉现代 LLM 很大一部分参数、计算和能力形成位置。

二、最小 FFN:上投影、激活、下投影
步骤形状直觉做什么工程含义
Up Projectionhidden_size → intermediate_size把每个 token 的表示扩到更宽的中间空间中间维度越大,参数和 GEMM 计算越多
Activation逐元素非线性让网络能表达复杂函数,而不是多层线性叠加GELU、SiLU、ReLU 等会影响速度和数值特性
Down Projectionintermediate_size → hidden_size把加工后的中间特征压回 residual stream 的宽度必须和残差主路形状对齐
Residual Addx + FFN(x)把 FFN 的增量写回隐藏状态尺度过大或量化误差会污染后续层

最小计算式

FFN(x) = W_down * activation(W_up * x) 是非门控 FFN 的简化直觉。现代 LLM 常用门控变体,所以权重名会变成 gate_projup_projdown_proj

三、GELU、SiLU、GLU 与 SwiGLU
机制核心直觉常见位置注意点
ReLU负值截断,正值保留早期神经网络常见简单快,但表达和梯度特性不是现代 LLM 主流选择
GELU按概率平滑地放过输入BERT、GPT 早期路线常见比 ReLU 平滑,计算略复杂
SiLU / Swishx * sigmoid(x),小值平滑抑制,大值保留门控 FFN 的基础激活之一常出现在 SwiGLU 里
GLU一个分支生成内容,一个分支生成门控门控前馈网络权重形状和普通 FFN 不同
SwiGLUSiLU(gate) * up 后再下投影许多现代 decoder-only LLM 常用能力和效率都好,但转换、量化和 LoRA 目标层要识别 gate/up/down
抓住直觉:

门控 FFN 不是简单多一个激活函数,而是让模型学会“哪些中间特征现在该开、哪些该关”。这会影响容量、稀疏性、权重命名和微调目标层选择。

四、为什么 FFN 常常占很多参数和计算
中间维度通常更宽
FFN 会把 hidden state 扩到几倍宽度,再压回原维度。这个扩张空间带来容量,也带来大量矩阵乘法。
逐 token 独立加工
FFN 不直接跨位置通信,但会对序列里每个 token 都做一次。序列越长,FFN 计算也线性增长。
权重多、带宽也吃紧
推理时 FFN 大矩阵既吃算力,也吃权重读取带宽。量化、kernel fusion 和 batch 编排都会影响吞吐。
成本来源受什么影响优化方向风险
GEMM 计算hidden size、intermediate size、batch、sequence length融合 kernel、张量并行、批处理小 batch 可能吃不满 GPU
激活内存训练时需要保存中间激活反传gradient checkpointing、重计算吞吐下降,训练时间变长
权重带宽参数量、量化格式、设备内存带宽INT8 / 4bit 量化、权重预取质量退化和后端兼容风险
门控分支gate / up / down 多组投影算子融合、正确识别权重名转换和 LoRA 配置容易漏层
五、FFN 和 MoE 的关系
模型类型FFN 怎么变好处工程代价
Dense Transformer每层每个 token 都经过同一组 FFN 权重实现简单、吞吐稳定、部署成熟总参数和激活参数一致,扩容成本高
MoE Transformer部分 FFN 被替换成多个专家,token 只路由到少数专家总容量变大,单次激活参数可控路由、负载均衡、跨卡通信和尾延迟复杂
Shared Expert共享 FFN + 路由专家混合保留通用能力,同时增加专家容量实现和权重格式更复杂
Fine-tuned Expert只调部分专家或 adapter可降低微调成本容易造成路由偏移和任务不均衡

为什么 MoE 常从 FFN 下手

FFN 本来就是逐 token 的非线性加工层,把它拆成多个专家比较自然。Attention 负责全局信息路由,FFN / Expert 负责局部特征加工,两者分工不同。

六、权重、微调和量化里的 FFN
场景要看什么常见坑继续深入
权重转换gate_projup_projdown_proj、激活函数配置把 SwiGLU 当普通 FFN 转,能加载但质量坏参数 / 权重 / Checkpoint
LoRA / Adaptertarget modules 是否包含 gate / up / down只调 attention,忽略 FFN 可能限制任务适配微调 / 对齐
量化FFN 大矩阵的量化误差和校准集覆盖看似困惑度变化小,复杂任务退化明显压缩 / 量化
推理引擎激活函数、门控乘法、down projection 是否融合后端不支持某种激活或 kernel 慢推理计算
可解释性MLP 神经元、特征方向和残差写入把单个神经元过度解释成单一概念模型内部表征
七、怎么排查 FFN / 激活问题
看权重形状
核对 hidden size、intermediate size、gate/up/down projection 形状,以及 config 里的 activation function。
看层输出范数
记录 attention 输出、FFN 输出和 residual 后范数,定位是否某层 FFN 输出异常放大或塌缩。
看后端一致性
同一 prompt 比对原框架、转换后权重、量化权重和推理引擎 logits,确认激活和门控实现一致。
看任务退化切片
FFN 相关量化或微调问题可能先在数学、代码、格式遵循和长上下文综合里暴露。

FFN / 激活证据包

FFN 问题常在权重转换、量化、kernel 融合和 adapter 目标层里暴露。证据包要证明 gate / up / down、激活函数和残差写入都对齐。

证据节点必须记录字段用来排查什么
ffn_confighidden_size、intermediate_size、activation_fn、gate_proj_shape、up_down_shape架构配置和权重张量是否一一匹配
adapter_targettarget_modules、rank、adapter_scale、merge_script_hash、eval_sliceLoRA / Adapter 是否正确写入 FFN 路径
kernel_pathactivation_kernel、fused_mlp_version、dtype、backend_name、logits_diff推理后端和原框架的激活、门控实现是否一致
quant_errorquantization_recipe、calibration_set_id、per_layer_error、rollback_targetFFN 大矩阵量化后是否伤害复杂任务和长尾能力
八、常见误区
误区:Transformer 等于 Attention
Attention 负责跨位置信息混合,FFN 负责逐位置非线性加工。现代 LLM 的容量和计算不能只看 attention。
误区:激活函数只是小公式
激活函数会影响训练稳定性、计算图、kernel 支持、量化误差和权重转换。
误区:MoE 专家等于人类专家
专家是被路由器选择的参数子网络,不一定对应清晰学科、语言或任务模块。
误区:只微调 Attention 就够了
很多任务适配会受 FFN / MLP 影响。LoRA 目标层选择要结合任务、模型家族和评测。
九、回到 AI 主干
AI 全景 张量 / MatMul 神经网络 / 激活 Transformer Norm / Residual MLP / FFN / SwiGLU 权重 / Checkpoint 模型架构 / MoE 模型内部表征

这张图在主线里的位置

Transformer 页给出 block 骨架;Norm / Residual 页解释稳定主路;本页解释子层内部的非线性加工和容量来源。理解它之后,再看 MoE、权重文件、量化、LoRA 和可解释性,会更容易把“参数在哪里、计算在哪里、能力在哪里”对上。