加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

馬斯克的大模型Grok-1與大模型的壓縮

05/14 10:50
2725
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

2024年3月17日,馬斯克旗下人工智能公司xAI 開源了其開發(fā)的大模型Grok-1,馬斯克一直在指責(zé)OpenAI沒有開源,大模型Grok-1的開源將壓力給到了OpenAI。一個(gè)月后,META也就是FACEBOOK開源了其Llama 3大模型。令馬斯克尷尬的是,在全球最大的開源AI社區(qū)Hugging Face上,Grok-1上月的下載次數(shù)僅為4815,而發(fā)布不到1個(gè)月的Llama 3 8B版本是917538,Llama 3 70B版本是352394。不過在Github上,Grok-1扳回一局,到目前為止,Grok-1的星標(biāo)高達(dá)48.3K,遠(yuǎn)超Llama3的19.9K,這也表明對Grok-1感興趣的人很多,但下載下來嘗試運(yùn)行的人極少。這是為什么呢,很簡單,Grok-1太大了,參數(shù)高達(dá)3140億個(gè),是目前為止參數(shù)最多的開源大模型,即便是最低的8位精度,那也是314GB的龐大體積,如果是做訓(xùn)練而不是推理,需要用FP32精度,1256GB。目前提供下載的版本是296.38GiB,也就是317.8GB大小,顯然是FP8精度。

