
GitLabAPI上傳壓縮包的完整指南
DeepSeek(v2&v3&r1)模型的基本架構
DeepSeek 沿用了 GPT、LLaMA 和其他 LLM 所使用的 Transformer 架構(如果你不熟悉 Transformer,請參考我的上一篇博客“ Transformer 簡明解釋:注意力就是你所需要的”)。Transformer 中有L 個堆疊的相同層,每層都有一個 Masked 多頭注意力層和一個前饋網絡層。對于多頭注意力層,DeepSeek(從 V2 開始)采用了低秩鍵值聯合壓縮技術來減少 KV 緩存大小(請參考我上一篇 Transformer 博客中關于注意力機制中查詢、鍵和值的概念)。對于前饋網絡層,DeepSeek 采用了 Mixture-of-Experts(MoE)技術,通過稀疏計算以經濟的成本訓練出強大的模型。
在這篇博客中,我將重點關注混合專家 (MoE) 部分。
利用訓練數據和模型規模一直是深度學習成功的關鍵。當數據集足夠大時,增加神經網絡的容量(參數數量)可以提高預測準確率。
LLM’s Scaling Law
但隨著模型規模的擴大,訓練成本和推理成本也會相應增加。因為隨著模型參數數量的增加,在訓練和推理過程中處理每個 token 所需的激活參數也會增加。
為了擴大模型規模,同時保持訓練和推理成本處于恒定水平,ML 中引入了條件計算。超大型神經網絡:稀疏門控混合專家層 — 2017 年 1 月,谷歌為其語言模型引入了MoE 層。MoE 的基本思想是將 FFN 分成多個子網絡(專家),對于每個輸入標記,只有部分子網絡(專家)被激活。不同的子網絡表現為不同的“專家”,在訓練期間,它們從數據集中吸收不同的信息和知識,在推理期間,只有部分專家根據輸入標記被激活。
神經網絡中的 MoE 層
MoE 層有兩個關鍵組件:門控網絡和專家網絡。門控網絡決定應為輸入標記激活哪些“專家”,然后這些專家在訓練和推理期間處理輸入標記并為下一層生成輸出。門控網絡將為每個輸入標記選擇要激活的 TopK 專家,這稱為“ TopK 門控”。門控網絡和專家網絡均通過簡單的反向傳播進行訓練。本文還分享了如何處理不同專家之間的工作量平衡問題、解決批量縮小問題以及其他實際問題的解決方案。
DeepSeek 從 V2 開始在其 FFN 部分采用了 DeepSeekMoE 層。DeepSeekMoE 是 MoE 的一個變體,有 2 處變化:
DeepSeekMoE:邁向混合專家語言模型的終極專家專業化——2024 年 1 月,本文描述了有關 DeepSeekMoE 的更多細節。
DeepSeekMoE 的架構
本文提到,傳統的TopK MoE存在知識混合性和知識冗余性。知識混合性:現有的MoE實踐往往只使用有限數量的專家(如8位或16位),因此分配給特定專家的token可能會涵蓋不同的知識。因此,指定的專家會試圖在其參數中匯集截然不同類型的知識,這些知識很難同時利用。(2)知識冗余:分配給不同專家的token可能需要共同的知識。因此,多個專家可能會在各自的參數中聚集在一起獲取共享知識,從而導致專家參數的冗余。這些問題共同阻礙了現有MoE實踐中的專家專業化,使其無法達到MoE模型的理論上限性能。通過細分為更多專家并引入共享專家,DeepSeekMoE緩解了以上兩個問題。
上圖顯示 DeepSeekMoE 16B(帶有 DeepSeekMoE 的 DeepSeek V1)實現了與 LLaMa2 7B 相當的性能,但 LLaMA2 7B 的激活參數是其 2.5 倍。
混合專家是一種很好的方法,可以讓 LLM 的不同子網絡吸收和學習不同領域的知識,模型中的每個參數都針對特定領域高度專業化,并且每個激活的參數都對問題/問題有很高的貢獻。這就像我們的大腦如何工作,不同的神經元處理不同的任務。
DeepSeekMoE 架構是否已經將 MoE 的潛力發揮到了極致?論文中說“在約 2B 參數和 100B 訓練 token 的規模下,DeepSeekMoE 的性能與 MoE 模型的理論上限非常接近。”這個結論是基于與密集模型(密集模型意味著每個輸入 token 都會激活所有模型參數)的比較得出的。我相信存在一種比當前精細分割 + 共享專家 MoE 更高效的 MoE 架構,因為我認為 1)密集模型不是邊界;2)目前每個專家的參數數量相同,但不同領域的知識容量和復雜性可能不同,選擇相同數量的專家和相同數量的參數來相同地處理這些不同的問題并不是效率最優的方式。我們的大腦使用不同部分的神經元和不同數量的神經元來處理不同類型的任務,隨著我們對大腦工作原理的了解越來越多,我認為我們可能會推出更多優化來提高 MoE 的效率。
最后,LLM 效率的提升必將促進 AI 的繁榮。從模型角度來看,將會有更多的公司和組織為 LLM 的改進做出貢獻。LLM API 成本的降低將使應用程序受益,我們將看到越來越多的 AI 應用程序出現在不同行業中,幫助我們提高效率并處理知識任務。