鄭為民院士:科學(xué)人工智能的興起,使高性能計(jì)算與人工智能的融合成為必然
楊菁編譯自MEET2023
量子比特 | 公眾號(hào)QbitAI
人們對(duì)于算力的需求比以往更加強(qiáng)烈,甚至有人說:誰擁有了算力,誰就擁有了未來。
Metaverse、AIGC、AI for Science的出現(xiàn)為高性能計(jì)算(HPC)增添了動(dòng)力。
在諸多挑戰(zhàn)和機(jī)遇并存、交織的當(dāng)下,人工智能領(lǐng)域領(lǐng)軍人物、中國工程院院士、清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系教授鄭為民在MEET2023智慧未來大會(huì)上分享了他的見解和思考。
預(yù)計(jì)未來2到4年內(nèi)將會(huì)出現(xiàn)HPC(高性能計(jì)算) AI 大數(shù)據(jù)融合的服務(wù)器。
AI for Science的出現(xiàn),讓HPC AI的融合成為剛需;而數(shù)據(jù)處理是AI的基礎(chǔ),因此數(shù)據(jù)與AI的融合也是水到渠成。
他甚至開玩笑說,想要獲得高性能計(jì)算領(lǐng)域的戈登貝爾獎(jiǎng),必須要有AI算法,如果你沒有AI算法,你就拿不到獎(jiǎng)。
這雖然是一句玩笑話,但其實(shí)是一種趨勢(shì)。
此外,他還談到了人工智能計(jì)算機(jī)設(shè)計(jì)的三大平衡原則、AI基準(zhǔn)設(shè)計(jì)的四大目標(biāo),以及如何通過并行方法加速大規(guī)模預(yù)訓(xùn)練模型。
為了充分體現(xiàn)鄭為民院士的分享與思考,量子位在不改變?cè)獾那闆r下對(duì)其演講內(nèi)容進(jìn)行了編輯整理。
關(guān)于MEET智能未來大會(huì):MEET大會(huì)是量子位主辦的智能科技領(lǐng)域頂級(jí)商業(yè)峰會(huì),致力于探索前沿技術(shù)的落地與行業(yè)應(yīng)用。今年,數(shù)十家主流媒體及直播平臺(tái)對(duì)MEET2023大會(huì)進(jìn)行了報(bào)道及直播,吸引了超過300萬行業(yè)用戶線上參與,全網(wǎng)總曝光量累計(jì)超過2000萬。
演講要點(diǎn)
(以下為鄭為民院士演講全文)
人工智能計(jì)算機(jī)設(shè)計(jì)的三大平衡原則
今天我給大家講一下我們團(tuán)隊(duì)針對(duì)人工智能做的三件事,分別是人工智能和計(jì)算基礎(chǔ)設(shè)施的設(shè)計(jì)、評(píng)估和優(yōu)化。
首先,HPC(高性能計(jì)算)和AI的應(yīng)用是不同的。
HPC主要應(yīng)用于科學(xué)與工程計(jì)算、天氣預(yù)報(bào)、核聚變模擬、飛機(jī)設(shè)計(jì)等,它的計(jì)算精度是雙精度浮點(diǎn)計(jì)算,64位甚至128位,所以加減乘除運(yùn)算都很快,這是最主要的區(qū)別。
人工智能計(jì)算機(jī)是半精度甚至是定點(diǎn)的,8位、16位或32位。
所以這兩個(gè)機(jī)器應(yīng)該是不一樣的,而且人工智能計(jì)算機(jī)也是近兩年才出現(xiàn)的,所以我們團(tuán)隊(duì)設(shè)計(jì)了一臺(tái)可以更好處理人工智能問題的計(jì)算機(jī),它長什么樣子呢?
我們團(tuán)隊(duì)的第一個(gè)貢獻(xiàn)是人工智能計(jì)算機(jī)設(shè)計(jì)中的平衡原則。
第一,計(jì)算平衡的設(shè)計(jì)。人工智能是處理單精度還是定點(diǎn)數(shù),你的機(jī)器是不是只需要做定點(diǎn)數(shù)和單精度?但其實(shí)不然,雖然我們主要考慮半精度計(jì)算,但是也要考慮雙精度計(jì)算能力。
在過去的兩年里我學(xué)到了很多:
1)雙精度與半精度計(jì)算性能比為1:100,性能良好。
2)人工智能計(jì)算機(jī)不能只做CNN,還需要訓(xùn)練大型模型。
因此,提出了可變精度平衡設(shè)計(jì)概念,這通常需要額外的通用計(jì)算。
第二,網(wǎng)絡(luò)的均衡設(shè)計(jì)。由于這個(gè)機(jī)器非常龐大,是由幾千、幾萬個(gè)小機(jī)器連接在一起的,所以網(wǎng)絡(luò)也必須設(shè)計(jì)得好。如果只是CNN的話,很容易做,但是訓(xùn)練也要考慮。這種情況下,如何均衡網(wǎng)絡(luò)設(shè)計(jì)也很重要。
第三,存儲(chǔ),也就是IO子系統(tǒng)的設(shè)計(jì)。我們知道現(xiàn)在每臺(tái)機(jī)器都有一個(gè)SSD,那么怎么把各個(gè)SSD組合成一個(gè)大的分布式文件系統(tǒng)呢?這個(gè)也是很重要的。
因此我們提出了這三個(gè)平衡設(shè)計(jì)原則,被很多公司采用?,F(xiàn)在國內(nèi)已經(jīng)有20多個(gè)城市陸續(xù)上線了人工智能超算中心,讓算力無處不在、觸手可及,而它們大多都運(yùn)用了平衡設(shè)計(jì)的思想。
當(dāng)前行業(yè)趨勢(shì)是HPC AI BigData的融合,過去HPC是一臺(tái)機(jī)器,AI是另一臺(tái)機(jī)器,大數(shù)據(jù)處理是第三臺(tái)機(jī)器,這三臺(tái)機(jī)器各自為政,但現(xiàn)在這三臺(tái)機(jī)器正在融合。
我為什么這么說呢?
一方面,AI for Science的出現(xiàn)使得HPC方案能夠包含AI算法,因此HPC AI的融合成為剛需。
我曾經(jīng)開玩笑說,在高性能計(jì)算領(lǐng)域,如果你想獲得戈登貝爾獎(jiǎng),你必須有AI算法,如果你沒有AI算法,你就得不到獎(jiǎng)。這是一句玩笑話,但實(shí)際上是一種趨勢(shì)。
另一方面,數(shù)據(jù)處理是AI的基礎(chǔ),數(shù)據(jù)和AI的融合也是自然而然的事情,所以我估計(jì)2到4年后就會(huì)出現(xiàn)HPC、AI、BigData三者融合的服務(wù)器。
這是我們課題組的第一個(gè)貢獻(xiàn),這就是人工智能計(jì)算機(jī)應(yīng)該是什么樣子的。
AI基準(zhǔn)設(shè)計(jì)應(yīng)實(shí)現(xiàn)四個(gè)目標(biāo)
第二個(gè)貢獻(xiàn)是大規(guī)模人工智能算力基準(zhǔn)測評(píng)程序AIPerf。
這意味著什么?傳統(tǒng)HPC有一個(gè)評(píng)估程序叫Linpack,用來評(píng)估TOP500,但不能用來評(píng)估AI計(jì)算機(jī)。Linpack是用來衡量64位甚至128位加減乘除運(yùn)算速度的,而現(xiàn)在的AI計(jì)算機(jī)都是16位、32位,甚至8位的,完全不一樣。
所以我們需要做一個(gè)能夠回答這個(gè)問題的AI算力基準(zhǔn)測試程序,希望有一個(gè)簡單的評(píng)估指標(biāo)來判斷哪個(gè)系統(tǒng)的AI算力更強(qiáng)。
現(xiàn)在有沒有相關(guān)的評(píng)估方案呢?其實(shí)有的,但是都不是很合適。
例如,DeepBench 針對(duì)的是單芯片,不適合整機(jī)評(píng)估。Mobile AI Bench 針對(duì)的是移動(dòng)硬件上的模型訓(xùn)練評(píng)估,而不是整個(gè)系統(tǒng)。MLPerf 不可擴(kuò)展。因此,我們決定自己做一個(gè)。
要設(shè)計(jì)AI基準(zhǔn),必須實(shí)現(xiàn)以下四個(gè)目標(biāo):
1. 統(tǒng)一評(píng)分。我們希望運(yùn)行基準(zhǔn)測試并獲取單一值,而不是一份報(bào)告,這似乎很費(fèi)力。
2. 問題規(guī)模多變。Benchmark 可以測試 4 個(gè)節(jié)點(diǎn)的機(jī)器,也可以測試 1000 個(gè)、20000 個(gè)節(jié)點(diǎn)的機(jī)器。大規(guī)模做起來比較困難。
3.具有實(shí)際的人工智能意義。不能只講加減乘除,否則不能體現(xiàn)人工智能的問題。尤其要體現(xiàn)人工智能問題中的神經(jīng)網(wǎng)絡(luò)運(yùn)算和自然語言處理能力。
4、評(píng)估程序中包含了必要的多機(jī)通信,因?yàn)樵u(píng)估程序是一個(gè)由多臺(tái)機(jī)器連接在一起組成的大系統(tǒng),需要通信。
最后,由清華大學(xué)牽頭的團(tuán)隊(duì)創(chuàng)建了一個(gè)AIPerf來進(jìn)行測試,并在2020年11月15日首次發(fā)布。我們希望AI計(jì)算機(jī)能有一個(gè)AIPerf 500,就像HPC有TOP 500一樣。
現(xiàn)已連續(xù)三年每年發(fā)布該排行榜,得到眾多單位和企業(yè)的認(rèn)可。
大規(guī)模預(yù)訓(xùn)練模型的三種并行加速方法
第三個(gè)貢獻(xiàn)是針對(duì)數(shù)百萬億參數(shù)的超大規(guī)模訓(xùn)練模型的加速方法。
舉個(gè)簡單的例子,學(xué)術(shù)界已經(jīng)達(dá)成共識(shí),模型規(guī)模和模型效果是正相關(guān)的。GPT有1.1億個(gè)參數(shù),GPT-3有1750億個(gè)參數(shù),悟道2.0有1.75萬億個(gè)參數(shù),我們的八卦爐有174萬億個(gè)參數(shù)。應(yīng)該說參數(shù)越多,效果越好,越接近人類智能,但是有一個(gè)問題,就是訓(xùn)練數(shù)據(jù)越多,需要的算力就越大。
我們看左圖的SAT(美國大學(xué)入學(xué)考試)任務(wù),如果模型參數(shù)達(dá)到100B(相當(dāng)于1000億個(gè)參數(shù)),那么模型就能以70%的準(zhǔn)確率完成SAT。
因此探索參數(shù)值較大的模型的效果具有重要的科學(xué)意義。
但隨著模型的變大,問題也隨之而來,國內(nèi)很多公司做的模型都很好,但如何把模型裝到機(jī)器上,還是存在一些問題。
比如我們?cè)谛乱淮裢軜?gòu)芯片上安裝了八卦爐模型。
圖中可以看到,核心組有64個(gè)核心,加上黑色的主核,一共有65個(gè)核心。一個(gè)CPU有6個(gè)這樣的部件:CG0,CG1,CG2,CG3,CG4,CG5,這6個(gè)通過環(huán)形網(wǎng)絡(luò)連接在一起。我們稱它為一個(gè)節(jié)點(diǎn),把它整合成一塊。一個(gè)節(jié)點(diǎn)大約有390個(gè)核心。一共256個(gè)節(jié)點(diǎn)組成一個(gè)超級(jí)節(jié)點(diǎn)。超級(jí)節(jié)點(diǎn)內(nèi)部通訊是直連的,超級(jí)節(jié)點(diǎn)之間的通訊必須經(jīng)過上層網(wǎng)絡(luò)。
因此256個(gè)節(jié)點(diǎn)之間的通信非常快,可以一步完成,但超級(jí)節(jié)點(diǎn)之間的通信相對(duì)較慢。
然而在本機(jī)上運(yùn)行大型模型時(shí)問題就出現(xiàn)了。目前所有預(yù)訓(xùn)練的模型都是 Transformer,而 Transformer 結(jié)構(gòu)由 embedding 層、attention 層和前饋網(wǎng)絡(luò)層組成。中間的 attention 層和前饋層會(huì)經(jīng)過 N 次迭代,整個(gè)操作基本就是矩陣乘法。
如果一個(gè)模型能在單CPU上運(yùn)行,那是最簡單不過了,但是CPU的計(jì)算能力和內(nèi)存有限,模型不可能那么大,所以大模型的訓(xùn)練一定是多機(jī)分布式的,這就涉及到各種并行的方法。
第一是數(shù)據(jù)并行,如果整個(gè)模型有兩個(gè)節(jié)點(diǎn),一個(gè)模型節(jié)點(diǎn)0,一個(gè)模型節(jié)點(diǎn)1,那么整個(gè)模型就是數(shù)據(jù)并行的,一半的數(shù)據(jù)用來訓(xùn)練學(xué)習(xí)。但是要注意,因?yàn)橹惠斎肓艘话氲臄?shù)據(jù),所以訓(xùn)練結(jié)果并不是最終的結(jié)果。所以中間需要用到AII-Reduce,AII-Reduce 又做了大量的通信,使得整個(gè)事情變得非常復(fù)雜。
第二種是模型并行,把整個(gè)模型切分為兩半,一半在模型節(jié)點(diǎn)0,另一半在模型節(jié)點(diǎn)1,整個(gè)數(shù)據(jù)用來訓(xùn)練,訓(xùn)練之后的結(jié)果并不是最終結(jié)果,因?yàn)橹挥?xùn)練了一半的模型。還有AII-Gather,也是用來通訊的。
第三類,專家并行,與數(shù)據(jù)并行、模型并行一樣,也需要通信。
現(xiàn)在如果你只有一種方法,你該用哪種并行方法呢?其實(shí)這個(gè)跟計(jì)算機(jī)結(jié)構(gòu)有關(guān)系,如果各個(gè)計(jì)算機(jī)之間的通訊很快,那么可以用數(shù)據(jù)并行;如果你的通訊很慢,那么就要考慮模型并行或者專家并行。
那么這些模型如何和實(shí)際數(shù)據(jù)、機(jī)器狀況相匹配呢?這就涉及到軟件和硬件的配合。
我們?cè)谛乱淮?span id="0ssssss" class="candidate-entity-word" data-gid="126192">申威機(jī)上采用了“拓?fù)涓兄幕旌喜⑿心J健薄?/p>
具體來說,如前所述,該架構(gòu)的節(jié)點(diǎn)內(nèi)部通信很快,但是超級(jí)節(jié)點(diǎn)之間的通信相對(duì)較慢,因此在混合并行模式下,通信超級(jí)節(jié)點(diǎn)內(nèi)部采用數(shù)據(jù)并行,超級(jí)節(jié)點(diǎn)之間采用專家并行或者模型并行。
此外,還有內(nèi)存大小和內(nèi)存訪問等問題:如何讓內(nèi)存訪問更快,負(fù)載更均衡?
做大規(guī)模模型訓(xùn)練的時(shí)候,軟硬件平均每小時(shí)都會(huì)出錯(cuò)一次,不要覺得機(jī)器不靠譜,現(xiàn)在的水平已經(jīng)很不錯(cuò)了。所以一般都會(huì)有checkpoint,如果寫得不好,這個(gè)任務(wù)要三個(gè)小時(shí),怎么加速呢?最后我們10分鐘就做完了。
現(xiàn)在我們把我們的模型,特別是并行訓(xùn)練的模型開源了,放到了開源系統(tǒng)FastMOE里面,現(xiàn)在已經(jīng)得到了業(yè)界的廣泛認(rèn)可,阿里的淘寶、天貓,騰訊的端到端語言模型,都用到了我們的并行系統(tǒng),百度的PaddlePaddle的MOE模塊也是用到了我們的FastMOE。
綜上所述,第一,人工智能算力是當(dāng)前人工智能領(lǐng)域發(fā)展的關(guān)鍵。
二、團(tuán)隊(duì)對(duì)人工智能的三點(diǎn)小貢獻(xiàn):
1)我們提出了AI計(jì)算基礎(chǔ)設(shè)施的架構(gòu)和均衡的設(shè)計(jì)原則,現(xiàn)在全國20多個(gè)城市的20多個(gè)人工智能超算中心,基本都采用了我們的設(shè)計(jì)思想。
2)我們做了一個(gè)測評(píng),也就是人工智能基準(zhǔn)程序AIPerf,現(xiàn)在每年都會(huì)發(fā)布500人的榜單,在國內(nèi)外產(chǎn)生了一定的影響。
3)如何快速訓(xùn)練大型模型?特別是在數(shù)據(jù)并行、模型并行和專家并行方面。我們做了一個(gè)庫并開源了?,F(xiàn)在業(yè)界都在用我們的東西來加速大型訓(xùn)練模型的訓(xùn)練。
因此我們團(tuán)隊(duì)對(duì)人工智能做出了這三點(diǎn)小貢獻(xiàn),希望能夠推動(dòng)人工智能的發(fā)展。
如果有不對(duì)的地方請(qǐng)大家批評(píng)指正,謝謝!
– 超過-
量子比特QbitAI·今日頭條簽約
關(guān)注我們,第一時(shí)間獲取最新前沿科技資訊
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。