大模型 · 底层原理 与《激活函数》互补

大模型里的「神经元激活」到底是啥?

多少个神经元被"点亮"?多少个只是"陪跑"?本文把"参与计算"和"被激活"彻底分开讲,并用可拖动的小实验让你亲眼看见稀疏激活。

一、先厘清:本文讲啥(和《激活函数》不一样)

本目录已有一篇讲激活函数。它回答的是:"套在神经元外面的那条非线性曲线是什么"。 本文回答的是另一件事:"一个神经元在算完之后,到底有没有被'点亮'?整个网络里有多少被点亮、多少只是参与了运算却几乎没贡献?"

激活函数(已讲)

一条规则 / 一个阀门。决定"输入多大,就放多少信号出来"。它是固定的数学公式(ReLU、GELU、SiLU…)。

神经元被激活(本文)

一次前向传播里的状态。某个神经元在这一刻的输出是不是"显著非零",就是它"有没有被激活"。它会随输入千变万化。

一句话拎清:激活函数是路灯的开关规则;神经元被激活是这盏灯此刻亮没亮。规则永远在那,灯亮不亮看当下流过的数据。

二、一个神经元到底算什么(完整链路)

一个神经元从收到信号到给出输出,要过四步。前两步是"线性计算",最后一步才是"激活":

输入 x₁…xₙ
加权求和 Σ wᵢxᵢ
加偏置 +b
激活函数 f(·)
输出 y
y = f( w₁x₁ + w₂x₂ + … + wₙxₙ + b )
x₁ x₂ x₃ w₁ w₂ w₃ 加权求和 Σ wᵢxᵢ + b 激活函数 f(·) y 输出(激活值)
关键处:前 3 步(加权求和 + 偏置)对所有神经元都是同一套线性操作,没有"激活 / 没激活"之分——只要网络在跑,大家都在算。 真正的"是否被激活",在最后一步 f(·) 之后由输出 y 是不是显著非零决定。

三、什么是「被激活」:输出显著非零才算数

神经元"被激活"不是一个非黑即白的官方名词,通常有两种理解,但核心都指向同一件事——它的输出有没有对结果真正做出贡献

硬激活(ReLU 类)

ReLU:x>0 输出 x,x≤0 输出 0。输出是 0 就叫"没激活/被关死";输出 >0 才"亮了"。一半左右常被直接清零。

软稀疏(GELU / SiLU)

现代 LLM 多用平滑激活,理论上输出全非零。但大量维度的值极其接近 0,相当于"几乎没亮",于是也用"显著非零"来定义激活。

特征激活(可解释性)

研究里也把"对某一语义(如'法语''代码''负面情绪')强烈响应的神经元"叫被激活。本文侧重数值意义上的激活

ReLU:≤0 直接清零 这段输出=0(没激活) 这段亮了 GELU/SiLU:平滑但大量≈0 负区≠0但极小 正区逐渐放大
小结:判断"有没有被激活",看的是激活后的输出值。ReLU 用"是否 >0"一刀切;GELU/SiLU 用"是否显著非零"来近似。无论哪种,"大量神经元输出接近 0"这件事是共通的——这就是稀疏激活

四、关键区分:参与计算 vs 被激活(最容易混)

这是全文最该记住的一对概念。它们说的根本不是同一类东西:

维度参与计算(Participating)被激活(Activated)
说的是什么参数 / 权重有没有进矩阵乘法激活值 / 神经元输出是否显著非零
密集模型里几乎全部参数都参与(≈总参数量)只有一部分输出非零(稀疏)
比喻整座体育场都通了电只有部分灯真的亮着
能否省掉密集模型里不能省(都参与了)接近 0 的可以剪掉/近似(可压缩)
同一个词:"计算"——两种含义 ① 参与计算的神经元(都通电) 全部亮蓝边=全部参与 ② 真正被激活的(亮着) 只有蓝实心=被激活,灰=没亮 右边是左边的"子集"——被激活的 ⊆ 参与计算的
注意:在普通密集模型里①和②差别巨大——所有参数都参与计算,但只有部分被激活。 而在 MoE(混合专家)模型里,连"参与计算"都可以是稀疏的(某些专家整块不参与),于是"激活参数"远小于"总参数"。这一点放到第八节细讲。

五、具体数字:以 LLaMA-7B 为例

光说概念没感觉,上真实配置(LLaMA-7B 的公开超参)。我们聚焦 FFN 前馈层——它是最典型的"神经元阵列":

