神经网络Transformer架构中的动态稀疏激活
字数 715 2025-11-29 17:11:37
神经网络Transformer架构中的动态稀疏激活
动态稀疏激活是神经网络中一种计算优化技术,特别适用于Transformer架构。其核心思想是:在模型前向传播过程中,根据输入数据动态选择只激活部分神经元或网络层,而非全部计算路径,从而显著减少计算量。
具体原理如下:
-
门控机制设计
在Transformer的FFN(前馈网络)中引入可学习的门控函数。例如对每个神经元计算激活分数:g(x) = σ(W_gate·x + b_gate),其中σ为sigmoid函数。当g(x) > 0.5时该神经元才参与计算,否则跳过。 -
动态决策过程
以MoE(专家混合)层为例,每个输入token通过路由网络计算各专家的权重,仅选择权重最高的k个专家进行激活。例如在Switch Transformer中采用k=1,使每个token仅经过单个FFN专家层,将计算量降低为原来的1/n(n为专家总数)。 -
负载均衡优化
为避免某些专家被过度激活,需引入负载均衡损失。通过计算专家选择的方差,并添加辅助损失项促使token均匀分布,例如使用z_loss确保各专家处理的数据量均衡。 -
梯度传播特性
对稀疏激活的神经元,需使用直通估计器(STE)处理梯度。当门控函数输出为0时,在反向传播中仍传递梯度,确保门控参数可训练。具体采用g(x) = round(σ(x))在前向传播,在反向传播时使用σ(x)的梯度近似。
实际应用中,如Google的GLaM模型通过动态稀疏激活,仅激活97B参数中的1.2B参数 per token,在保持相同性能的同时将训练成本降低2/3。这种技术特别适合万亿参数级别的超大模型,实现了计算效率与模型容量之间的平衡。