SwiGLU能否超越ReLUGELU,激活函数迭代演进,性能提升18.9%?

2026-10-10 02:241阅读0评论SEO优化
  • 内容介绍
  • 文章标签
  • 相关推荐

容我插一句... 如果我们想在较大模型中采用SwiGLU作为激活函数,先来看我们需要了解SwiGLU的原理和PyTorch实现。SwiGLU是一种结合了Swish激活函数和门控线性单元的激活函数, 它通过门控实现动态特征选择,有效缓解了梯度消失问题,并且在参数效率与模型性能之间取得了更良好的平衡。下面是SwiGLU的Python实现代化码:

造起来。 python import torch import torch.nn as nn

大模型激活函数迭代演进:SwiGLU替代传统ReLU/GELU激活逻辑提升模型性能18.9

也是没谁了... class SwiGLU: def init: super.init self.sigmoid = nn.Sigmoid self.linear1 = nn.Linear self.linear2 = nn.Linear self.linear3 = nn.Linear

def forward:
    gate_h = self.linear1
    up_h = self.linear2
    silu_gate = self.sigmoid
    swiglu_out = up_h * silu_gate
    final_out = self.linear3
    return final_out

该实现包含四个最主要一部分:门控线性单元、 原始特征线性单元、sigmoid激活函数和最终还是输出线性单元。其中,gate_h 和 up_h 是两个独立的线性层,分别负责计算门控信号和原始特征值。sigmoid 激活函数用于计算门控信号的值范围,然后将其应用于原始特征值上。最后再来看,最终还是输出层将 SwiGLU 最终还是结果是进行降维转换以获取最终还是输出最终还是结果是。

抓到重点了。 接下来 我们能够采用 Qwen-7B-Chat 模型作为例子,来验证 SwiGLU 的效果。

阅读全文

容我插一句... 如果我们想在较大模型中采用SwiGLU作为激活函数,先来看我们需要了解SwiGLU的原理和PyTorch实现。SwiGLU是一种结合了Swish激活函数和门控线性单元的激活函数, 它通过门控实现动态特征选择,有效缓解了梯度消失问题,并且在参数效率与模型性能之间取得了更良好的平衡。下面是SwiGLU的Python实现代化码:

造起来。 python import torch import torch.nn as nn

大模型激活函数迭代演进:SwiGLU替代传统ReLU/GELU激活逻辑提升模型性能18.9

也是没谁了... class SwiGLU: def init: super.init self.sigmoid = nn.Sigmoid self.linear1 = nn.Linear self.linear2 = nn.Linear self.linear3 = nn.Linear

def forward:
    gate_h = self.linear1
    up_h = self.linear2
    silu_gate = self.sigmoid
    swiglu_out = up_h * silu_gate
    final_out = self.linear3
    return final_out

该实现包含四个最主要一部分:门控线性单元、 原始特征线性单元、sigmoid激活函数和最终还是输出线性单元。其中,gate_h 和 up_h 是两个独立的线性层,分别负责计算门控信号和原始特征值。sigmoid 激活函数用于计算门控信号的值范围,然后将其应用于原始特征值上。最后再来看,最终还是输出层将 SwiGLU 最终还是结果是进行降维转换以获取最终还是输出最终还是结果是。

抓到重点了。 接下来 我们能够采用 Qwen-7B-Chat 模型作为例子,来验证 SwiGLU 的效果。

阅读全文