運(yùn)行Grok-1對硬件要求極高,要流暢運(yùn)行Grok-1需要3臺8U的服務(wù)器,單臺服務(wù)器8張A100或者H100顯卡,硬盤容量為4TB 固態(tài)硬盤,內(nèi)存至少512GB,4顆Intel(R) Xeon(R) 白金8593 CPU(每片CPU售價(jià)高達(dá)1.24萬美元,NV-LINK顯卡連接器。整套系統(tǒng)大概500-700萬人民幣。特斯拉的粉絲堅(jiān)信Grok-1可以在特斯拉上運(yùn)行,但即便是HW4.0的RAM存儲不過32GB,最低精度的Grok-1都放不下。

如果不在乎卡頓或延遲,也不在乎精度,網(wǎng)上有人用頂配蘋果Mac Studio with an M2 Ultra運(yùn)行了4位精度的Grok-1,4位精度的容量是157GB,Mac Studio with an M2 Ultra頂配的內(nèi)存是192GB,價(jià)格是8799美元,便宜多了。

M2 Ultra算力極低,但這不意味著低算力就可以運(yùn)行Grok-1,Grok-1需要的是強(qiáng)大的高帶寬存儲。M2 Ultra最強(qiáng)之處在于其存儲帶寬高達(dá)800GB/s,是1萬美元以下能買到的最高帶寬,最新的蘋果M4才120GB/s,而特斯拉第一代HW3.0 FSD芯片是63.5GB/s,英偉達(dá)Orin是205GB/s。特斯拉第二代HW4.0 FSD芯片存儲用了GDDR6,成本比主流的LPDDR5貴大約50-70%,如果是高端的256bit位寬的話存儲帶寬是576GB/s,128bit則是288GB/s。這些和英偉達(dá)H100那TB/s級的存儲帶寬根本不能比。

Grok-1簡介

基礎(chǔ)模型和訓(xùn)練:Grok-1是基于大量文本數(shù)據(jù)進(jìn)行訓(xùn)練的,沒有針對任何具體任務(wù)進(jìn)行微調(diào)。這意味著它是一個(gè)通用的語言模型,可以應(yīng)用于多種不同的自然語言處理任務(wù)。它的訓(xùn)練從頭開始,使用JAX庫和Rust語言組成的自定義訓(xùn)練堆棧。

參數(shù)數(shù)量:Grok-1擁有3140億個(gè)參數(shù),是目前參數(shù)量最大的開源大語言模型。這些參數(shù)在給定token上的激活權(quán)重為25%,表明了模型的規(guī)模和復(fù)雜性。

混合專家模型(MoE):Grok-1采用了混合專家系統(tǒng)的設(shè)計(jì),這是一種將多個(gè)專家網(wǎng)絡(luò)(expert networks)結(jié)合起來的方法,以提高模型的效率和性能。在Grok-1中,每個(gè)token從8個(gè)專家中選擇2個(gè)進(jìn)行處理。

激活參數(shù):Grok-1的激活參數(shù)數(shù)量為860億,這比Llama-2的70B參數(shù)還要多,表明其在處理語言任務(wù)時(shí)的潛在能力。

嵌入和位置嵌入:Grok-1使用旋轉(zhuǎn)嵌入而非固定位置嵌入,這是一種處理序列數(shù)據(jù)的方法,可以提高模型處理長文本的能力。Tokenizer詞匯大小為131,072,類似于GPT-4,嵌入大小為6,144。上下文長度為8192 tokens,精度為bf16。

Transformer層:模型包含64個(gè)Transformer層,每層都包含一個(gè)解碼器層,由多頭注意力塊和密集塊組成。多頭注意力塊有48個(gè)頭用于查詢(Query),8個(gè)頭用于鍵/值(Key/Value),KV大小為128。密集塊(密集前饋塊)的加寬因子為8,隱藏層大小為32,768。

- 量化:Grok-1還提供了一些權(quán)重的8bit量化內(nèi)容,這有助于減少模型的存儲和計(jì)算需求,使其更適合在資源有限的環(huán)境中運(yùn)行。

依靠3140億參數(shù),Grok-1表現(xiàn)不錯,某些領(lǐng)域秒殺META的LLAMA2 70B。但與一流廠家比差距還是很明顯,Palm2是谷歌的大模型,參數(shù)是3400億,略高于Grok,但表現(xiàn)遠(yuǎn)在Grok之上。

要部署大模型,主要是算力和存儲,存儲方面經(jīng)常被人忽視,這里重點(diǎn)來講存儲。

CPU與GPU之間的關(guān)系

CPU與GPU之間的關(guān)系,AI計(jì)算部分也可以看作GPU,GPU是外設(shè),CPU是主機(jī)。GPU任務(wù)的控制,調(diào)度和發(fā)起都由CPU完成,CPU根據(jù)任務(wù)類型劃分流向,并行計(jì)算的任務(wù)才交給GPU,而串行計(jì)算一般CPU完成。大模型存儲在SSD里,可以看做電腦硬盤,對車載來說,一般是UFS,成本敏感的廠家會使用eMMC。

運(yùn)算系統(tǒng)有兩種存儲,一種是斷電后存儲內(nèi)容不丟失的非易失性存儲器(Non-Volatile Memory,縮寫:NVM),最常見的NVM是Flash存儲器;還有一種是斷電后存儲內(nèi)容便消失的易失性存儲器,即RAM,又分為DRAM和SRAM。通常內(nèi)存指的是RAM,內(nèi)存嚴(yán)格講應(yīng)該叫緩存或暫存,它是NVM和CPU之間的橋梁。NVM原理類似電容,因此其讀出寫入速度很慢,與CPU速度比差太多,為了兩者協(xié)調(diào)工作,加入內(nèi)存做中轉(zhuǎn)緩沖,它是計(jì)算單元與數(shù)據(jù)或指令存儲之間的橋梁。在芯片內(nèi)部的一般叫cache,發(fā)音類似現(xiàn)金,所以很多地方寫成$。

RAM是橋梁,而SSD或UFS是倉庫,存放著大模型、操作系統(tǒng)等等,RAM只是通過,每一次大模型推理都需要從倉庫中取出大模型的權(quán)重?cái)?shù)據(jù),與輸入數(shù)據(jù)做矩陣乘法,得到激活函數(shù)值后再寫入RAM傳給CPU,讓CPU做出對應(yīng)的計(jì)算將指令交給底盤MCU執(zhí)行。ChatGPT這樣一問一答,可以延遲1-2秒,人都可以接受,但汽車不行,智能駕駛系統(tǒng)運(yùn)行頻率最低20Hz,也就是每秒20次的一問一答,算力和存儲帶寬需求暴增20-40倍。這也是為什么手機(jī)敢說自己可以運(yùn)行百億參數(shù)的大模型,而汽車不行,如果手機(jī)真有那么強(qiáng)大,誰還買3萬美元一張的H100顯卡?

英偉達(dá)顯卡與特斯拉芯片存儲對比

整理:佐思汽研

英偉達(dá)的GPU架構(gòu)實(shí)際變化微乎其微,性能的提升主要來自存儲系統(tǒng)的提升,這也是為什么SK Hynix的HBM存儲到2025年底的產(chǎn)品已經(jīng)被全額買下的原因,AI芯片的競爭主要就是存儲和制造工藝的競爭。

