零基础认识大语言模型(LLM)工作原理(6.从 SwiGLU 到 MoE —— FFN 才是大模型真正的算力核心)
本章导读这篇我们还是继续讲FFN.因为,这个模块一直在更新和升级本章建议与上一章联合食用,效果更佳.上一章地在前面章节我们已经建立了一个基础认知Attention负责“找关系”FFN负责“做计算 / 做语义加工”但在现代大模型LLaMA / Qwen / DeepSeek / GPT 系列中有一很重要的现实情况Transformer 绝大部分参数和算力都消耗在 FFN 上而不是 Attention。这一章我们会回答三个关键问题本章核心问题为什么 FFN尤其是SwiGLU是算力大头SwiGLU 到底解决了什么“工程问题”MoEMixture of Experts为什么是 FFN 的终极形态6.1 Attention 不是算力核心很多新手(包括我自己)会直觉认为Attention 核心 (因为名字确实有点唬人,注意力~)但真实情况是,在最近几年的 Transformer 中模块参数占比计算占比Attention20%~40%中等FFN / SwiGLU60%~80%最大为什么会这样上一章我们也简略讲过.因为Attention 主要做“信息路由”FFN 才做“高维非线性计算”用我们熟知的系统可以简单总结一下Attention 是“通信系统”FFN 是“计算系统”。6.2 从 FFN 到 SwiGLU为什么要改结构我们回顾经典 FFNx → Linear(升维) → GELU(激活函数) → Linear(降维) → y会有些什么问题问题1信息是“无筛选加工”所有输入一视同仁同一个非线性函数处理没有“选择机制”问题2表达效率不够模型想表达复杂函数则需要更大维度更多层数问题3冗余计算严重很多信息其实是不重要 / 噪声 / 局部相关但依然要被完整计算。6.3 SwiGLU第一次“结构性升级”SwiGLU 的本质变化是从“单路径变换” → “双路径门控系统”SwiGLU 结构x ├── W1 → 内容分支 └── W2 → 门控分支 → SiLU ↓ 逐元素相乘 ↓ W3 输出看起来是不是有点复杂了?我们只要记住,关键思想只有一句不是模型中所有信息都值得被激活我们用个例子跟初级的FFN对比一下旧 FFN一个老师对所有学生统一讲课SwiGLU一个老师 一个助教老师负责讲内容助教负责“哪些内容该重点讲”所以产生了一个核心结果模型开始具备信息筛选能力Feature Selection6.4 SwiGLU 带来的三个关键变化① 表达能力提升同样参数量情况下能表示更复杂函数② 训练更稳定原因梯度更平滑信息流更可控③ 更符合语言稀疏性我们现实的语言本身也不是所有 token 都重要而且是信息分布极不均匀的所以SwiGLU 正好匹配了这种结构6.5 升级对FFN的理解到这里我们就要升级一下对FFN的理解了FFN 不再只是“变换层”而是“特征选择 特征重组系统”6.6 MoE(混合专家模型)FFN 的终极形态我们理解了上面的内容.现在进入真正的工业级结构MoEMixture of Experts混合专家模型MoE 是什么我们还是先用一句话简单概括一下:把 FFN 拆成多个“专家网络”只激活部分专家计算大致结构长这样输入 ↓ Router路由器 / | \ Expert1 Expert2 Expert3 ... \ | / 输出融合6.7 MoE 的核心思想我们还是做个简单的类比,来对比一下和传统FFN的区别传统 FFN一个“万能专家”什么都要学语法代码数学知识MoE一群“专科医生”例如Expert A语言Expert B代码Expert C数学Expert D推理Router(路由) 做什么Router 会判断当前输入应该交给哪个专家处理例如输入“写一个 Java Redis 缓存代码”Router 会选择Java ExpertRedis Expert6.8 MoE 为什么这么重要因为它解决了一个核心问题模型规模增长 vs 计算成本爆炸传统 Transformer参数越多,则每次推理都要全量计算MoE参数可以非常大但是每次只激活部分参数举例模型总参数实际激活Dense LLM70B70BMoE LLM400B40B~80B所以实际上,MoE “用参数换能力用路由省算力”6.9 SwiGLU vs MoE关系是什么很多兄弟其实可能会混淆.我们直接简单定义一下.SwiGLU单个 FFN 内部的“门控结构优化”MoE把 FFN 整体拆成多个“专家”本质关系MoE SwiGLU 的“系统级扩展”6.10 记住非常重要的工业结论现代大模型结构基本是Attention ↓ SwiGLU FFN 或 MoE FFN ↓ Attention ↓ SwiGLU FFN 或 MoE FFN并且FFN 占参数 60%~80%Attention 占 20%~40%所以工业界结论是Transformer 的本质是“FFN 驱动的系统”Attention 是辅助结构。6.11 为什么 FFN 才是“知识载体”这也是比较关键的一点Attention不存知识只做“信息关联”FFN / MoE存语义模式存统计知识存任务映射举个例问Redis 是什么真正起作用的是FFN 中已经学习到的“参数化知识结构”所以我们结合上面一系列的讲解,应该就能明白模型的“知识”主要压缩在 FFN 权重里6.12 总结本章如果只记一句话SwiGLU 让 FFN 具备“选择能力”MoE 让 FFN 具备“分工能力”而现代大模型的真正智能核心其实是 FFN 系统。本章总结我们完成了三个认知关键升级① FFN 从“变换层”升级为“选择系统”SwiGLU 引入门控机制② FFN 从“单体结构”升级为“专家系统”