楊凈 整理自 MEET2023
算力的需求,遠(yuǎn)比以往來得更為猛烈。甚至有人直呼:得算力者得未來。
元宇宙、AIGC、AI for Science的涌現(xiàn),又給高性能計(jì)算(HPC)平添了好幾把火。
在諸多挑戰(zhàn)與機(jī)遇共存交織的當(dāng)下,這一領(lǐng)域泰斗中國工程院院士、清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系鄭緯民,在MEET2023智能未來大會上,分享了自己的見解和思考。
估計(jì)未來兩年到四年,HPC(高性能計(jì)算)+AI+BigData融合的服務(wù)器就會出現(xiàn)。
AI for Science的出現(xiàn),讓HPC+AI的融合成為剛性需求;而數(shù)據(jù)處理又是AI的基礎(chǔ),數(shù)據(jù)和AI的融合也很自然。
甚至他還開玩笑說,現(xiàn)在要獲HPC領(lǐng)域的戈登貝爾獎(jiǎng),必須要有AI的算法。你沒有AI的算法,否則獎(jiǎng)都得不了。
雖然這是玩笑說法,但實(shí)際上也是一種趨勢。
除此之外,他還談到人工智能計(jì)算機(jī)設(shè)計(jì)的三大平衡性原則、AI基準(zhǔn)設(shè)計(jì)四大目標(biāo)以及如何通過并行方法加速大規(guī)模預(yù)訓(xùn)練模型。
為了完整體現(xiàn)鄭緯民院士的分享及思考,在不改變原意的基礎(chǔ)上,量子位對他的演講內(nèi)容進(jìn)行了編輯整理。
關(guān)于MEET 智能未來大會:MEET大會是由量子位主辦的智能科技領(lǐng)域頂級商業(yè)峰會,致力于探討前沿科技技術(shù)的落地與行業(yè)應(yīng)用。今年共有數(shù)十家主流媒體及直播平臺報(bào)道直播了MEET2023大會,吸引了超過300萬行業(yè)用戶線上參會,全網(wǎng)總曝光量累積超過2000萬。
演講要點(diǎn)
估計(jì)未來兩年到四年,HPC(高性能計(jì)算)+AI+BigData融合的服務(wù)器就會出現(xiàn)。過去HPC是一臺機(jī)器、AI是一臺機(jī)器,大數(shù)據(jù)處理是第三臺機(jī)器,這三個(gè)機(jī)器自己管自己,但現(xiàn)在這三臺機(jī)器正在融合之中;
AI基準(zhǔn)設(shè)計(jì)要達(dá)到四個(gè)目標(biāo):統(tǒng)一的一個(gè)分?jǐn)?shù)、可變的問題規(guī)模、具有實(shí)際的人工智能意義、評測程序包含必要的多機(jī)通信;
現(xiàn)在要獲HPC領(lǐng)域的戈登貝爾獎(jiǎng),必須要有AI的算法,你沒有AI的算法,否則獎(jiǎng)都得不了。這是開玩笑的說法,但實(shí)際上也是一個(gè)趨勢;
AI for Science的出現(xiàn),讓HPC+AI的融合成為剛性需求;
探索更大參數(shù)量模型的效果,是具有重要科學(xué)意義的;
我們希望人工智能計(jì)算機(jī)跟HPC有TOP 500一樣,也有一個(gè)AIPerf 500。
(以下是鄭緯民院士演講全文)
人工智能計(jì)算機(jī)設(shè)計(jì)的三大平衡性原則
今天給大家講講我們團(tuán)隊(duì)為人工智能做的三件事,就是AI與算力基礎(chǔ)設(shè)施的設(shè)計(jì)、評測和優(yōu)化。
第一件事,HPC(高性能計(jì)算)和AI的應(yīng)用是不一樣的。
HPC的應(yīng)用領(lǐng)域主要有科學(xué)和工程計(jì)算、天氣預(yù)報(bào)、核聚變模擬、飛行器設(shè)計(jì)。它的運(yùn)算精度是雙精度浮點(diǎn)運(yùn)算,64位甚至128位的,所以加減乘除做得很快,主要是這點(diǎn)不同。
人工智能計(jì)算機(jī)就是半精度的,甚至是定點(diǎn)的,8位的、16位的、32位的。
因此這兩臺機(jī)器應(yīng)該是不一樣的,而人工智能計(jì)算機(jī)最近兩年才開始有。因此我們團(tuán)隊(duì)設(shè)計(jì)了一臺能比較好地處理人工智能問題的計(jì)算機(jī),究竟長什么樣子?
我們團(tuán)隊(duì)第一個(gè)貢獻(xiàn),是人工智能計(jì)算機(jī)設(shè)計(jì)的平衡性原則。
第一個(gè),計(jì)算平衡設(shè)計(jì)。人工智能是處理單精度的或者定點(diǎn)的,你這臺機(jī)器是不是只要把定點(diǎn)的、單精度的做好就行了?但實(shí)際上也不是。雖然我們主要考慮半精度運(yùn)算,但是也要考慮到雙精度運(yùn)算的能力。
這兩年下來有一個(gè)經(jīng)驗(yàn):
1)雙精度與半精度的運(yùn)算性能之比1:100比較好。
2)人工智能計(jì)算機(jī)不能只做CNN的,還要做大模型訓(xùn)練。
因此,提出來叫變精度平衡設(shè)計(jì)思想,總體來說還要增加通用計(jì)算。
第二,網(wǎng)絡(luò)平衡設(shè)計(jì),既然這臺機(jī)器很大,由上千個(gè)、上萬個(gè)小機(jī)器連在一起,那么這個(gè)網(wǎng)絡(luò)也要做得好。如果只做CNN那就好辦,但還要考慮訓(xùn)練。這樣一來,網(wǎng)絡(luò)怎么做平衡設(shè)計(jì)也非常重要。
第三,存儲,即IO子系統(tǒng)設(shè)計(jì)。我們知道現(xiàn)在每臺機(jī)器都有SSD,怎么把每臺SSD聯(lián)合起來開成一個(gè)大的分布式文件系統(tǒng)?這也是很要緊的。
因此,我們提出來這三個(gè)平衡設(shè)計(jì)原則,已被很多公司采用?,F(xiàn)在國內(nèi)20多個(gè)城市陸續(xù)啟動人工智能超算中心,讓算力無處不在、觸手可及,這其中大多數(shù)都用上了平衡設(shè)計(jì)這個(gè)想法。
目前行業(yè)有個(gè)趨勢是HPC+AI+BigData融合在一塊。過去HPC是一臺機(jī)器、AI是一臺機(jī)器,大數(shù)據(jù)處理是第三臺機(jī)器,這三個(gè)機(jī)器自己管自己,但現(xiàn)在這三臺機(jī)器正在融合之中。
為何這么說呢?
一方面,AI for Science的出現(xiàn),讓HPC程序中包含了AI算法。因此HPC+AI的融合,成為剛性需求。
我曾經(jīng)開玩笑說,你現(xiàn)在要獲HPC的領(lǐng)域戈登貝爾獎(jiǎng),必須要有AI的算法,你沒有AI的算法,否則獎(jiǎng)都得不了。這是開玩笑的說法,但實(shí)際上也是一個(gè)趨勢。
另一方面,數(shù)據(jù)處理是AI的基礎(chǔ),數(shù)據(jù)和AI的融合也很自然。因此,我估計(jì)兩年到四年,HPC、AI和BigData融合的服務(wù)器就會出現(xiàn)。
這是我們小組第一個(gè)貢獻(xiàn),即人工智能計(jì)算機(jī)應(yīng)該長成什么樣子。
AI基準(zhǔn)設(shè)計(jì)要達(dá)四個(gè)目標(biāo)
第二個(gè)貢獻(xiàn),大規(guī)模人工智能算力基準(zhǔn)評測程序AIPerf。
什么意思呢?傳統(tǒng)HPC有個(gè)評測程序Linpack,TOP500就是它評出來的,但它不能用于AI計(jì)算機(jī)評測。Linpack是用來測64位,甚至128位加減乘除做的快慢?,F(xiàn)在人工智能計(jì)算機(jī)是16位、32位,甚至8位,這是完全不一樣。
因此,我們需要做一個(gè)能回答這個(gè)問題的人工智能算力基準(zhǔn)測試程序。我們希望有個(gè)簡單的評價(jià)指標(biāo),來判斷哪家系統(tǒng)的人工智能算力更強(qiáng)。
那現(xiàn)在有沒有相應(yīng)的評測程序呢?其實(shí)也有,但沒有太合適的。
比如,DeepBench針對單個(gè)芯片,不適用于整機(jī)評測。Mobile AI Bench針對的是移動端硬件上的模型訓(xùn)練評測,不是整個(gè)系統(tǒng)的。MLPerf可擴(kuò)展性不好。因此,我們決定要自己做一個(gè)。
做個(gè)AI基準(zhǔn)設(shè)計(jì)一定要達(dá)到這四個(gè)目標(biāo):
1、統(tǒng)一的分?jǐn)?shù)。我們希望運(yùn)行Benchmark出來一個(gè)值,就一個(gè)值就行了。而不是結(jié)果出來一個(gè)報(bào)告,這樣看起來很費(fèi)勁。
2、可變的問題規(guī)模。Benchmark可以測4個(gè)節(jié)點(diǎn)組成的機(jī)器,也可以測1000個(gè)、20000個(gè),要規(guī)模可變,大規(guī)模的做起來也挺費(fèi)勁。
3、具有實(shí)際的人工智能意義。不能隨便說加減乘除,那就不能反映人工智能的問題。特別是要反映人工智能問題中的神經(jīng)網(wǎng)絡(luò)運(yùn)算、自然語言處理能力。
4、評測程序包含必要的多機(jī)通信,因?yàn)槭且粋€(gè)大的系統(tǒng),由多機(jī)連起來的,需要有通信。
最后,以清華大學(xué)為主的團(tuán)隊(duì)做了一個(gè)AIPerf來測試,于2020年11月15日首次發(fā)布。我們希望人工智能計(jì)算機(jī)跟HPC有TOP 500一樣,也有一個(gè)AIPerf 500。
現(xiàn)在它已經(jīng)連續(xù)三年每年都發(fā)布排行榜,得到了很多單位、企業(yè)的認(rèn)可。
大規(guī)模預(yù)訓(xùn)練模型的三種并行加速方法
第三個(gè)貢獻(xiàn),百萬億參數(shù)超大規(guī)模訓(xùn)練模型的加速方法。
簡單舉個(gè)例子,學(xué)界至今已形成一個(gè)共識:模型規(guī)模和模型效果呈正相關(guān)關(guān)系。GPT有1.1億參數(shù),GPT-3有1750億參數(shù),悟道2.0有1.75萬億參數(shù),我們做的BaGuaLu卻有174萬億參數(shù),應(yīng)該說參數(shù)越多,效果越好,越接近人的智慧,但有個(gè)問題就是,訓(xùn)練數(shù)據(jù)越多,要求的算力也就越大。
再來看左邊這張圖SAT(美國高考)任務(wù)的情況,如果模型參數(shù)達(dá)到100B(相當(dāng)于1000億個(gè)參數(shù)),那么模型完成SAT,就有70%的準(zhǔn)確度。
因此,探索更大參數(shù)量模型的效果,是具有重要科學(xué)意義的。
但模型越做越大,問題隨之而來。現(xiàn)在國內(nèi)很多單位模型都做得很好,但怎么把模型安裝到一臺機(jī)器上去,這有講究。
舉個(gè)例子,我們就將BaGuaLu模型安裝到了新一代神威體系結(jié)構(gòu)芯片上。
圖上可以看到,核組共有64個(gè)核,再加上黑色主核,共有65個(gè)核。一個(gè)CPU共有6個(gè)這樣的組成:CG0、CG1、CG2、CG3、CG4、CG5,這6個(gè)通過環(huán)形網(wǎng)連在一起。我們稱之為一個(gè)節(jié)點(diǎn),將它集成到一塊,一個(gè)節(jié)點(diǎn)大概有390個(gè)核。一共有256個(gè)節(jié)點(diǎn)組成超節(jié)點(diǎn),超節(jié)點(diǎn)內(nèi)部通信一步直聯(lián),超節(jié)點(diǎn)跟超節(jié)點(diǎn)之間要經(jīng)過上層的網(wǎng)絡(luò)。
因此,256個(gè)節(jié)點(diǎn)內(nèi)部通信很快,一步就到。但超節(jié)點(diǎn)之間的通信就比較慢了。
而要將大模型在這臺機(jī)器上運(yùn)行,問題就來了。現(xiàn)在預(yù)訓(xùn)練模型都是Transfomer,而Transfomer結(jié)構(gòu)是嵌入層、注意力層、前反饋網(wǎng)絡(luò)層,中間注意力層跟前反饋層都會經(jīng)過N次迭代,整個(gè)運(yùn)算又基本上是矩陣乘法。
如果一個(gè)模型能在單個(gè)CPU上運(yùn)算,那最省事了,但CPU的計(jì)算能力有限,內(nèi)存也有限,模型也就大不到哪里去。因此大模型訓(xùn)練一定是多機(jī)的、分布的,這就涉及到了多種并行方法。
第一種,數(shù)據(jù)并行。假如整個(gè)模型設(shè)兩個(gè)節(jié)點(diǎn),一個(gè)模型節(jié)點(diǎn)0、另一個(gè)模型做的節(jié)點(diǎn)1,整個(gè)模型都做了數(shù)據(jù)并行,數(shù)據(jù)各一半要拿去訓(xùn)練學(xué)習(xí),但是要注意訓(xùn)練完了以后不是最終的結(jié)果,因?yàn)橹惠斎肓艘话氲臄?shù)據(jù)。因此這中間要AII-Reduce,AII-Reduce就做好多通信,整件事情就會很復(fù)雜。
第二種,模型并行。將整個(gè)模型切成一半,一半模型節(jié)點(diǎn)0,一半模型節(jié)點(diǎn)1,數(shù)據(jù)是整個(gè)拿去訓(xùn)練。訓(xùn)練完了以后出來的結(jié)果也不是最終結(jié)果,因?yàn)橹挥?xùn)練了一半的模型,出來還有AII-Gather,也是做通信的。
第三種,專家并行,跟數(shù)據(jù)并行、模型并行一樣,同樣要求通信。
現(xiàn)在如果你只有一種方法,究竟用哪種并行方法呢?實(shí)際上這跟計(jì)算機(jī)結(jié)構(gòu)有關(guān)。如果每臺計(jì)算機(jī)之間通信都非??欤敲从脭?shù)據(jù)并行就可以;如果你的通信比較慢,就要考慮模型并行或者專家并行。
因此,這些模型如何跟數(shù)據(jù)、機(jī)器實(shí)際情況匹配?這就涉及到軟硬件協(xié)同這件事。
我們在新一代神威機(jī)器上采用了“拓?fù)涓兄幕旌喜⑿心J健?/strong>。
具體而言,剛才提到,該體系架構(gòu)節(jié)點(diǎn)內(nèi)部通信很快,但超節(jié)點(diǎn)之間通信比較慢。因此在混合并行模式下,一個(gè)通信超節(jié)點(diǎn)內(nèi)部,采用數(shù)據(jù)并行;超節(jié)點(diǎn)之間則采用專家并行或模型并行。
除此之外,還有內(nèi)存大小、訪問內(nèi)存等問題:怎么樣讓內(nèi)存訪問的比較快,負(fù)載比較均衡?
做大規(guī)模模型訓(xùn)練時(shí),平均每小時(shí)都會發(fā)生一次硬件軟件出錯(cuò),不要以為這個(gè)機(jī)器不可靠。目前這個(gè)水平已經(jīng)很好了。因此,一般都要做檢查點(diǎn),如果寫的不好,這件事情就有做三個(gè)小時(shí),怎么能讓它加速呢?最后我們做到了10分鐘就完成了。
現(xiàn)在,我們把模型開源了,尤其是并行訓(xùn)練模型,將他們放在了開源系統(tǒng)FastMOE里,現(xiàn)在得到了工業(yè)界很多認(rèn)可,像阿里巴巴的淘寶、天貓,騰訊的端到端語言模型,都用上了我們的并行系統(tǒng)。百度飛槳的MOE模塊,也使用了我們的FastMOE。
最后總結(jié)一下,一是人工智能算力是當(dāng)前人工智能領(lǐng)域發(fā)展的關(guān)鍵。
二是團(tuán)隊(duì)對人工智能的三點(diǎn)小貢獻(xiàn):
1)提出了一種AI算力基礎(chǔ)設(shè)施的架構(gòu)和平衡設(shè)計(jì)原則,現(xiàn)在全國20多個(gè)城市的20多個(gè)人工智能超算中心基本上都采納了我們的設(shè)計(jì)思想。
2)做了評測,即人工智能基準(zhǔn)測試程序AIPerf,現(xiàn)在每年都會發(fā)布500名榜單,在國內(nèi)外產(chǎn)生了一定影響。
3)大模型怎么訓(xùn)練得快?特別是關(guān)于數(shù)據(jù)并行、模型并行,還是專家并行。我們做了一個(gè)庫放在Open Source上?,F(xiàn)在工業(yè)界都來用我們的東西,使得大訓(xùn)練模型訓(xùn)練能夠加快。
因此,我們團(tuán)隊(duì)對人工智能做了這三點(diǎn)小貢獻(xiàn),希望能夠推動人工智能的發(fā)展。
講的不對的地方請大家批評指正。謝謝大家!