車端自然不可能用上數(shù)千美元的HBM內(nèi)存,因此需要對模型壓縮。按照壓縮過程對網(wǎng)絡(luò)結(jié)構(gòu)的破壞程度,《解析卷積神經(jīng)網(wǎng)絡(luò)》一書中將模型壓縮技術(shù)分為“前端壓縮”和“后端壓縮”兩部分:

前端壓縮,是指在不改變原網(wǎng)絡(luò)結(jié)構(gòu)的壓縮技術(shù),主要包括知識蒸餾、輕量級網(wǎng)絡(luò)(緊湊的模型結(jié)構(gòu)設(shè)計(jì))以及濾波器(filter)層面的剪枝(結(jié)構(gòu)化剪枝)等;

后端壓縮,是指包括低秩分解、未加限制的剪枝(非結(jié)構(gòu)化剪枝/稀疏)、參數(shù)量化以及二值網(wǎng)絡(luò)等,目標(biāo)在于盡可能減少模型大小,會對原始網(wǎng)絡(luò)結(jié)構(gòu)造成極大程度的改造。

前端壓縮幾乎不改變原有網(wǎng)絡(luò)結(jié)構(gòu)(僅僅只是在原模型基礎(chǔ)上減少了網(wǎng)絡(luò)的層數(shù)或者濾波器個(gè)數(shù)),壓縮效率很低。后端壓縮對網(wǎng)絡(luò)結(jié)構(gòu)有不可逆的大幅度改變,造成原有深度學(xué)習(xí)庫、甚至硬件設(shè)備不兼容改變之后的網(wǎng)絡(luò)。其維護(hù)成本很高。

業(yè)內(nèi)常用的模型壓縮方法有六種:

    • 參數(shù)剪枝
    • 參數(shù)量化
    • 低秩分解
    • 參數(shù)共享
    • 緊湊網(wǎng)絡(luò)(輕量級網(wǎng)絡(luò))
    • 知識蒸餾

剪枝(Pruning)是除量化外最常見的模型壓縮方法,也叫稀疏化,英偉達(dá)的GPU對稀疏網(wǎng)絡(luò)有特別優(yōu)化。不同于模型量化對每一個(gè)權(quán)重參數(shù)進(jìn)行壓縮,稀疏化方法是嘗試直接“刪除”部分權(quán)重參數(shù)。模型剪枝的原理是通過剔除模型中 “不重要” 的權(quán)重,使得模型減少參數(shù)量和計(jì)算量,同時(shí)盡量保證模型的精度不受影響。它分為非結(jié)構(gòu)化剪枝(細(xì)粒度)和結(jié)構(gòu)化剪枝(粗粒度),非結(jié)構(gòu)化剪枝的粒度比較細(xì),可以無限制地去掉網(wǎng)絡(luò)中期望比例的任何“冗余”參數(shù),但這樣會帶來裁剪后網(wǎng)絡(luò)結(jié)構(gòu)不規(guī)整、難以有效加速的問題(對神經(jīng)元之間的連接重要性設(shè)計(jì)評價(jià)準(zhǔn)則,刪除冗余連接,可達(dá)到模型壓縮的目的)。非結(jié)構(gòu)化剪枝壓縮效率極高,準(zhǔn)確度也高,可以達(dá)到90%。其算法大都是上世紀(jì)90年代的,近來鮮少有人研究,壓縮效率高,但難以并行加速,需要強(qiáng)大的CPU而非GPU來支撐,但CPU性能提升非常耗費(fèi)成本,筆者不看好這種壓縮算法的前景。

結(jié)構(gòu)化剪枝的粒度比較粗,剪枝的最小單位是filter內(nèi)參數(shù)的組合,通過對filter或者 feature map設(shè)置評價(jià)因子,甚至可以刪除整個(gè)filter或者某幾個(gè)channel,使網(wǎng)絡(luò)“變窄”,從而可以直接在現(xiàn)有軟/硬件上獲得有效加速,但可能會帶來預(yù)測精度(accuracy)的下降,需要通過對模型微調(diào)(fine-tuning)以恢復(fù)性能。

粗粒度的壓縮效率不高,精度還下降不少,但對應(yīng)的硬件很容易取得,地平線和英偉達(dá)都有針對這種網(wǎng)絡(luò)的加速。

