
做 LLM 架构分析久了你会慢慢发现一个规律新模型发布稿里真正拉动效果的往往不是更深的网络、更大的数据而是一些藏在模块内部的“门控设计”。Kimi K3 的公开技术报告里注意力侧出现了 Gated MLA键维度调制侧出现了 KDA 门控分支前馈网络侧换上了 SiTU-GLU而更早的 Llama、Mixtral、Gemma 3 26B A4B 这类 MoE 模型FFN 又清一色选择 SwiGLU。门控已经成为现代大模型最通用的“信息阀门”。这篇文章是 LLM Architect 系列的第十三篇会把 Kimi K3 相关的几类门控机制一次拆透覆盖门控注意力与 Gated MLA、KDA 的门控分支、MoE 中的 SwiGLU 与 SiTU-GLU从数学形式到 PyTorch 实现再到工程落地中的数值稳定性、参数初始化和常见踩坑。无论你是在读论文的研究生、正在魔改 MoE 的工程师还是想理解新模型架构差异的算法同学这篇文章都值得收藏备用。1. 为什么大模型需要门控机制1.1 门控的本质信息选择门控Gating这个思想最早可以追溯到 LSTM 中的遗忘门和输入门网络通过一个可学习的标量通常经过 sigmoid 压缩到 0 到 1 之间来决定“旧记忆保留多少、新信息写入多少”。这套思路放在今天的 Transformer 里依然成立只是被用到了更细的粒度上。我们可以给门控下一个统一定义门控是一个可微的、可学习的“阀门”它根据输入 x 生成一组权重 g然后用 g 对某个中间表示 y 做逐元素缩放即 y y ⊙ g。当 g 接近 1 时放行信息当 g 接近 0 时抑制信息当 g 处于中间值时实现软选择。门控区别于普通激活函数的关键在于激活函数是逐元素、无条件的压缩而门控往往带有“上下文条件”——同一个位置的同一个数值在不同输入环境下应该被放行还是被抑制由模型动态决定。在 LLM 里门控几乎无处不在FFN 里的 Gated Linear Unit 是特征维度的门控MoE 里的 Router 是专家维度的门控而 Gated MLA、KDA 门控分支则是把门控用到了注意力键值表示的维度上。理解这些机制的共性比背公式更重要。1.2 门控在 Transformer 的三个核心位置Transformer 中门控主要出现在三个位置理解这个分类框架之后看到任何带“Gated”的模块都能快速定位。第一FFN 激活层的门控。经典 MLP 是 x → 线性变换 → 非线性激活 → 线性变换。而带 GLU 的 FFN 将单分支改成双分支gate 分支经过激活函数up 分支保持线性两者逐元素相乘后再做下投影。SwiGLU、GELU、SiTU-GLU 都属于这一类。它们的作用是让每个隐藏维度上的信息既能被“放大”又能被“筛选”。第二注意力表示的维度门控。注意力计算中Q、K、V 都是线性投影得到的。Gated MLA 的做法是在 KV 压缩表示或展开后的 Key/Value 上额外乘一个由当前 token 生成的门控向量让不同 token 在参与注意力打分时对同一维度有不同权重。这相当于给注意力加了一个“软注意力掩码”但比掩码更灵活因为每个 token 都有自己的门控向量。第三MoE 的专家路由门控。Router 对每个 token 输出所有专家上的概率分布然后取 Top-K 个专家进行加权组合。这个路由过程本质上也是门控只不过被门控的对象不是单个维度而是一整个专家子网络。Kimi K3、Mixtral、Gemma 3 26B A4B 这类 MoE 模型路由门控都承担着“把 token 分给最合适的专家”的核心职责。1.3 从门控卷积到门控线性单元一条简短历史线门控最初在 NLP 领域大规模应用是 2017 年 Dauphin 等人提出的 Gated CNN把卷积输出拆成两个分支一个经过 sigmoid 作为门另一个保持线性相乘后送入后续层。同年Yann LeCun 团队提出了 GLUGated Linear Unit把门控从卷积推广到了线性层GLU(x) σ(xW_g b_g) ⊗ (xW_v b_v)。这里 σ 是 sigmoid⊗ 是逐元素乘。2020 年 Shazeer 在《GLU Variants Improve Transformer》中系统对比了 GLU 的各种变体发现把 sigmoid 门换成 ReLU、GELU、Swish 后模型在语言建模上的困惑度均优于原始 GLU其中 Swish 门即 SwiGLU 效果最好。随后 PaLM、LLaMA 系列将其变成标配。到这里门控才真正从“可选组件”变成了“标准架构的一部分”。Kimi K3 的 SiTU-GLU 本质上是在