國(guó)產(chǎn)萬(wàn)卡系統(tǒng)究竟怎么樣了?中國(guó)工程院院士鄭緯民:國(guó)產(chǎn)萬(wàn)卡很重要,但也很難,異地卡聯(lián)合訓(xùn)練不太可行 原創(chuàng)
編輯 | 言征
出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)
臨近年底,業(yè)內(nèi)曝出了不少大新聞,比如大模型撞墻、谷歌的Gemini 2 Flash和量子芯片Willow,再比如英偉達(dá)面臨著中國(guó)反壟斷調(diào)查的危機(jī)等,所有這些,讓國(guó)產(chǎn)AI算力的話題再次成為圈內(nèi)的熱議點(diǎn)。
那么,國(guó)產(chǎn)算力中心構(gòu)建究竟什么情況?背后支撐大模型訓(xùn)練和推理的計(jì)算機(jī)系統(tǒng)現(xiàn)在都面臨著怎樣的難題?為什么包括ChatGPT在內(nèi)的大模型時(shí)不時(shí)就會(huì)出現(xiàn)宕機(jī)的情況?
“為什么異地卡聯(lián)合訓(xùn)練很難?數(shù)據(jù)從從北京到貴州需要5天,有了結(jié)果后再到上海又需要5天?!?/p>
12月13日,中國(guó)工程院院士鄭緯民教授在中科金主辦的《大模型技術(shù)與應(yīng)用創(chuàng)新論壇》上帶來(lái)了一場(chǎng)信息密度極大的內(nèi)容分享,既有干貨,也有一些有趣的猛料。
鄭院士表示,構(gòu)建國(guó)產(chǎn)萬(wàn)卡系統(tǒng)非常重要但難度也很大,真相非常殘酷——異構(gòu)卡聯(lián)合訓(xùn)練不如單一架構(gòu)聯(lián)合訓(xùn)練劃算,而異地卡聯(lián)合訓(xùn)練效果同樣不佳。
此外,大模型完整的訓(xùn)練和推理過(guò)程不止GPU算力那么簡(jiǎn)單,還有很多的系統(tǒng)工作需要深入研究,比如存放訓(xùn)練數(shù)據(jù)的硬盤、再比如數(shù)據(jù)預(yù)處理,有消息稱GPT4,1萬(wàn)塊A100要訓(xùn)練11個(gè)月,有5個(gè)月的時(shí)間都在做預(yù)處理。
重要的是,對(duì)于中國(guó)國(guó)產(chǎn)而言,最大的難點(diǎn)之一還是在于國(guó)產(chǎn)計(jì)算系統(tǒng)的核心基礎(chǔ)軟件,生態(tài)還不夠。
鄭院士還分享了當(dāng)紅大模型獨(dú)角獸月之暗面的AI產(chǎn)品Kimi的一些進(jìn)展和研發(fā)經(jīng)歷,他透露了初始時(shí)Kimi因?yàn)榱髁勘┰鲥礄C(jī)時(shí),原來(lái)是“一死機(jī)就買(GPU)卡”,現(xiàn)在采取了Mooncake架構(gòu)之后,就再也沒(méi)出現(xiàn)宕機(jī)的情況。
摘要如下:
- 為什么算力產(chǎn)業(yè)快速發(fā)展,一是全面啟動(dòng)?xùn)|數(shù)西算,二是AI讓智能算力需求爆發(fā)。
- 人工智能大模型生命周期五個(gè)過(guò)程,每個(gè)過(guò)程都需要大存儲(chǔ)、大算力。
- 萬(wàn)卡很重要,我們都希望有萬(wàn)卡,但現(xiàn)在做得不太好,很難。
- 異地卡、異構(gòu)卡訓(xùn)練效果非常差,暫時(shí)不要考慮。清華帶隊(duì)開(kāi)發(fā)的“八卦爐“”是一個(gè)系統(tǒng)軟件,裝到卡里性能就會(huì)好了。如果效果好,可以少買30%的卡。
料還很多,話不多說(shuō)。以下是鄭院士的演講全文:
1.大模型+,中國(guó)還是可以超過(guò)美國(guó)的
鄭緯民:謝謝魏所長(zhǎng),喻總和各位朋友,今天用25分鐘時(shí)間講講大模型訓(xùn)練機(jī)理的計(jì)算機(jī)系統(tǒng)怎么樣了。
今年大模型有兩個(gè)特點(diǎn),第一是分析基礎(chǔ)大模型進(jìn)入多模態(tài)狀態(tài),不光有文本,還有圖像、視頻,就是多種模式,多模態(tài)這是第一個(gè)特點(diǎn)。第二個(gè)特點(diǎn),真的用起來(lái)。大模型+實(shí)際的東西,比如大模型+金融,大模型+醫(yī)療、大模型+汽車、大模型+智能制造、大模型+各行各業(yè)。
前幾年不是說(shuō)大模型沒(méi)有用,也用了,但更多的是給它幾段話,讓它寫一個(gè)PPT,畫一幅畫出來(lái),寫一篇文章出來(lái)。這也挺好的,但今年的應(yīng)用真的是大模型跟國(guó)民經(jīng)濟(jì)GDP,跟生活水平提高密切結(jié)合。我一直認(rèn)為基礎(chǔ)大模型,我們的水平跟美國(guó)人比還是屬于差一點(diǎn)。他們比我們做得好。但“大模型+”這件事我們還是有希望超過(guò)美國(guó)的。
2.大模型生命周期的五個(gè)環(huán)節(jié)
大模型有五個(gè)過(guò)程,第一是數(shù)據(jù)獲取,大模型就是訓(xùn)練數(shù)據(jù),第一件事是把數(shù)據(jù)獲取起來(lái),從哪里來(lái)?從世界各地。但取來(lái)的文件是小文件,小好,省硬盤,這是一個(gè)特點(diǎn)。但是個(gè)數(shù)多得不得了,數(shù)百億個(gè)文件。這些文件都放到硬盤里,但要記住放在硬盤的哪個(gè)位置里。一百億個(gè)文件有一百億個(gè)位置,我們一般叫源數(shù)據(jù)處理,也就是說(shuō)像個(gè)目錄一樣,數(shù)百億個(gè)位置你要記住,對(duì)計(jì)算機(jī)來(lái)說(shuō)比較麻煩,一臺(tái)計(jì)算機(jī)擱不下,那就兩臺(tái)、三臺(tái)、五臺(tái)、十臺(tái)。但隨著位置多了,找位置要找一會(huì)兒,怎么讓數(shù)據(jù)擱得下,找得快?這是數(shù)據(jù)獲取比較麻煩的事。所以最后結(jié)論是把數(shù)據(jù)拿來(lái)放到硬盤里,多得不得了。這是第一件事。
第二是數(shù)據(jù)預(yù)處理,數(shù)據(jù)已經(jīng)拿來(lái)了,直接訓(xùn)練就行了嗎?還不行。數(shù)據(jù)質(zhì)量不高,格式不一樣,里面有廣告,有重復(fù)的,還有其他不喜歡的內(nèi)容。數(shù)據(jù)質(zhì)量不好怎么辦?預(yù)處理。把數(shù)據(jù)質(zhì)量提高,重復(fù)的去掉,廣告去掉,數(shù)據(jù)質(zhì)量越高,訓(xùn)練結(jié)果越好。預(yù)處理這件事也很麻煩。有人統(tǒng)計(jì),GPT4,1萬(wàn)塊A100要訓(xùn)練11個(gè)月,有5個(gè)月的時(shí)間做預(yù)處理,僅訓(xùn)練之前的預(yù)處理就占了一半時(shí)間,非常長(zhǎng),成為訓(xùn)練的瓶頸。如何使預(yù)處理速度快?實(shí)際上就是大數(shù)據(jù)處理,把大數(shù)據(jù)處理軟件做好很不容易。時(shí)間關(guān)系我不展開(kāi)講怎么做了。數(shù)據(jù)質(zhì)量好了,就可以做訓(xùn)練了。
第三模型訓(xùn)練。訓(xùn)練需要很多算力,也需要很多存儲(chǔ),做起來(lái)事情挺多的,要解決的問(wèn)題很多。但是我只講一件事,假設(shè)10萬(wàn)塊卡,平均一小時(shí)出錯(cuò),一出錯(cuò)就要重來(lái)進(jìn)行二次訓(xùn)練,到第二小時(shí)又出錯(cuò),那就沒(méi)完沒(méi)了。過(guò)去做高性能的機(jī)器人都有一個(gè)辦法,假設(shè)一個(gè)小時(shí)左右出一次錯(cuò),我們?cè)趺崔k?開(kāi)始訓(xùn)練,訓(xùn)練到40分鐘時(shí),在出錯(cuò)前主動(dòng)停下來(lái)。把當(dāng)時(shí)的硬件、軟件環(huán)境記到系統(tǒng)里,記到硬盤里去。記完以后繼續(xù)開(kāi)始訓(xùn)練,訓(xùn)練到1小時(shí)左右出錯(cuò)了,過(guò)去是從頭來(lái),現(xiàn)在不用了,把剛才記在硬盤的東西拿出來(lái),從這個(gè)地方開(kāi)始訓(xùn)練,這就比較簡(jiǎn)單,我們過(guò)去都是這樣做的。但麻煩在哪呢?這個(gè)大模型訓(xùn)練數(shù)據(jù)量特別大,40分鐘到了,主動(dòng)把數(shù)據(jù)存到硬盤里,要存三個(gè)小時(shí)。一小時(shí)出一次錯(cuò),那就亂成一鍋粥,就不好辦了。所以如何把這件事最后10分鐘、20分鐘解決?要解決的問(wèn)題挺多的。不管如何,訓(xùn)練之后最終得到一個(gè)模型--基礎(chǔ)大模型。
第四是模型微調(diào)。不是已經(jīng)訓(xùn)練完了嗎?第三個(gè)過(guò)程出來(lái)我們叫基礎(chǔ)大模型,基礎(chǔ)大模型如果給醫(yī)院做醫(yī)療,還不怎么行。醫(yī)院數(shù)據(jù)訓(xùn)練太小了,基礎(chǔ)大模型是基礎(chǔ)數(shù)據(jù),打架的、看電影的、看小說(shuō)的,醫(yī)院的模型太小。所以模型的微調(diào)就是第二次訓(xùn)練,在基礎(chǔ)大模型的基礎(chǔ)上再訓(xùn)練一次,訓(xùn)練什么?醫(yī)院的數(shù)據(jù)。二次訓(xùn)練叫微調(diào),出來(lái)的模型叫醫(yī)院大模型。實(shí)際上你還可以繼續(xù),第三次訓(xùn)練。醫(yī)院大模型假如說(shuō)用來(lái)看B超還不怎么行,怎么辦?在第二次訓(xùn)練的基礎(chǔ)上,把B超的數(shù)據(jù)再訓(xùn)練一次,出來(lái)就是B超大模型,由此還可以繼續(xù)下去。模型微調(diào)實(shí)際上是領(lǐng)域模型,第一次出來(lái)叫基礎(chǔ)大模型,第二次出來(lái)的叫領(lǐng)域、行業(yè)大模型,行業(yè)大模型還可以繼續(xù)細(xì)分下去,可以專門分為看肺的、看胃的,都可以做一次一次做下去。
最后是模型推理,推理的確是用的情況。五個(gè)過(guò)程都需要算力、存儲(chǔ),都很費(fèi)時(shí)間。
3.國(guó)產(chǎn)支持大模型訓(xùn)練的計(jì)算機(jī)系統(tǒng)現(xiàn)狀
現(xiàn)在做大模型的公司有三類。第一類是研發(fā)大模型,就是做大模型本身的。比如說(shuō)百度、清華都有專門做大模型的。第二大模型+X,這就是做應(yīng)用了。做大模型是基礎(chǔ)大模型,大模型+是結(jié)合產(chǎn)業(yè),像中關(guān)村科金就是跟金融結(jié)合,大模型用在金融方面會(huì)做得很好。所以大模型+X是做應(yīng)用的。第三支持大模型的計(jì)算機(jī)系統(tǒng)。比如1000塊卡,1塊萬(wàn)卡,怎么聯(lián)(才能)讓推理、訓(xùn)練很快等。
而當(dāng)前支持大模型訓(xùn)練的,大概是第三類公司。
第一種是買英偉達(dá)的GPU訓(xùn)練,硬件性能好,編程生態(tài)好,大家都喜歡用。但問(wèn)題是人家不賣給我們了,因此我們想辦法用國(guó)產(chǎn)的。高性能的芯片不賣我們,使得我們的人工智能走向本地化。
數(shù)據(jù)實(shí)地化,內(nèi)容主題化,算力國(guó)產(chǎn)化。但國(guó)產(chǎn)的大家不愿意用,因?yàn)樯鷳B(tài)不好。什么是生態(tài)?假設(shè)你有一個(gè)軟件是基于英偉達(dá)寫的,現(xiàn)在英偉達(dá)用不了,要移植到國(guó)產(chǎn)系統(tǒng),如果很容易那就是生態(tài)好,否則就是不好。新寫一個(gè)軟件,跟過(guò)去的寫法基本差不多這叫生態(tài)好,如果完全不一樣,要重新學(xué),這就是生態(tài)不太好。
4.解決國(guó)產(chǎn)智能算力,需要造10個(gè)軟件
現(xiàn)在用國(guó)產(chǎn),我們的生態(tài)不太好,我們想辦法要做好十個(gè)軟件:并行系統(tǒng)、編程框架、通信庫(kù)、AI編譯器、算子庫(kù)、編程語(yǔ)言、調(diào)度器、容錯(cuò)系統(tǒng)、內(nèi)存分配系統(tǒng)、存儲(chǔ)系統(tǒng)。
比如,并行系統(tǒng),現(xiàn)在不是1塊卡,而是1000塊卡、1萬(wàn)塊卡,1塊卡訓(xùn)練一百天,我們買100塊卡,一天就訓(xùn)練完了。但中間要交換數(shù)據(jù),交換一次是人家的90倍了,如果做得不好的話,100塊卡我們希望有100倍效能,只能做到3、4倍的效率。我們希望有70倍、80倍、90倍這就叫并行系統(tǒng),想辦法接近100倍。做得不好,20倍。
再比如通信庫(kù),1000塊卡、1萬(wàn)塊卡要通信,怎么寫好?算子庫(kù),寫一個(gè)矩陣軟件,最好不要寫,調(diào)用矩陣成本軟件,碰到什么就調(diào)用什么,這個(gè)庫(kù)要寫得多,寫得好。要有編譯器,國(guó)內(nèi)會(huì)做編譯系統(tǒng)的特別少,龍舟系統(tǒng),一個(gè)小時(shí)就出錯(cuò)了,怎么才能繼續(xù)做下去?
由于時(shí)間關(guān)系,我不一一贅述。
5.清華帶隊(duì)打造“八卦爐”
清華大學(xué)帶著團(tuán)隊(duì)做了十個(gè)軟件,學(xué)生起了名字叫八卦爐,實(shí)際上只做了七個(gè),沒(méi)做成十個(gè),(圖中)紫色的是清華做的,國(guó)內(nèi)華為等很多公司,也做了相應(yīng)的軟件,我們湊了10個(gè),協(xié)調(diào)“八卦爐”,硬件裝到八卦爐里做訓(xùn)練,就會(huì)比較好。
圖片
青島有一臺(tái)大機(jī)器叫神威,第一件事把“八卦爐”裝上訓(xùn)練,三個(gè)大模型訓(xùn)練,訓(xùn)練出來(lái)的效能還是不錯(cuò)的。
過(guò)去訓(xùn)練一個(gè)大模型要投入幾十億,但現(xiàn)在我國(guó)有十四億超算系統(tǒng),錢都是國(guó)家付的,有的機(jī)器還有一點(diǎn)富余,在那里訓(xùn)練價(jià)錢是英偉達(dá)系統(tǒng)的六分之一。因?yàn)閲?guó)內(nèi)超算機(jī)器收費(fèi)便宜,不像英偉達(dá)要把機(jī)器成本收回來(lái)還要賺錢。
所以在座各位如果要做大模型訓(xùn)練,到青島的神威上做,六分之一的價(jià)格就夠。
沐曦是上海做芯片的公司,我們把“八卦爐”裝到它的系統(tǒng)上,從算子效率、并行方案、和集群支持,三方優(yōu)化后,平均性能提升30%,如果性能跟原來(lái)一樣,可以少買三分之一的卡。
燧原也是做芯片的,前幾年的卡主要是做推理的。推理卡這件事也有存儲(chǔ)器,訓(xùn)練完的參數(shù)擱到卡里的存儲(chǔ)器。推理過(guò)程中是一步步推理,中間的過(guò)程叫KV-catch,我們希望訓(xùn)練完有參數(shù),推理過(guò)程中的部署,KV-catch擱進(jìn)去,這個(gè)東西擱不下性能就差。存儲(chǔ)大小取決于推理快慢。我們想了一個(gè)辦法,主機(jī)有存儲(chǔ)器,一般推理的時(shí)候主體的存儲(chǔ)器跟CPU不同時(shí)用,就可以把空出來(lái)的存儲(chǔ)器用起來(lái)。
摩爾芯片是一家北京的公司,存儲(chǔ)卡做得很不錯(cuò)了,我們把八卦爐裝上,性能也取得了很大的提高。
(劃重點(diǎn),這里有一個(gè)猛料:月之暗面之前的宕機(jī)問(wèn)題是如何解決的。)
Mooncake是Kimi幕后做大模型推理架構(gòu)的,也是清華大學(xué)計(jì)算機(jī)系畢業(yè)的小伙子(楊植麟)在做。數(shù)據(jù)更多、模型更大,更長(zhǎng)的上下文窗口肯定效果更好。它支持200萬(wàn)字的上下文,很多人都喜歡用它。
Kimi剛推出的時(shí)候一死機(jī)就買卡,買了五次卡還死機(jī)。最后我們想了一個(gè)辦法,更高推理負(fù)載意味著要買更多的推理卡,但推理卡主要是存儲(chǔ)器不夠,用的人多了,就要擴(kuò)大,這件事也麻煩。
圖片
我們想了一個(gè)辦法,一篇文章,第一個(gè)用戶說(shuō)總結(jié)一下這篇論文,第二個(gè)用戶說(shuō)這篇論文關(guān)鍵創(chuàng)新是什么,第三個(gè)用戶說(shuō)有哪些相關(guān)研究,第四個(gè)用戶問(wèn)這篇文章可以進(jìn)一步探索什么。如果四個(gè)用戶是獨(dú)立的,每個(gè)用戶都要獨(dú)立占用資源。用戶可能有幾萬(wàn)個(gè),以前都是獨(dú)立的,現(xiàn)在把用戶公共部分提煉出來(lái),省了很多卡。
Mooncake以后就沒(méi)有再死過(guò)機(jī),把存儲(chǔ)器好好用,也可以省很多卡。
6.兩點(diǎn)看法:關(guān)于國(guó)產(chǎn)萬(wàn)卡系統(tǒng)和異地卡聯(lián)合訓(xùn)練
第一點(diǎn),構(gòu)建國(guó)產(chǎn)萬(wàn)卡系統(tǒng)很重要也很難。人工智能需要越多的卡越好,萬(wàn)卡系統(tǒng)要做,但是很難。首先,因?yàn)槿思也毁u給我們了,只能建國(guó)產(chǎn)一萬(wàn)塊卡。
其次,什么叫好?一萬(wàn)塊卡建完以后,大家基本都喜歡用,而且要基本好用,達(dá)到這個(gè)目的非常難。
現(xiàn)在建的卡有多少用戶喜歡用?第一塊卡是A公司的,第二塊卡是B公司的,第三塊卡是C公司的,一起用效果極差。不要用這種方式,少弄一點(diǎn)研究一下可以。如果是做高性能計(jì)算,最初買Intel芯片1000個(gè),后來(lái)出新芯片了,又買了1000個(gè),新芯片、老芯片各有1000個(gè),軟件不用改,就可以轉(zhuǎn)起來(lái)。但前1000個(gè)芯片本事小一點(diǎn),后1000個(gè)芯片本事大一點(diǎn)。
一個(gè)任務(wù)來(lái)了,分成2000份,還要記得給其中1000個(gè)芯片分小一點(diǎn)的任務(wù),另外1000個(gè)芯片分大一點(diǎn)的任務(wù),這還是靜態(tài)的。如果是動(dòng)態(tài)的,你怎么分?
這就是木桶效應(yīng),有的板長(zhǎng),有的板短,整個(gè)桶裝多少水是由短板決定的,新板子再長(zhǎng)也沒(méi)有用。所以1000個(gè)老CPU和1000個(gè)CPU合起來(lái),性能比2000個(gè)老CPU性能還低一點(diǎn),為什么要做這件事?
第二點(diǎn),異構(gòu)卡聯(lián)合訓(xùn)練,效果不太好。現(xiàn)在加上異構(gòu)卡,就更難了。靜態(tài)的任務(wù),我們都不會(huì)合在一起做,中國(guó)人不做,美國(guó)人也不做,因?yàn)椴缓纤?。此外,異地卡,為什么更難,因?yàn)閿?shù)據(jù)從北京傳到貴州,5天才能到,怎么訓(xùn)練?貴州做出來(lái)結(jié)果送到上海,又要5天,怎么做?異構(gòu)卡、異地卡訓(xùn)練效果都不好。錢少的人不需要做,錢多的人可以試試。
謝謝大家!
本文轉(zhuǎn)載自??51CTO技術(shù)棧??,作者:言征
