成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么大型語言模型都在使用 SwiGLU 作為激活函數?

人工智能
如果你一直在關注大型語言模型的架構,你可能會在最新的模型和研究論文中看到“SwiGLU”這個詞。SwiGLU可以說是在大語言模型中最常用到的激活函數,我們本篇文章就來對他進行詳細的介紹。

如果你一直在關注大型語言模型的架構,你可能會在最新的模型和研究論文中看到“SwiGLU”這個詞。SwiGLU可以說是在大語言模型中最常用到的激活函數,我們本篇文章就來對他進行詳細的介紹。SwiGLU其實是2020年谷歌提出的激活函數,它結合了SWISH和GLU兩者的特點。

我們一個一個來介紹:

Swish

Swish是一個非線性激活函數,定義如下:

Swish(x) = x*sigmoid(?x)

其中,? 為可學習參數。Swish可以比ReLU激活函數更好,因為它在0附近提供了更平滑的轉換,這可以帶來更好的優化。

Gated Linear Unit

GLU(Gated Linear Unit)定義為兩個線性變換的分量積,其中一個線性變換由sigmoid激活。

GLU(x) = sigmoid(W1x+b)?(Vx+c)

GLU可以有效地捕獲序列中的遠程依賴關系,同時避免與lstm和gru等其他門控機制相關的一些梯度消失問題。

SwiGLU

上面我們已經說到SwiGLU是兩者的結合。它是一個GLU,但不是將sigmoid作為激活函數,而是使用?=1的swish,因此我們最終得到以下公式:

SwiGLU(x) = Swish(W1x+b)?(Vx+c)

我們用SwiGLU函數構造一個前饋網絡

FFNSwiGLU(x) = (Swish1(xW)?xV)W2

Pytorch的簡單實現

如果上面的數學原理看著比較麻煩枯燥難懂,我們下面直接使用代碼解釋。

class SwiGLU(nn.Module):
     
    def __init__(self, w1, w2, w3) -> None:
        super().__init__()
        self.w1 = w1
        self.w2 = w2
        self.w3 = w3
     
    def forward(self, x):
        x1 = F.linear(x, self.w1.weight)
        x2 = F.linear(x, self.w2.weight)
        hidden = F.silu(x1) * x2
        return F.linear(hidden, self.w3.weight)

我們代碼使用的F.silu函數與?=1時的swish相同的,所以就直接拿來使用了。

代碼可以看到,我們的激活函數中也有3個權重是可以訓練的,這就是來自于GLU公式里的參數。

SwiGLU的效果對比

SwiGLU與其他GLU變體進行比較,我們可以看到SwiGLU在兩種預訓練期間都表現得更好。

下游任務

效果表現得最好,所以現在的llm,如LLAMA, OLMO和PALM都在其實現中采用SwiGLU。但是為什么SwiGLU比其他的好呢?

論文中只給了測試結果而且并沒有說明原因,而是說:

We offer no explanation as to why these architectures seem to work; we  attribute their success, as all else, to divine benevolence.

作者說煉丹成功了。

但是現在已經是2024年了我們可以強行的解釋一波:

1、Swish對于負值的響應相對較小克服了 ReLU 某些神經元上輸出始終為零的缺點

2、GLU 的門控特性,這意味著它可以根據輸入的情況決定哪些信息應該通過、哪些信息應該被過濾。這種機制可以使網絡更有效地學習到有用的表示,有助于提高模型的泛化能力。在大語言模型中,這對于處理長序列、長距離依賴的文本特別有用。

3、SwiGLU 中的參數 W1,W2,W3,b1,b2,b3W1,W2,W3,b1,b2,b3 可以通過訓練學習,使得模型可以根據不同任務和數據集動態調整這些參數,增強了模型的靈活性和適應性。

4、計算效率相比某些較復雜的激活函數(如 GELU)更高,同時仍能保持較好的性能。這對于大規模語言模型的訓練和推理是很重要的考量因素。

選擇 SwiGLU  作為大語言模型的激活函數,主要是因為它綜合了非線性能力、門控特性、梯度穩定性和可學習參數等方面的優勢。在處理語言模型中復雜的語義關系、長依賴問題、以及保持訓練穩定性和計算效率方面,SwiGLU 表現出色,因此被廣泛采用。

論文地址

https://arxiv.org/abs/2002.05202

責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2023-03-26 00:24:15

2024-04-16 16:14:01

人工智能LLMRAG

2025-03-27 03:50:00

DeepSeekLLMLLaMA

2023-06-19 16:05:22

大型語言模型人工智能

2021-06-06 22:22:32

c語言編程語言

2025-02-14 00:00:25

C#后端RPS

2018-08-15 08:07:06

2013-03-12 10:05:08

Node.jsGitHub開源

2021-11-11 15:25:28

@AsyncJava線程池

2023-06-09 08:00:00

QLoRa語言模型微調

2015-04-08 10:46:11

2024-01-02 10:38:22

Go語言數組

2018-03-23 11:09:36

游戲AWS

2015-06-11 09:59:36

數據中心UPS

2024-01-19 14:45:36

ApacheDoris架構

2022-06-28 09:14:42

云基礎設施中臺PaaS

2024-05-30 12:17:25

2024-12-12 09:11:58

2023-04-27 19:02:30

語言模型管理企業數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产一区二区在线 | 亚洲福利一区 | 日韩在线免费视频 | 日本欧美国产在线 | 精品久久久久久亚洲精品 | 成人精品一区二区三区中文字幕 | 国产精品久久久亚洲 | 久久精品青青大伊人av | 亚洲成人网在线播放 | 免费在线观看一区二区三区 | 亚洲综合视频 | 国产精品久久久久免费 | 日韩精品网站 | 少妇精品久久久久久久久久 | 色婷婷综合久久久中字幕精品久久 | 中文字幕在线精品 | 成人午夜电影在线观看 | 欧美久久久久久久 | 久久麻豆精品 | 欧美一区二区三区视频在线观看 | 雨宫琴音一区二区在线 | 一级黄色录像片子 | 成人在线精品视频 | 一区精品视频 | 久久久久91 | 中文字幕精品一区二区三区在线 | 欧美激情国产精品 | 国产精品一区在线观看 | 午夜视频在线免费观看 | 欧美一区二区在线免费观看 | 精品自拍视频在线观看 | 亚洲二区视频 | 农村真人裸体丰满少妇毛片 | 91福利网址 | 国产精品久久久久久久久久 | 欧美成年人 | 亚洲视频免费在线观看 | 欧美在线a | 91视视频在线观看入口直接观看 | 99热最新 | 中文字幕成人免费视频 |