參數(shù)量化無需多說,業(yè)內(nèi)無一例外都在使用,是默認(rèn)的壓縮方式,汽車領(lǐng)域訓(xùn)練大多是BF16或FP16,F(xiàn)P32都越來越少了,推理都是INT8,將來可能出現(xiàn)INT4,模型直接縮小一半。FP16轉(zhuǎn)換為INT8,精度下降大約3%。汽車領(lǐng)域提到模型壓縮一般都是指量化之外的壓縮。

知識蒸餾是目前關(guān)注度比較高的壓縮方法,其起源于2006年康奈爾大學(xué)的一篇論文《Model Compression》,2015年谷歌論文《Distilling the Knowledge in a Neural Network》正式提出知識蒸餾,一般簡稱KD。

知識蒸餾(knowledge distillation),其實(shí)也屬于遷移學(xué)習(xí)(transfer learning)的一種,通俗理解就是訓(xùn)練一個(gè)大模型(teacher 模型)和一個(gè)小模型(student 模型),將龐大而復(fù)雜的大模型學(xué)習(xí)到的知識,通過一定技術(shù)手段遷移到精簡的小模型上,從而使小模型能夠獲得與大模型相近的性能。也可說讓小模型去擬合大模型,從而讓小模型學(xué)到與大模型相似的函數(shù)映射。使其保持其快速的計(jì)算速度前提下,同時(shí)擁有復(fù)雜模型的性能,達(dá)到模型壓縮的目的。將教師模型的softmax 層輸出作為soft target與學(xué)生模型的softmax 層輸出作為hard target一同送入total loss 計(jì)算,指導(dǎo)學(xué)生模型訓(xùn)練,將教師模型的知識遷移到學(xué)生模型中,使學(xué)生模型達(dá)到與教師模型相當(dāng)?shù)男阅?。學(xué)生模型更加緊湊高效,起到模型壓縮的目的。知識蒸餾法可使深層網(wǎng)絡(luò)變淺,極大地降低了計(jì)算成本,但也存在其局限性。由于使用softmax 層輸出作為知識,所以一般多用于具有softmax損失函數(shù)的分類任務(wù),在其他任務(wù)的泛化性不好。

小米的UniOcc中深度Aware部分知識蒸餾模型

知識蒸餾在汽車領(lǐng)域就是OCC占用網(wǎng)絡(luò)上比較常見,因?yàn)镺CC太大了。上圖就是小米的UniOcc中深度Aware部分知識蒸餾模型。

華為的RadOcc也使用了知識蒸餾

知識蒸餾可以降低算力需求,但對參數(shù)量沒有多少降低,也就是對存儲性能要求基本沒有降低,以華為的RadOcc為例,教師大模型參數(shù)1.35億,蒸餾出來的學(xué)生模型1.26億,但推理時(shí)間縮短了66%。教師模型是mIoU是49.4,學(xué)生模型是46.1。

要用大模型,必須加強(qiáng)存儲,目前特斯拉HW4.0用上了GDDR6。目前特斯拉模型參數(shù)總和大約10億,根據(jù)目前自動駕駛的發(fā)展趨勢,模型大小會像摩爾定律一樣,每年翻一倍,上百億指日可待。

免責(zé)說明:本文觀點(diǎn)和數(shù)據(jù)僅供參考,和實(shí)際情況可能存在偏差。本文不構(gòu)成投資建議,文中所有觀點(diǎn)、數(shù)據(jù)僅代表筆者立場,不具有任何指導(dǎo)、投資和決策意見。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
MCF52259CVN80 1 NXP Semiconductors 32-BIT, FLASH, 80MHz, RISC MICROCONTROLLER, BGA144
$48.73 查看
MK66FN2M0VLQ18R 1 NXP Semiconductors RISC MICROCONTROLLER
$54.39 查看
ATMEGA328PB-AUR 1 Atmel Corporation RISC Microcontroller, CMOS,

ECAD模型

下載ECAD模型
$2.65 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

佐思汽車研究:致力于汽車、TMT、新能源(特別是新能源汽車、智能汽車、車聯(lián)網(wǎng))領(lǐng)域的產(chǎn)業(yè)研究、專項(xiàng)調(diào)研、戰(zhàn)略規(guī)劃和投資咨詢服務(wù)。