XYZNOT

論文 · arXiv 2401.04088

Mixtral of Experts

發表於 cs.LGcs.CL arXivPDF

用 XYZNOT 閱讀(全文翻譯與 AI 講解)

三句話總結

  1. 🎯 擴展 Transformer 容量與效能,同時避免過高的推論延遲與運算成本。
  2. 🔧 採用僅解碼器(decoder-only)的稀疏混合專家(SMoE)架構,將標準前饋區塊替換為 8 個 SwiGLU 專家,並透過學習路由器為每個 token 選擇 2 個專家。
  3. 📈 擁有 47B 總參數但在每個 token 僅需 13B 活躍參數,在 MMLU(70.6% vs 69.9%)與 GSM8K(74.4% vs 69.6%)上均超越 Llama 2 70B。

摘要

我們推出了 Mixtral 8x7B,這是一款稀疏混合專家(Sparse Mixture of Experts, SMoE)語言模型。Mixtral 採用與 Mistral 7B 相同的架構,不同之處在於每一層皆由 8 個前饋網路區塊(即專家)組成。對於每個 token,路由器網路在每一層都會挑選兩個專家來處理當前狀態並結合其輸出。儘管每個 token 僅會經過兩個專家,但在不同時間步所選出的專家可以有所不同。因此,每個 token 雖能使用總計 47B 的參數空間,但在推論時僅需 13B 的活躍參數。Mixtral 以 32k token 的上下文長度進行訓練,在所有評測基準中皆超越或媲美 Llama 2 70B 與 GPT-3.5。特別是在數學、程式碼生成以及多語言基準測試中,Mixtral 大幅超越了 Llama 2 70B。我們也提供了一款經過指令微調的模型 Mixtral 8x7B - Instruct,在人類評測基準中勝過 GPT-3.5 Turbo、Claude-2.1、Gemini Pro 以及 Llama 2 70B - chat 模型。基礎模型與指令微調模型皆以 Apache 2.0 授權條款開源釋出。

英文原文摘要

We introduce Mixtral 8x7B, a Sparse Mixture of Experts (SMoE) language model. Mixtral has the same architecture as Mistral 7B, with the difference that each layer is composed of 8 feedforward blocks (i.e. experts). For every token, at each layer, a router network selects two experts to process the current state and combine their outputs. Even though each token only sees two experts, the selected experts can be different at each timestep. As a result, each token has access to 47B parameters, but only uses 13B active parameters during inference. Mixtral was trained with a context size of 32k tokens and it outperforms or matches Llama 2 70B and GPT-3.5 across all evaluated benchmarks. In particular, Mixtral vastly outperforms Llama 2 70B on mathematics, code generation, and multilingual benchmarks. We also provide a model fine-tuned to follow instructions, Mixtral 8x7B - Instruct, that surpasses GPT-3.5 Turbo, Claude-2.1, Gemini Pro, and Llama 2 70B - chat model on human benchmarks. Both the base and instruct models are released under the Apache 2.0 license.

論文解讀

問題與動機

密集自回歸語言模型在處理每個 token 時,其運算成本與總參數量成正比。當模型規模擴展至 70B 參數甚至更大時,以低延遲和高吞吐量部署服務在運算上變得極為昂貴。本研究作者旨在擴展模型容量,同時將每個 token 的推論成本維持在與較小模型相當的水準,並打造一款開源權重模型,其表現能媲美甚至超越 Llama 2 70B 以及像 GPT-3.5 這類專有閉源基準。

核心理念

  • 稀疏混合專家(SMoE): 將全部 32 個 Transformer 層中的密集前饋網路(FFN)區塊替換為 8 個獨立的專家網路,並將每個 token 僅路由至前 2 名(top-2)專家。
  • 解耦的參數量: 此架構在各層中共包含 47B 總參數,但在每個 token 的前向傳播過程中僅執行 13B 活躍參數,維持了與中型密集模型相當的運算量。
  • 完整的 32k 上下文視窗: 原生支援 32,768 個 token 的序列長度,在 passkey 檢索基準測試中達到 100% 的準確率。
  • 偏向句法而非主題的路由機制: 對 token 路由的實證分析顯示,專家的選擇主要取決於句法功能與時間局部性,而非高階的主題領域。

方法(含核心方程式)

Mixtral 改良了 Mistral 7B 的架構( 層、隱藏維度 、 個注意力頭、 個 key-value 頭),將每個 FFN 子區塊替換為一個 MoE 模組,該模組包含 個專家(),每個專家皆實作為中間維度為 的 SwiGLU 網路。

對於輸入 token 表示 ,路由器網路透過取 top- logits()計算跨專家的稀疏門控分佈: 其中 Top-K 運算子將 logits 中前 個最大值以外的所有座標設為 :

該層的整體輸出 計算為專家輸出的門控加權總和: 高效的運算執行是透過將 MoE 運算表示為稀疏矩陣乘法的 MegaBlocks 等核心,並結合跨多 GPU 的專家平行化(Expert Parallelism)來實現的。

