如果你一直在關注大型語言模型的架構,你可能會在最新的模型和研究論文中看到「SwiGLU」這個詞。 SwiGLU可以說是在大語言模型中最常使用的激活函數,我們這篇文章就來對它進行詳細的介紹。 SwiGLU其實是2020年Google提出的激活函數,它結合了SWISH和GLU兩者的特徵。 SwiGLU的中文全名為“雙向門控線性單元”,它將SWISH和GLU兩種激活函數進行了優化和結合,以提高模型的非線性表達能力。 SWISH是一種非常普遍的激活函數,它在大語言模型中廣泛應用,而GLU則在自然語言處理任務中表現出色。 SwiGLU的優點在於它能夠同時獲得SWISH的平滑特性和GLU的門控特性,從而在模型的非線性表達上更加
##我們一個一個來介紹:
Swish
#Swish是非線性激活函數,定義如下:
Swish(x) = x*sigmoid(ßx)
其中,ß 為可學習參數。 Swish 可以比ReLU活化函數更好,因為它給予了更平滑的轉換,這可以帶來更好的最佳化。
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 = w1self.w2 = w2self.w3 = w3 def forward(self, x):x1 = F.linear(x, self.w1.weight)x2 = F.linear(x, self.w2.weight)hidden = F.silu(x1) * x2return 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 表現出色,因此被廣泛採用。
論文地址
以上是為什麼大型語言模型都在使用 SwiGLU 作為激活函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

自2008年以來,我一直倡導這輛共享乘車麵包車,即後來被稱為“ Robotjitney”,後來是“ Vansit”,這是城市運輸的未來。 我預見這些車輛是21世紀的下一代過境解決方案Surpas

革新結帳體驗 Sam's Club的創新性“ Just Go”系統建立在其現有的AI驅動“掃描和GO”技術的基礎上,使會員可以在購物旅行期間通過Sam's Club應用程序進行掃描。

NVIDIA在GTC 2025上的增強可預測性和新產品陣容 NVIDIA是AI基礎架構的關鍵參與者,正在專注於提高其客戶的可預測性。 這涉及一致的產品交付,達到績效期望以及

Google的Gemma 2:強大,高效的語言模型 Google的Gemma語言模型家族以效率和性能而慶祝,隨著Gemma 2的到來而擴展。此最新版本包括兩種模型:270億個參數VER

這一領先的數據劇集以數據科學家,天體物理學家和TEDX演講者Kirk Borne博士為特色。 Borne博士是大數據,AI和機器學習的著名專家,為當前狀態和未來的Traje提供了寶貴的見解

這次演講中出現了一些非常有見地的觀點——關於工程學的背景信息,這些信息向我們展示了為什麼人工智能如此擅長支持人們的體育鍛煉。 我將從每位貢獻者的觀點中概括出一個核心思想,以展示三個設計方面,這些方面是我們探索人工智能在體育運動中應用的重要組成部分。 邊緣設備和原始個人數據 關於人工智能的這個想法實際上包含兩個組成部分——一個與我們放置大型語言模型的位置有關,另一個與我們人類語言和我們的生命體徵在實時測量時“表達”的語言之間的差異有關。 Alexander Amini 對跑步和網球都很了解,但他還

卡特彼勒(Caterpillar)的首席信息官兼高級副總裁傑米·恩格斯特(Jamie Engstrom)領導了一支由28個國家 /地區的2200多名IT專業人員組成的全球團隊。 在卡特彼勒(Caterpillar)工作了26年,其中包括她目前的四年半,Engst

Google Photos的新Ultra HDR工具:快速指南 使用Google Photos的新型Ultra HDR工具增強照片,將標準圖像轉換為充滿活力的高動態範圍傑作。對於社交媒體而言,此工具可提高任何照片的影響,


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。