隐藏维度

4096

每层输入的向量长度

FFN 中间神经元

11008

单层 FFN 的"神经元"数量(SwiGLU 中间维度)

层数

32

共 32 层 Transformer

一个 token 前向走一遍,会发生什么?

  • 参与计算:模型全部约 67 亿参数都卷进了矩阵乘法(密集计算,无法跳过)。
  • 被激活的神经元:仅 FFN 中间层就有 32 × 11008 ≈ 35 万个神经元单元,但每一层、每一个 token 经过时,只有一部分显著非零
  • 若是 ReLU 类激活,约 一半(~5.5 万/层)被直接清零;若是 GELU/SiLU 类,值全非零但大量接近 0,真正"活跃"的可能只占 10%~40%。
这些是大模型研究中普遍观测到的量级:FFN 中间激活高度稀疏。具体活跃比例因模型、层深、输入而异,但"多数神经元此刻接近沉默"是共识。

六、形象类比:体育场灯阵 / 图书馆取书

类比 1:体育场灯阵

把整个模型想成一座能装几亿盏灯的巨大体育场:

类比 2:图书馆取书

把参数/神经元想成图书馆里几亿本书:

① 全部通电(参与计算) 所有格子都"在线" ⇒ 同一刻 ⇒ ② 真正点亮(被激活) 只有蓝格亮=被激活

七、交互演示:稀疏激活灯阵

下面是一块 16×16 = 256 个神经元的阵列。拖动滑块改变"激活比例",看"被点亮"的数量怎么变。这就是稀疏激活的直观版:

提示:实际 LLM 里"亮着"的比例往往比这还低——很多层活跃神经元只占 10%~40%。把滑块拉到 20% 左右,就更接近真实 FFN 的稀疏度。

八、MoE:总参数 vs 激活参数(为什么"激活多少"是大话题)

在混合专家(Mixture-of-Experts)架构里,"多少神经元被激活"不再只是学术细节,而是直接决定推理成本的核心指标:

模型总参数每 token 激活参数激活比例专家机制
Mixtral 8×7B46.7B≈12.9B≈28%8 专家 / 每层选 2
Qwen3-235B-A22B235B≈22B≈9%多专家 / 每层选 top-k
DeepSeek-V3671B≈37B≈5.5%256 路由专家 + 共享专家
密集模型:全员上岗 全部参与(激活≈100%) MoE:只唤醒 2/8 专家 蓝=本次被激活,灰=整块跳过 总参数全在,但只算 2/8 → 省钱
这里"被激活"升级了:从"单个神经元的输出是否非零",升级成"整个专家块是否参与本次计算"。MoE 让"激活参数 / 总参数"成了衡量模型性价比的硬指标——这正是大模型工程里天天盯的数字。

九、为什么要关心"神经元激活"这件事

模型压缩 / 剪枝

既然大量神经元输出≈0,就能把长期沉默的神经元剪掉或合并,模型变小、变快,效果掉得不多。

可解释性

找出"一提到代码就亮、一提到法语就亮"的神经元,就能看懂模型内部在"想"什么、怎么犯错。

省算力(MoE)

只在被激活的专家上花钱,是当今旗舰模型"参数巨多却跑得起"的根本原因。

反直觉提醒:模型"聪明"不靠"所有神经元都拼命亮",而靠海量神经元里精准的一小撮被点亮。稀疏,才是大模型既大又省的关键。

十、小结速记

问题答案
神经元激活 = 激活函数?不是。激活函数是规则,激活是此刻的状态。
怎么算"被激活"?激活函数输出是否显著非零(ReLU:>0;GELU/SiLU:显著≠0)。
参与计算 vs 被激活?参与=参数进了矩阵乘(密集);激活=输出非零(稀疏)。激活 ⊆ 参与。
7B 模型有多少神经元?仅 FFN 中间层就有 ≈35 万单元;每 token 每层只有部分被激活。
MoE 里"激活"指啥?每 token 只唤醒少数专家 → 激活参数远小于总参数(如 28%、9%、5.5%)。
有啥用?剪枝压缩、可解释性、MoE 省算力——稀疏即性价比。
本文为《大模型工作原理图解系列》之一,与同目录《激活函数》互补:那篇讲"阀门规则是什么",本文讲"灯亮了几盏"。 配套 Transformer / QKV / 参数 / 注意力 / 幻觉 等可视化文档均在本目录。
← 返回「大模型原理」总目录