大模型面經(jīng)——MoE混合專家模型總結 原創(chuàng)
?本篇將介紹MoE(Mixture of Experts,混合專家模型)相關面試題。
以下是一個快捷目錄:
一、MoE介紹
二、MoE出現(xiàn)的背景
三、有哪些MoE模型
四、介紹稀疏 MoE 層
五、介紹門控網(wǎng)絡或路由
六、為什么門控網(wǎng)絡要引入噪聲呢
七、如何均衡專家間的負載
八、“專家”指什么
九、專家的數(shù)量對預訓練有何影響?
十、什么是topK門控
十一、MoE模型的主要特點
十二、MoE和稠密模型的對比
十三、MoE的優(yōu)勢
十四、MoE的挑戰(zhàn)
十五、微調MoE的方法
十六、MoE的并行計算
回答
一、MoE介紹
"Mixture of Experts"(MoE)是一種機器學習模型,特別是在深度學習領域中,它屬于集成學習的一種形式。MoE模型由多個專家(experts)和一個門控網(wǎng)絡(gating network)組成。每個專家負責處理輸入數(shù)據(jù)的不同部分或不同特征,而門控網(wǎng)絡則負責決定每個輸入應該由哪個專家來處理。
例如,在下圖中,“More”這個 token 被發(fā)送到第二個專家,而“Parameters”這個 token 被發(fā)送到第一個專家。
二、MoE出現(xiàn)的背景
本質上來說就是一種高效的 scaling 技術,用較少的 compute 實現(xiàn)更大的模型規(guī)模,從而獲得更好的性能。
三、有哪些MoE模型
Switch Transformers、Mixtral、GShard、DBRX、Jamba DeepSeekMoE 等等。
以Mixtral為例
Mixtral 是一個稀疏的專家混合網(wǎng)絡。它是一個decoder-only的模型,其中前饋塊從一組 8 個不同的參數(shù)組中選擇。在每一層,對于每個令牌,路由器網(wǎng)絡選擇其中兩個組(“專家”)來處理令牌并附加地組合他們的輸出。
混合專家層
這種技術在控制成本和延遲的同時增加了模型的參數(shù)數(shù)量,因為模型只使用每個令牌總參數(shù)集的一小部分。具體來說,Mixtral 總共有 46.7B 個參數(shù),但每個令牌只使用 12.9B 個參數(shù)。因此,它以與 12.9B 型號相同的速度和相同的成本處理輸入和生成輸出。
Mixtral 基于從開放 Web 中提取的數(shù)據(jù)進行預訓練——同時培訓專家和路由器。
四、介紹稀疏 MoE 層
稀疏 MoE 層一般用來替代傳統(tǒng) Transformer 模型中的前饋網(wǎng)絡 (FFN) 層。MoE 層包含若干“專家”(例如 8 個),每個專家本身是一個獨立的神經(jīng)網(wǎng)絡。在實際應用中,這些專家通常是前饋網(wǎng)絡 (FFN),但它們也可以是更復雜的網(wǎng)絡結構,甚至可以是 MoE 層本身,從而形成層級式的 MoE 結構。
五、介紹門控網(wǎng)絡或路由
門控網(wǎng)絡接收輸入數(shù)據(jù)并執(zhí)行一系列學習的非線性變換。這一過程產(chǎn)生了一組權重,這些權重表示了每個專家對當前輸入的貢獻程度。通常,這些權重經(jīng)過softmax等函數(shù)的處理,以確保它們相加為1,形成了一個概率分布。這樣的分布表示了在給定輸入情境下每個專家被激活的概率。一個典型的門控函數(shù)通常是一個帶有 softmax 函數(shù)的簡單的網(wǎng)絡。
六、為什么門控網(wǎng)絡要引入噪聲呢
為了專家間的負載均衡。也即防止一句話中的大部分token都只有一個專家來處理,剩下的七個專家(假設一共八個專家)“無所事事”。
七、如何均衡專家間的負載
引入噪聲、引入輔助損失(鼓勵給予所有專家相同的重要性)、引入隨機路由、設置一個專家能處理的token數(shù)量上限
八、“專家”指什么
一個“專家”通常是前饋網(wǎng)絡 (FFN)。數(shù)據(jù)經(jīng)過門控網(wǎng)絡選擇后進入每個專家模型,每個專家根據(jù)其設計和參數(shù)對輸入進行處理。每個專家產(chǎn)生的輸出是對輸入數(shù)據(jù)的一種表示,這些表示將在后續(xù)的步驟中進行加權聚合?;蛘咄ㄟ^單個專家模型進行處理。
九、專家的數(shù)量對預訓練有何影響?
增加更多專家可以提升處理樣本的效率和加速模型的運算速度,但這些優(yōu)勢隨著專家數(shù)量的增加而遞減 (尤其是當專家數(shù)量達到 256 或 512 之后更為明顯)。同時,這也意味著在推理過程中,需要更多的顯存來加載整個模型。值得注意的是,Switch Transformers 的研究表明,其在大規(guī)模模型中的特性在小規(guī)模模型下也同樣適用,即便是每層僅包含 2、4 或 8 個專家。
十、什么是topK門控
選擇前k個專家。為什么不僅選擇最頂尖的專家呢?最初的假設是,需要將輸入路由到不止一個專家,以便門控學會如何進行有效的路由選擇,因此至少需要選擇兩個專家。
十一、MoE模型的主要特點:
- 靈活性:每個專家可以是不同類型的模型,例如全連接層、卷積層或者遞歸神經(jīng)網(wǎng)絡。
- 可擴展性:通過增加專家的數(shù)量,模型可以處理更復雜的任務。
- 并行處理:不同的專家可以并行處理數(shù)據(jù),這有助于提高模型的計算效率。
- 動態(tài)權重分配:門控網(wǎng)絡根據(jù)輸入數(shù)據(jù)的特點動態(tài)地為每個專家分配權重,這樣模型可以更加靈活地適應不同的數(shù)據(jù)。
- 容錯性:即使某些專家表現(xiàn)不佳,其他專家的表現(xiàn)也可以彌補,從而提高整體模型的魯棒性。
十二、moe和稠密模型的對比
1、預訓練
相同計算資源,MoE 模型理論上可以比密集模型更快達到相同的性能水平。
2、推理
moe:高顯存,高吞吐量;
稠密模型:低顯存,低吞吐量
十三、moe的優(yōu)勢
1、訓練優(yōu)勢:預訓練速度更快;
2、推理優(yōu)勢:推理速度更快
十四、moe的挑戰(zhàn)
1、訓練挑戰(zhàn):微調階段,泛化能力不足,容易過擬合
2、推理挑戰(zhàn):對顯存的要求更高
十五、微調moe的方法
1、凍結所有非專家層的權重,專門只訓練專家層
2、只凍結moe層參數(shù),訓練其它層的參數(shù)
十六、moe的并行計算
圖片來源:b站 算法豬立業(yè)
參考資料
??https://blog.csdn.net/2201_75499313/article/details/136412787??
??https://www.zhihu.com/question/634844209/answer/3467132890??
??https://zhuanlan.zhihu.com/p/674698482??
?
文轉載自公眾號瓦力算法學研所,作者:喜歡瓦力的卷卷
