技術指南

SwiGLU 和門控激活

SwiGLU 是一種門控激活函數,它將輸入的一個線性投影乘以 Swish 激活的第二個投影,充當變壓器前饋層內的可學習、數據相關的門。

概述

SwiGLU 是一種門控激活函數,它將輸入的一個線性投影乘以 Swish 激活的第二個投影,充當變壓器前饋層內的可學習、數據相關的門。它不斷提高語言模型的質量,這就是為什麼幾乎每個現代法學碩士都使用它的原因。

SwiGLU 和門控啟動是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。

深入探討

標準變壓器前饋塊是兩個線性層,中間有一個 ReLU 或 GELU。門控線性單元,由 Dauphin 等人提出。 2016 年,將第一個投影分成兩半,並使用一半透過元素乘法來門控另一半。 SwiGLU 由 Noam Shazeer 在 2020 年推廣,該閘使用 Swish (SiLU) 函數:輸出 = (Swish(xW) * (xV)) W2,具有三個權重矩陣而不是兩個。門控讓網路選擇性地傳遞或抑制每個維度的訊息。由於添加第三個矩陣會增加參數,因此實現將隱藏維度縮小到大約三分之二,因此總計算量與 GELU MLP 相當。 Shazeer 的實驗顯示了可測量的困惑度增益,LLaMA、PaLM 和 Mistral 都採用了它。

技術洞察

Swish 是 x * sigmoid(beta*x),一個平滑的非單調函數,與 ReLU 不同,它允許小的負值通過。在 SwiGLU 中,「閘」分支 Swish(xW) 產生接近 0 或 1 的值,這些值按元素乘以「值」分支 xV,因此每個隱藏單元的貢獻都由學習的、依賴輸入的訊號進行調製。第三個權重矩陣是成本;三分之二的隱藏大小技巧使 FLOP 預算與普通前饋層相符。

掌握 SwiGLU 和門控激活

SwiGLU 是一種門控激活函數,它將輸入的一個線性投影乘以 Swish 激活的第二個投影,充當變壓器前饋層內的可學習、數據相關的門。它不斷提高語言模型的質量,這就是為什麼幾乎每個現代法學碩士都使用它的原因。 SwiGLU 和門控啟動是一個技術構建塊,會大規模影響模型品質、基礎設施成本、延遲和可靠性。為了建立深入的理解,請將 SwiGLU 和門控激活視為一種操作模型,而不是單一功能:定義所需的結果,澄清假設,並將系統可以可靠地執行的操作與仍需要專家判斷的操作分開。

在實踐中,使用 SwiGLU 和門控啟動的強大團隊可以根據可靠性和成本來優化架構、資料和基礎設施選擇。他們記錄明確的成功標準,根據實際數據和工作流程進行測試,並根據觀察到的失敗模式而不是一次性基準測試勝利進行迭代。這就是理論理解轉變為跨產品、政策和營運的持久能力的地方。

多年來,架構決策決定著效能和營運成本。同時,優化一個基準測試可以隱藏更廣泛的系統弱點。最具彈性的方法是將實驗速度與治理規則結合:運行試點、捕獲證據、發布決策日誌,並隨著模型行為、使用者期望和監管要求的發展不斷更新保障措施。

戰略影響

多年來,架構決策決定著效能和營運成本。

多年來,架構決策決定著效能和營運成本。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

更好的工程選擇可以減少生產中的可靠性事故。

更好的工程選擇可以減少生產中的可靠性事故。在高品質部署中,這會轉化為可衡量的操作規則、所有權邊界和定期審查儀式,以便團隊可以增強信心,而不是擴大模糊性。

SwiGLU 和門控啟動的未來

SwiGLU 是開放式法學碩士中預設的 MLP,並且不太可能很快被取代。主動方向包括 GeGLU 和 ReGLU 變體、一次性計算兩個投影的融合 GPU 內核,以及將門控 MLP 與專家混合相結合,這樣每個專家本身就是一個 SwiGLU 區塊。研究人員也正在研究為什麼門控有助於優化,旨在設計更便宜的門。

現實世界的實施

LLaMA、PaLM 和 Mistral 以 SwiGLU 取代 GELU 前饋層,以降低同等運算的困惑度

隱藏維度縮放至大約三分之二 (8/3 d),因此額外的門控矩陣不會增加 FLOP 數

Mixtral 等專家混合模型使用 SwiGLU 模組作為每個專家的前饋網絡

視覺和多模態 Transformer 借用 GeGLU/SwiGLU 門控來改進其 MLP 子層

實施模式

SwiGLU 和門控啟動的實踐

LLaMA、PaLM 和 Mistral 以 SwiGLU 取代 GELU 前饋層,以降低同等計算的困惑度。

LLaMA、PaLM 和 Mistral 以 SwiGLU 取代 GELU 前饋層,以降低同等運算下的困惑。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

SwiGLU 和門控啟動的實踐

隱藏維度縮放至大約三分之二 (8/3 d),因此額外的門控矩陣不會增加 FLOP 數。

隱藏維度縮放至大約三分之二 (8/3 d),因此額外的門控矩陣不會增加 FLOPs。 當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並追蹤隨時間推移的生產力增益和錯誤成本時,通常會獲得更好的結果。

SwiGLU 和門控啟動的實踐

Mixtral 等專家混合模型使用 SwiGLU 模組作為每個專家的前饋網路。

Mixtral 等專家混合模型使用 SwiGLU 模組作為每個專家的前饋網路。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

SwiGLU 和門控啟動的實踐

視覺和多模態 Transformer 借用 GeGLU/SwiGLU 門控來改進其 MLP 子層。

視覺和多模態轉換器借用 GeGLU/SwiGLU 門控來改進其 MLP 子層。當團隊預先定義品質閾值、為邊緣情況保留人工升級路徑並隨著時間的推移追蹤生產力增益和錯誤成本時,通常會獲得更好的結果。

風險與防護欄

!

優化一項基準測試可以隱藏更廣泛的系統弱點。

!

基礎設施和維護成本常常被低估。

!

隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。

實施路線圖

1

在實施之前定義延遲、品質和成本目標。

在實施之前定義延遲、品質和成本目標。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

2

在實際負載和資料條件下進行基準測試。

在實際負載和資料條件下進行基準測試。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

3

儀器監控錯誤、漂移和使用者影響。

儀器監控錯誤、漂移和使用者影響。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

4

在擴展之前準備回滾和事件回應路徑。

在擴展之前準備回滾和事件回應路徑。將每個步驟視為證據門:如果不符合標準,則暫停推出,縮小差距,然後再擴大使用。

不斷探索