結果(含重要數據)

  • 通用與推理基準測試: 在 MMLU(5-shot)上,Mixtral 8x7B 達到 70.6%,高於 Llama 2 70B 的 69.9% 與 GPT-3.5 的 70.0%。在 GSM8K(8-shot, maj@8)上達到 74.4%,而 Llama 2 70B 為 69.6%。在 MATH 基準(4-shot, maj@4)上,Mixtral 達到 28.4%,大幅超越 Llama 2 70B 的 13.8%。
  • 程式碼生成: Mixtral 在 HumanEval(40.2% vs 29.3%)與 MBPP(60.7% vs 49.8%)上大幅勝過 Llama 2 70B。
  • 多語言任務: 透過對多語言資料進行增採樣,使 Mixtral 在法語、德語、西班牙語與義大利語的 ARC-Challenge、HellaSwag 及 MMLU 評測中皆超越 Llama 2 70B(例如法語 MMLU:70.9% vs 64.3%)。
  • 指令微調與 Arena Elo: Mixtral 8x7B – Instruct(經由 SFT 與 Direct Preference Optimization 訓練)在 MT-Bench 上獲得 8.30 分,並在 LMSys Chatbot Arena 獲得 1121 的 Elo 分數,超越 Claude-2.1 (1117)、GPT-3.5-Turbo (1117) 以及 Llama-2-70b-chat (1077)。
  • 上下文檢索: 在整個 32k 上下文視窗中,於合成 passkey 檢索任務中達到 100% 檢索準確率。

限制與開放問題

  • 記憶體佔用 vs 運算量: 雖然運算成本隨 13B 活躍參數成比例變化,但部署服務仍需要足夠的 VRAM 來容納所有 47B 參數,這需要多 GPU 設定或卸載(offloading)技術。
  • 專家平行化瓶頸: 本論文發現顯著的時間局部性(temporal locality)——連續的 token 分配給相同專家的機率遠高於隨機機率(在第 15 層第一選擇重複率高達 28.4%,而隨機情況僅 12.5%)。這可能會在專家平行化下導致負載不均衡與特定 GPU 的過度排程。
  • 缺乏主題專業化分工: 路由選擇並不會依據概念領域(例如生物學 vs 哲學)自然劃分,如果明確需要特定領域的專家專業分工,應如何建構門控機制仍是一個開放性問題。

關鍵術語

Sparse Mixture of Experts (SMoE) (稀疏混合專家)
一種神經網路架構,透過條件運算將每個輸入 token 路由至前饋子網路(專家)的稀疏子集,而非活化所有參數。
Active Parameter Count (活躍參數量)
在單一 token 的推論過程中實際載入並計算的參數量;Mixtral 總共有 47B 稀疏參數,但活躍參數僅有 13B。
SwiGLU
一種結合 Swish 與逐元素乘法的門控線性單元(gated linear unit)活化函式變體,用作每個專家前饋區塊的內部架構。
TopK Gating (TopK 門控)
一種路由機制,先對 token 表示進行線性投影,保留前 K 個最高值並將其餘值遮罩為負無限大,最後透過 softmax 進行正規化。
Expert Parallelism (EP) (專家平行化)
一種分散式分割策略,將不同的專家映射到不同的 GPU,並跨裝置將 token 活化值路由到其所分配的專家。
Direct Preference Optimization (DPO) (直接偏好最佳化)
一種對齊演算法,直接在偏好配對資料上最佳化語言模型參數,無須訓練明確的強化學習獎勵模型。
Passkey Retrieval (密鑰檢索)
一種合成評測測試,用於測量模型在長達 32k token 的長上下文提示中,定位並回傳隨機放置的簡短密鑰的能力。
Positional Locality (位置局部性)
在序列中觀察到的趨勢,即連續的 token 被重複分配給同一專家的機率遠高於均勻隨機機率。

常見問題

為什麼 Mixtral 只有 47B 參數而不是 56B,卻被稱為 8x7B?

雖然每層有 8 個專家且架構衍生自 Mistral 7B,但自注意力權重與嵌入層是由所有專家共用的。僅有前饋子區塊複製了 8 次,因此總參數量為 47B,而非 8 × 7B = 56B。

在推論期間,每個 token 會活化多少個專家?

路由器在每一層為每個 token 從 8 個可用專家之中精確選出 2 個專家(),因此每次前向傳播的活躍參數為 13B。

不同的專家是否專精於不同的學術或領域主題?

並未發現明顯的領域專業分工。在 The Pile 上的分析顯示,跨學科(如 ArXiv、PubMed 與 PhilPapers)的專家分配分佈幾乎相同;路由決策主要是與句法、token 本身身份以及位置局部性高度相關。

Mixtral 8x7B 模型是以何種軟體授權釋出的?

Mixtral 8x7B 基礎模型與 Mixtral 8x7B – Instruct 皆採用寬鬆的 Apache 2.0 授權條款釋出,可用於學術與商業用途。

本頁解讀由 AI 根據論文生成,可能有錯誤;細節請以原文為準。

用 XYZNOT 閱讀(全文翻譯與 AI 講解)