僅需Llama3 1/17的訓(xùn)練成本,Snowflake開(kāi)源128x3B MoE模型
Snowflake 發(fā)布高「企業(yè)智能」模型 Arctic,專(zhuān)注于企業(yè)內(nèi)部應(yīng)用。
剛剛,數(shù)據(jù)管理和倉(cāng)庫(kù)提供商 Snowflake 宣布加入 LLM 混戰(zhàn),發(fā)布了一款專(zhuān)注于企業(yè)級(jí)應(yīng)用的頂級(jí)大型語(yǔ)言模型(LLM)——Snowflake Arctic。
作為一家云計(jì)算公司推出的 LLM,Arctic 主要具備以下兩個(gè)方面的優(yōu)勢(shì):
- 高效智能:Arctic 在企業(yè)任務(wù)方面表現(xiàn)出色,例如 SQL 生成、編程和指令遵循,甚至可與使用更高計(jì)算成本訓(xùn)練的開(kāi)源模型媲美。Arctic 為經(jīng)濟(jì)高效的訓(xùn)練設(shè)定了新的基線(xiàn),使 Snowflake 客戶(hù)能夠以低成本為其企業(yè)需求創(chuàng)建高質(zhì)量的定制模型。
- 開(kāi)源開(kāi)放:Arctic 采用 Apache 2.0 許可,提供對(duì)權(quán)重和代碼的開(kāi)放訪(fǎng)問(wèn),Snowflake 還將開(kāi)源所有的數(shù)據(jù)方案和研究發(fā)現(xiàn)。?
現(xiàn)在,你可以在 Hugging Face 上訪(fǎng)問(wèn) Arctic 模型。Snowflake 表示:用戶(hù)很快可以通過(guò)一些模型庫(kù)獲取,包括 Snowflake Cortex、AWS、微軟 Azure、NVIDIA API、Lamini、Perplexity、Replicate 和 Together 等。
Hugging Face:https://huggingface.co/Snowflake/snowflake-arctic-instruct
Arctic 的上下文窗口設(shè)置為 4K,研究團(tuán)隊(duì)正在研發(fā)基于注意力池(attention-sink)的滑動(dòng)窗口實(shí)現(xiàn),在未來(lái)幾周內(nèi)將支持無(wú)限序列生成,并在不久的將來(lái)擴(kuò)展到 32K 注意力窗口。
高性能、低成本
Snowflake 的研究團(tuán)隊(duì)從企業(yè)客戶(hù)的 AI 需求和使用案例中看到了一個(gè)一致的模式:企業(yè)希望使用 LLM 構(gòu)建對(duì)話(huà)式 SQL 數(shù)據(jù) copilot、代碼 copilot 和 RAG 聊天機(jī)器人。
這意味著 LLM 需要在 SQL、代碼、復(fù)雜指令遵循和生成具體響應(yīng)方面表現(xiàn)出色。Snowflake 將這些能力融合成一個(gè)稱(chēng)為「企業(yè)智能」的單一指標(biāo),具體方式是對(duì)編碼(HumanEval + 和 MBPP+)、SQL 生成(Spider)和指令遵循(IFEval)性能水平取平均值。
Arctic 在開(kāi)源 LLM 中達(dá)到了頂級(jí)的「企業(yè)智能」水平,而且是在大約不到 200 萬(wàn)美元的訓(xùn)練計(jì)算成本(少于 3K GPU 周)的情況下做到的。這意味著 Arctic 比其他使用類(lèi)似計(jì)算成本訓(xùn)練的開(kāi)源模型能力更強(qiáng)。
更重要的是,即使與那些使用遠(yuǎn)高于其的計(jì)算成本訓(xùn)練的模型相比,Arctic 在企業(yè)智能方面也表現(xiàn)出色。Arctic 的高訓(xùn)練效率意味著 Snowflake 的客戶(hù)和整個(gè) AI 社區(qū)可以以更經(jīng)濟(jì)的方式訓(xùn)練定制模型。
如圖 1 所示,Arctic 在企業(yè)智能指標(biāo)上與 LLAMA 3 8B 和 LLAMA 2 70B 不相上下,而使用的訓(xùn)練計(jì)算成本不到一半。并且,盡管僅使用 1/17 倍的計(jì)算成本,Arctic 在編碼(HumanEval + 和 MBPP+)、SQL(Spider)和指令遵循(IFEval)等指標(biāo)上可與 Llama3 70B 媲美,即 Arctic 在保持整體性能競(jìng)爭(zhēng)力的同時(shí)做到了這一點(diǎn)。
此外,Snowflake 還在學(xué)術(shù)基準(zhǔn)上評(píng)估了 Arctic,涉及世界知識(shí)、常識(shí)推理和數(shù)學(xué)能力,完整評(píng)估結(jié)果如下圖所示:
訓(xùn)練效率
為了達(dá)到上述訓(xùn)練效率,Arctic 采用一種獨(dú)特的 Dense-MoE 混合 transformer 架構(gòu)。它將一個(gè) 10B 的密集 transformer 模型與一個(gè) 128×3.66B 的殘差 MoE MLP 結(jié)合起來(lái),總共有 480B 參數(shù)和 17B 活躍參數(shù),使用 top-2 gating 來(lái)進(jìn)行選擇。
設(shè)計(jì)和訓(xùn)練 Arctic 時(shí),研究團(tuán)隊(duì)使用了以下三個(gè)關(guān)鍵的見(jiàn)解和創(chuàng)新:
MoE 專(zhuān)家數(shù)量多,并采取壓縮技術(shù)
2021 年底,DeepSpeed 團(tuán)隊(duì)證明了 MoE 可以應(yīng)用于自回歸 LLM,從而顯著提高模型質(zhì)量而不增加計(jì)算成本。在設(shè)計(jì) Arctic 時(shí),研究團(tuán)隊(duì)注意到,基于這個(gè)思路,模型質(zhì)量的提高主要取決于 MoE 模型中的專(zhuān)家數(shù)量和總參數(shù)量,以及這些專(zhuān)家的組合方式數(shù)量。
基于此,Arctic 被設(shè)計(jì)為在 128 個(gè)細(xì)粒度(fine-grained)專(zhuān)家之間分布 480B 參數(shù),并使用 top-2 gating 來(lái)選擇 17B 活躍參數(shù)。
架構(gòu)與系統(tǒng)協(xié)同設(shè)計(jì)
在強(qiáng)大的 AI 訓(xùn)練硬件上訓(xùn)練具有大量專(zhuān)家的基本 MoE 架構(gòu)非常低效,因?yàn)閷?zhuān)家之間的全連接通信開(kāi)銷(xiāo)很高。Snowflake 發(fā)現(xiàn),如果通信可以與計(jì)算重疊,就可以省去這種開(kāi)銷(xiāo)。
因此,Arctic 將密集 transformer 與殘差 MoE 組件相結(jié)合(圖 2),通過(guò)通信計(jì)算重疊,使訓(xùn)練系統(tǒng)能夠?qū)崿F(xiàn)良好的訓(xùn)練效率,隱藏了通信開(kāi)銷(xiāo)的大部分。
聚焦企業(yè)數(shù)據(jù)的課程學(xué)習(xí)
在代碼生成和 SQL 等企業(yè)級(jí)指標(biāo)上表現(xiàn)出色需要與通用指標(biāo)截然不同的數(shù)據(jù)課程學(xué)習(xí)(Curriculum Learning)。通過(guò)數(shù)百次小規(guī)模的消融實(shí)驗(yàn),該團(tuán)隊(duì)了解到通用技能,如常識(shí)推理,可以在初始階段學(xué)習(xí);而編碼、數(shù)學(xué)和 SQL 等更復(fù)雜的指標(biāo)可以在訓(xùn)練后期有效學(xué)習(xí)。
這可以類(lèi)比于人類(lèi)的生活教育,從簡(jiǎn)單到困難逐步獲取能力。因此,Arctic 使用一個(gè)三階段的課程學(xué)習(xí),每個(gè)階段的數(shù)據(jù)構(gòu)成都不同,第一階段側(cè)重于通用技能(1T token),后兩個(gè)階段側(cè)重于企業(yè)技能(1.5T 和 1T token)。
推理效率
推理效率也是模型高效的一個(gè)重要方面,影響到模型是否可以在低成本下進(jìn)行實(shí)際部署。
Arctic 代表了 MoE 模型規(guī)模的一次飛躍,它比任何其他開(kāi)源自回歸 MoE 模型都使用了更多的專(zhuān)家和總參數(shù)。因此,Snowflake 需要幾個(gè)創(chuàng)新思路來(lái)確保 Arctic 能夠高效推理:
a) 在批大小較小的交互推理中,例如批大小為 1,MoE 模型的推理延遲受制于讀取所有活躍參數(shù)的時(shí)間,推理是受內(nèi)存帶寬限制的。在這種批大小下,Arctic(17B 活躍參數(shù))的內(nèi)存讀取量?jī)H為 Code-Llama 70B 的 1/4、Mixtral 8x22B(44B 活躍參數(shù))的 2/5,從而具備更快的推理速率。
b) 當(dāng)批大小顯著增加,例如每次前向傳遞數(shù)千個(gè) token 時(shí),Arctic 從內(nèi)存帶寬受限轉(zhuǎn)變?yōu)橛?jì)算受限,推理受到每個(gè) token 的活躍參數(shù)的限制。在這方面,Arctic 的計(jì)算量是 CodeLlama 70B 和 Llama 3 70B 的 1/4。
為了實(shí)現(xiàn)計(jì)算受限的推理和與 Arctic 中少量活躍參數(shù)相匹配的高吞吐量,需要一個(gè)較大的批大小。實(shí)現(xiàn)這一點(diǎn)需要有足夠的 KV 緩存來(lái)支持,同時(shí)還需要足夠的內(nèi)存來(lái)存儲(chǔ)模型的近 500B 參數(shù)。
雖然具有挑戰(zhàn)性,但 Snowflake 通過(guò)使用兩個(gè)節(jié)點(diǎn)進(jìn)行推理,并結(jié)合 FP8 權(quán)重、split-fuse 和連續(xù)批處理、節(jié)點(diǎn)內(nèi)張量并行以及節(jié)點(diǎn)間 pipeline 并行等系統(tǒng)優(yōu)化來(lái)實(shí)現(xiàn)。
研究團(tuán)隊(duì)已與 NVIDIA 展開(kāi)密切合作,針對(duì)由 TensorRT-LLM 驅(qū)動(dòng)的 NVIDIA NIM 微服務(wù)進(jìn)行推理優(yōu)化。同時(shí),研究團(tuán)隊(duì)還與 vLLM 社區(qū)合作,內(nèi)部開(kāi)發(fā)團(tuán)隊(duì)也將在未來(lái)幾周內(nèi)為企業(yè)用例實(shí)現(xiàn) Arctic 的高效推理。
本文轉(zhuǎn)自 機(jī)器之心 ,作者:機(jī)器之心
