SwiGLU激活函数
Swift Lv6

SwiGLU激活函数已经成为LLM的标配了。它是GLU的变体,公式如下:

Swish

在nlp和cv任务上,Swish性能都和GELU接近,稍微略高点。但Swish公式更简洁优雅。

GELU早期被BERT、RoBERTa、ALBERT采用。

GLU

单纯从公式看,GLU是一个神经网络层。左右两个线性变换层,左边再接一个门控机制来控制信息流通多少。

SwiGLU

将Swish作为左侧激活函数就得到了SwiGLU。代码如下:

1
F.silu(self.w1(x)) * self.w2(x)

GLU Variants Improve Transformer 论文中,作者比较了各种GLU变体的激活函数,SwiGLU在各项任务上表现出众。但作者并未给出解释原因,只能说后验是这样,那就选它呗,所以成了LLM的标配。

各激活函数示意图

act


参考

Powered by Hexo & Theme Keep
Unique Visitor Page View