首頁  >  文章  >  科技週邊  >  單一4090可推理,2000億稀疏大模型「天工MoE」開源

單一4090可推理,2000億稀疏大模型「天工MoE」開源

WBOY
WBOY原創
2024-06-05 22:14:46871瀏覽

在大模型浪潮中,訓練和部署最先進的密集集LLM在運算需求和相關成本上帶來了巨大挑戰,尤其是在數百億或數千億參數的規模上。為了應對這些挑戰,稀疏模型,如專家混合模型(MoE),已經變得越來越重要。 這些模型透過將計算分配給各種專門的子模型或“專家”,提供了一種經濟上可行的替代方案,有可能以極低的資源需求達到甚至超過密集集模型的性能。

6 月3 日,開源大模型領域又傳來重要消息:崑崙萬維宣布開源2 千億稀疏大模型Skywork-MoE,在保持性能強勁的同時,大幅降低了推理成本。

基於先前崑崙萬維開源的Skywork-13B模型中間checkpoint擴展而來,是首個完整將MoE Upcycling技術應用並落地的開源千億MoE大模型,也是首個支持用單台4090伺服器推理的開源千億MoE大模型。

讓大模型社群更為關注的是,Skywork-MoE 的模型權重、技術報告完全開源,免費商用,無需申請。

  • 模型權重下載位址:

○ https://huggingface.co/Skywork/Skywork-MoE-base

#○ https://huggingface.co/Skywork/Skywork-MoE-Base-FP8

  • 模型開源倉庫:https://github.com/SkyworkAI/Skywork-MoE

  • 模型技術報告:https://github.com/SkyworkAI/Skywork-MoE/blob/main/skywork-moe-tech-report.pdf

  • #模型推理程式碼:(支援8x4090 伺服器上8 bit 量化載入推理)https://github.com/SkyworkAI/vllm

Skywork-MoE 是目前能在8x4090 伺服器上推理的最大的開源MoE 模型。 8x4090 伺服器一共有192GB 的GPU 顯存,在FP8 量化下(weight 佔用146GB),使用崑崙萬維團隊首創的非均勻Tensor Parallel 並行推理方式,Skywork-MoE 可以在合適的batch size 內達到2200 tokens/s 的合適的吞吐。

完整相關的推理框架程式碼與安裝環境請參考:https://github.com/SkyworkAI/Skywork-MoE

Skywork-MoE ##介紹

本次開源的Skywork-MoE 模型隸屬於天工3.0 的研發模型系列,是其中的中檔大小模型(Skywork-MoE-Medium),模型的總參數量為146B,啟動參數量22B,共有16 個Expert,每個Expert 大小為13B,每次啟動其中的2 個Expert。

據了解,天工 3.0 也訓練了 75B (Skywork-MoE-Small) 和 400B (Skywork-MoE-Large)兩檔 MoE 模型,並不在此次開源之列。

崑崙萬維基於目前各大主流模式評測榜單評測了Skywork-MoE,在相同的激活參數量20B(推理計算量)下,Skywork-MoE 能力在行業前列,接近70B 的Dense模型。使得模型的推理成本有近 3 倍的下降。

單一4090可推理,2000億稀疏大模型「天工MoE」開源

值得注意的是, Skywork-MoE 的總參數大小比DeepSeekV2 的總參數大小要小1/3,用更小的參數規模做到了相近的能力。

技術創新

為了解決MoE 模型訓練困難,泛化效能差的問題,Skywork-MoE 設計了兩種訓練最佳化演算法:

Gating Logits 歸一化操作

Skywork-MoE 在Gating Layer 的token 分發邏輯處新增了一個normalization 操作,使得Gating Layer 的參數學習更加趨向於被選中的top -2 experts,增加了MoE 模型對於top-2 的置信度:

單一4090可推理,2000億稀疏大模型「天工MoE」開源#自適應的Aux Loss

有別於傳統的固定係數(固定超參)的aux loss, Skywork-MoE 在MoE 訓練的不同階段讓模型自適應的選擇合適的aux loss 超參係數,從而讓Drop Token Rate 保持在合適的區間內,既能做到expert 分發的平衡,又能讓expert 學習具備差異化,進而提升模型整體的效能與泛化程度。在MoE 訓練的前期,由於參數學習不到位,導致Drop Token Rate 太高(token 分佈差異太大),此時需要較大的aux loss 幫助token load balance;在MoE 訓練的後期,Skywork-MoE 團隊希望Expert 之間仍保證一定的區分度,避免Gating 傾向隨機分發Token,因此需要較低的aux loss 來降低糾偏。

單一4090可推理,2000億稀疏大模型「天工MoE」開源

訓練 Infra

如何對 MoE 模型高效的進行大規模分散式訓練是一個有難度的挑戰。 Skywork-MoE 提出了兩個重要的平行最佳化設計,從而在千卡叢集上實現了 MFU 38% 的訓練吞吐,其中 MFU 以 22B 的活化參數計算理論計算量。

Expert Data Parallel

區別於Megatron-LM 社群中已有的EP(Expert Parallel)和ETP(Expert Tensor Parallel)設計,Skywork-MoE 團隊提出了一種稱為Expert Data Parallel 的平行設計方案,這種並行方案可以在Expert 數量較小時仍能有效率地切分模型,對Expert 引入的all2all 通訊也可以最大程度的最佳化和掩蓋。相較於EP 對GPU 數量的限制和ETP 在千卡集群上的低效, EDP 可以較好的解決大規模分散式訓練MoE 的並行痛點,同時EDP 的設計簡單、魯棒、易擴展,可以較快的實現與驗證。

單一4090可推理,2000億稀疏大模型「天工MoE」開源

                 一個最簡單的EDP 的例子,兩卡情況下TP = 2, EP = 2, 其中Attention 部分採用Tensor Parallel , Expert 部分採用Expert Parallel

非均勻切分流水並行

由於first stage 的Embedding 計算和last stage 的Loss 計算,以及Pipeline Buffer 的存在, 流水並行下均勻切分Layer 時的各stage 計算負載與顯存負載均有較明顯的不平衡情況。 Skywork-MoE 團隊提出了非均勻的流水並行切分和重計算 Layer 分配方式,使得總體的計算 / 顯存負載更均衡,約有 10% 左右的端到端訓練吞吐提升。

單一4090可推理,2000億稀疏大模型「天工MoE」開源

比較均勻切分和非均勻切分下的流水並行氣泡:對於一個24 層Layer 的LLM, (a) 是均勻切分成4 個stage,每個stage  的layer 數量是:[6, 6, 6, 6].(b) 是經過優化後的非均勻切分方式,切成5 個stage, 每個stage 的layer 數量是:[5, 5, 5, 5, 4] , 在中間流水打滿的階段,非均勻切分的氣泡較低。

此外,Skywork-MoE 也透過一系列基於 Scaling Law 的實驗,探討哪些限制會影響 Upcycling 和 From Scratch 訓練 MoE 模型的好壞。

單一4090可推理,2000億稀疏大模型「天工MoE」開源

一個可以遵循的經驗規則是:如果訓練MoE 模型的FLOPs 是訓練Dense 模型的2 倍以上,那麼選擇from Scratch 訓練MoE 會更好,否則的話,選擇Upcycling 訓練MoE 可以大幅減少訓練成本。

以上是單一4090可推理,2000億稀疏大模型「天工MoE」開源的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn