
智東西(公眾號:zhidxcom)
作者 | GenAICon 2024
2024中國(guo)生成式AI大會(hui)(hui)于4月(yue)18-19日在北(bei)京舉(ju)行,在大會(hui)(hui)第二天的主會(hui)(hui)場AI Infra專(zhuan)場上,阿(a)里云高級技術專(zhuan)家、阿(a)里云異構計算(suan)AI推理團隊(dui)負(fu)責人李鵬(peng)以《AI基礎(chu)設施(shi)的演進與挑戰》為題發表演講。
李鵬談道,大模型的發展給計算體系結構帶來了功耗墻、內存墻和通訊墻等多重挑戰。其中,大模型訓練層面,用戶在模型裝載、模型并行、通信等環節面臨各種現實問題;在大模型推理層面,用戶在顯存、帶寬、量化上面臨性能瓶頸。
對于如何進一步釋放云上性能?阿里云彈性計算為云上客戶提供了ECS GPU DeepGPU增強工具包,幫助用戶在云上高效地構建AI訓練和AI推理基礎設施,從而(er)提高算(suan)力利(li)用(yong)效率。
目前,阿里云ECS DeepGPU已經幫助眾多客戶實現性能的大幅提升。其中,LLM微調訓練場景下性能最高可提升80%,Stable Difussion推理場景下性能最高可提升60%。
以下為李鵬的演講實錄:
今天我(wo)(wo)分(fen)(fen)(fen)(fen)享的(de)(de)是關(guan)于(yu)AI基礎(chu)設施的(de)(de)演(yan)進(jin)和挑戰。我(wo)(wo)講的(de)(de)內容分(fen)(fen)(fen)(fen)三個(ge)部分(fen)(fen)(fen)(fen):第一部分(fen)(fen)(fen)(fen)是關(guan)于(yu)生成(cheng)式AI對云基礎(chu)設施的(de)(de)挑戰;第二部分(fen)(fen)(fen)(fen)是如何進(jin)一步(bu)壓(ya)榨(zha)云上GPU資源的(de)(de)性能,保證訓(xun)練和推理(li)的(de)(de)效率達(da)到最大化(hua);第三部分(fen)(fen)(fen)(fen)是生成(cheng)式AI場景下訓(xun)練和推理(li)的(de)(de)客戶案例和最佳實(shi)踐。
一、算力需求規模10倍遞增,帶來三大計算結構挑戰
關于(yu)生(sheng)成(cheng)式AI最近的(de)發展和行業趨(qu)勢,我(wo)們看到的(de)情況是,2023年(nian)生(sheng)成(cheng)式AI爆發,文生(sheng)視頻、文生(sheng)圖、文生(sheng)文等場景下有很多垂類(lei)大模型或通用(yong)大模型出來。我(wo)和公司的(de)產(chan)品團隊、架構師(shi)團隊與客(ke)戶進行了很多技術分享(xiang)和交流。
我的感受是,現在很多云上客戶逐漸在擁抱生成式AI場景,開始使用大模型,比較典型的行業是電子商務、影視、內容咨詢、辦公軟件這幾大部分。
大(da)模型發(fa)展(zhan)對(dui)AI算力的需求(qiu)方面,左(zuo)邊這張圖(tu)是前幾天(tian)GTC大(da)會上黃仁勛展(zhan)示的關于模型發(fa)展(zhan)對(dui)算力的需求(qiu)曲線圖(tu)。2018年開始,從Transformer模型到(dao)現(xian)在的GPT-MoE-1.8T,其對(dui)算力的需求(qiu)呈現(xian)出10倍逐漸(jian)遞增(zeng)的規模性增(zeng)長,可以看出訓練的需求(qiu)非常大(da)。
另外,我們也(ye)做(zuo)了(le)一(yi)些估算(suan)(suan),比如訓(xun)練(lian)1750億參數(shu)的(de)(de)(de)GPT-3模型,訓(xun)練(lian)的(de)(de)(de)計(ji)算(suan)(suan)量大概在3640PFLOP * 天(tian),相(xiang)當于需(xu)要大概1024張A100跑1個月,達到了(le)千(qian)卡規模。換算(suan)(suan)到成本上(shang)就(jiu)是(shi)一(yi)筆巨大的(de)(de)(de)計(ji)算(suan)(suan)開銷。總體來(lai)看(kan),因為當前(qian)的(de)(de)(de)GPU算(suan)(suan)力(li)價(jia)格還(huan)比較昂(ang)貴,所以推(tui)(tui)理(li)或微調(diao)本身(shen)的(de)(de)(de)成本,以及計(ji)算(suan)(suan)需(xu)求和推(tui)(tui)理(li)部署(shu)成本也(ye)會比較高。
大模(mo)型發(fa)展(zhan)給計算(suan)體系(xi)結(jie)構帶來挑戰。
首先就是功耗墻的問題。以NVIDIA的(de)GPU舉例,V100的(de)功(gong)(gong)耗大(da)概只有(you)250W,A100功(gong)(gong)耗增(zeng)加(jia)到400W,H100功(gong)(gong)耗達到750W,最(zui)新的(de)B200功(gong)(gong)耗大(da)概為1000W。可(ke)以看到,算(suan)力(li)8年間(jian)增(zeng)長1000倍,其計算(suan)功(gong)(gong)耗也會(hui)相應增(zeng)加(jia)。最(zui)近有(you)相關的(de)討(tao)論提到,AI的(de)盡頭是能源,計算(suan)需(xu)求的(de)增(zeng)大(da)會(hui)帶來更大(da)的(de)能源需(xu)求。
第二個體系結構挑戰就是內存墻。所謂內存墻,就是數據(ju)在(zai)CPU和GPU之(zhi)間做搬移(yi)或(huo)者交換(huan),現在(zai)PCIe的(de)(de)體系結構已(yi)經(jing)(jing)成為數據(ju)交換(huan)和傳(chuan)輸(shu)的(de)(de)瓶(ping)頸(jing)。目(mu)前,NVIDIA已(yi)經(jing)(jing)在(zai)Grace Hoper架構上推(tui)出了NVLink-C2C的(de)(de)方案(an),能夠大幅(fu)提升整個(ge)數據(ju)傳(chuan)輸(shu)的(de)(de)速率(lv)。
第三個是通訊墻。分(fen)布(bu)式(shi)訓(xun)練的(de)(de)規(gui)模非常大,已經從去年的(de)(de)千卡規(gui)模達到了現在的(de)(de)萬(wan)卡甚(shen)至十萬(wan)卡的(de)(de)規(gui)模。分(fen)布(bu)式(shi)訓(xun)練場景下如何增(zeng)強機器(qi)之(zhi)間(jian)的(de)(de)互連(lian)帶(dai)寬有(you)很大的(de)(de)挑戰。從國內外廠(chang)商的(de)(de)進展來(lai)看,他們會在A100上采(cai)用(yong)800Gbps互連(lian)的(de)(de)帶(dai)寬,在H100上采(cai)用(yong)3.2Tbps帶(dai)寬。
總結下來,現在的趨勢就是硬件堆砌,會有更(geng)大的(de)(de)顯存(cun)(cun)、更(geng)高的(de)(de)顯存(cun)(cun)帶(dai)寬、更(geng)高的(de)(de)CPU和GPU之間(jian)的(de)(de)互連帶(dai)寬,同(tong)時PCIe本身也(ye)會向下迭代。
以(yi)(yi)NVIDIA的GPU為(wei)例(li),可以(yi)(yi)看到(dao)從(cong)(cong)Ampere這(zhe)一代架構到(dao)Blackwell架構的變化。算(suan)(suan)力(li)計算(suan)(suan)規模會越來越高,從(cong)(cong)不到(dao)1P增(zeng)長到(dao)1P以(yi)(yi)上;顯(xian)存(cun)規格越來越高,從(cong)(cong)80GB增(zeng)加(jia)到(dao)100多GB規模;顯(xian)存(cun)帶寬不斷增(zeng)加(jia)。這(zhe)反映了未來AI計算(suan)(suan)上硬件(jian)規格的變化趨勢。
二、大模型訓練的現實難題:模型裝載、并行、互連
第二部分是大模型訓練對于云上技術的挑戰。
大模型訓練技(ji)術棧包(bao)含(han)Transformer模型結構、海量數據級、梯度尋優(you)算法,這三(san)塊構成了AI訓練的(de)軟件和(he)算法。硬件就是GPU計(ji)算卡(ka),從(cong)單卡(ka)擴展到單機8卡(ka)的(de)服務(wu)器,再擴展到千卡(ka)、萬(wan)卡(ka)互連規模的(de)更大服務(wu)器集(ji)群(qun),構成整個(ge)大模型訓練硬件的(de)計(ji)算資源。
大模型訓練中遇到的典型現實問題是模型的加載和模型的并行。
以175B參數的GPT-3模型為例,其訓練需要的顯存規模大概為2800GB。我們可以根據A100 80GB來計算所需卡的數量。但是要解決的問題,一是我們需要多少張卡裝載模型?二是裝載這個模型之后如何提升訓練效率?解決這個問題就需要用到模型并行技術,現在已經有各種各樣的模型并行技術去解決這樣的問題。三是互連的問題,有NVLink單機(ji)(ji)內部互連、機(ji)(ji)器跟機(ji)(ji)器之間的互連網(wang)絡(luo)。對于(yu)分(fen)布(bu)式訓練來說,這(zhe)都是非常重要的問題,因(yin)為會在(zai)通信上產生瓶(ping)頸。
大模型訓練中的模型裝載過程中,175B模型以FP16精度計算,大概需要350GB顯存規模,模型梯度也需要350GB,優化器需要的顯存規模大概為2100GB,合并起來大概是2800GB規模。分(fen)布式訓練(lian)框(kuang)架(jia)(jia)目(mu)前已經有比較(jiao)成熟的方案,比如NVIDIA的Megatron-LM框(kuang)架(jia)(jia)、微軟開發(fa)DeepSpeed ZeRO3的算法(fa),都可以(yi)用來(lai)解(jie)決模型裝載(zai)和并行的問題。
在大模(mo)型訓練方式上也有比較多的并(bing)行(xing)技術,包括張量并(bing)行(xing)、流(liu)水線(xian)并(bing)行(xing)、數據并(bing)行(xing)等。
在模型分布式訓練過程中,我們還看到一些比較關鍵的問題,如集合通信性能問題。比(bi)如在TP切分中(zhong)會(hui)產(chan)生一些All-Reduce(全局歸約操作),這些操作夾(jia)雜(za)在計算(suan)(suan)流當中(zhong),會(hui)產(chan)生計算(suan)(suan)中(zhong)斷影響計算(suan)(suan)效率,因此會(hui)有相應(ying)的(de)集(ji)合通信算(suan)(suan)法、優化軟(ruan)件(jian)被開發出來(lai),去解決集(ji)合通信性能的(de)問題。
三、顯存、帶寬、量化,成大模型推理瓶頸
大模型推理時我們需要關注三個點:一是顯存,模型參數量大小決定了需要多少顯存;二是帶寬,大模型推理時是訪存密集型計算方式,在計算當中需要頻繁訪問顯存,所以這種情況下帶寬的規格會影響推理速度;三是量化,現在很多(duo)模(mo)型(xing)(xing)發布時除(chu)了提(ti)(ti)供基礎的(de)(de)FP16精度的(de)(de)模(mo)型(xing)(xing),還會提(ti)(ti)供量化后的(de)(de)模(mo)型(xing)(xing),因為低精度量化可以(yi)省下更多(duo)顯存,也可以(yi)提(ti)(ti)高(gao)帶寬訪問速度,這也是模(mo)型(xing)(xing)推理中業界(jie)經常會采用的(de)(de)一種技術。
總結下來就是,大模型推理有顯存瓶頸;在推理方面可以走多卡推理,訓練卡也可以用在推理業務,而且會產生不錯的效果。
我們在做模(mo)型(xing)微觀性(xing)能(neng)分析時(shi)發現,典(dian)型(xing)的Transformer-Decoder,很多大(da)模(mo)型(xing)都是Decoder Only結構(gou),里面(mian)包含注(zhu)意力(li)結構(gou)和(he)MLP層。
在這些算子中,我們通過微觀性能分析會看到,大部分的計算都是矩陣乘操作,實(shi)際85%的耗時都(dou)是訪存(cun),進行顯存(cun)讀取。
由于大模型推理是自回歸的生成方式,上一個生成出來的Token會被用于下一個Token的計算。這種訪存方式就是我剛剛提到的訪存密集型計算。基于這種行為,我們會把這些注意力結構和MLP層分別進行融合,形成更大的算子后執行推理,就會顯著提高計算的效率。
在大模(mo)型推理(li)(li)的(de)(de)(de)帶寬需求方(fang)面,下圖(tu)(tu)展示了Llama 7B在A10、A100上推理(li)(li)性能(neng)的(de)(de)(de)對比。在不同的(de)(de)(de)Batch Size下,A100和AI的(de)(de)(de)比例(li)關系基本(ben)是一條比較水平的(de)(de)(de)線(圖(tu)(tu)中紅線)。
這也可以反映A100的顯存帶寬和A10的顯存帶寬之間的比例關系,從側面印證了大模型推理基本是訪存密集型的操作,它的上限由GPU的HBM顯存帶寬決定。
除此之外,我們還分析(xi)了(le)大(da)模型(xing)推理(li)時的通信性(xing)(xing)能(neng)。這里(li)主要(yao)說的通信性(xing)(xing)能(neng)是指單(dan)機內部的多卡推理(li),因為如(ru)果跑Llama 70B的模型(xing),僅靠(kao)A10一張卡沒辦法裝載(zai),至少需要(yao)8張卡的規格進行裝載(zai)。
因為(wei)計算時做了TP切(qie)分,實際(ji)計算是每張卡算一部分,算完之后(hou)進行All-Reduce通信(xin)操(cao)作,所(suo)以(yi)我們針對這種通信(xin)開銷(xiao)(xiao)做了性能分析。最明顯的是在推理卡A10上,通信(xin)開銷(xiao)(xiao)占比(bi)較高,達到端到端性能開銷(xiao)(xiao)的31%。
我們如何優化通信性能的開銷?通常來說比較直觀的方法是,如果有卡和卡之間的NVLink互連,性能自然會得到提升,因為NVLink互連帶寬本身就比較高;另一個方法是,如果卡上沒有NVLink,你就需要一些PCIe的P2P通信,這也能幫助提高通信開銷占比。
基于在阿里云上的親和性分配調優,我們摸索出了一套調優方法,能夠在4卡、8卡場景下進一步優化通信開銷占比。
對(dui)于(yu)視頻模型,今年年初OpenAI發布Sora,雖然沒有公開太(tai)多技術(shu)細節,但(dan)國(guo)外(wai)機構已(yi)經給(gei)出了其關于(yu)算力需求(qiu)的分析。
因為Sora的(de)(de)(de)模型結構與文(wen)生圖模型結構不同,其中比較顯著的(de)(de)(de)區別就是(shi),從原來的(de)(de)(de)UNet結構變(bian)成Diffusion?Transformer結構,通過結構上(shang)的(de)(de)(de)變(bian)化和算力的(de)(de)(de)估(gu)算,我(wo)們(men)看到的(de)(de)(de)結果就是(shi)Sora在訓練和推理(li)上(shang)都(dou)會對算力有比較大(da)的(de)(de)(de)要求。
下圖(tu)是國(guo)外研(yan)究機構估計的算力需求(qiu),他們估算訓(xun)練Sora這樣的模型,需要大概(gai)4000到10000多(duo)張(zhang)A100訓(xun)練1個月。在(zai)推理需求(qiu)上(shang),如果要像(xiang)Sora這樣生成(cheng)5分鐘長(chang)視(shi)頻,大概(gai)需要1張(zhang)H100算1個小(xiao)時。
四、軟硬協同優化方案,可將大模型微調效率提升80%
阿里云彈性計算為云上客戶在AI場景提供了關于基礎產品的增強工具包DeepGPU。DeepGPU是阿里云針對生成式AI場景為用戶提供的軟件工具和性能優化加速方案。用戶在云上構建訓練或者推理的AI基礎設施時,該產品就能提高其使用GPU訓練和推理的效率。
這(zhe)非常(chang)重要(yao),因(yin)為AI算力(li)現階段比較(jiao)貴,我們需(xu)要(yao)通過工具包的(de)方式幫(bang)助用(yong)戶(hu)優化使用(yong)GPU的(de)效率。我們也會提供文生(sheng)圖、文生(sheng)文等的(de)解決方案,并且幫(bang)助眾多云上(shang)客戶(hu)實現了性能的(de)大幅提升。
接下(xia)來是(shi)阿里云幫(bang)助客戶進行訓(xun)練微調和推理案(an)例。
第一個案例是文生圖場(chang)景下的(de)微調訓練。我們將(jiang)DPU和阿里(li)云GPU結合,在客戶的業(ye)務場景(jing)下幫助客戶提(ti)升端到端微調(diao)的性能(neng),大概會實現15%-40%提(ti)升。
第二個案例是關于大語言模型場景的微調。很多客戶(hu)想做垂(chui)直領域或者(zhe)垂(chui)直場景(jing)下的大模(mo)型(xing)(xing),會有(you)模(mo)型(xing)(xing)微調(diao)的需(xu)求(qiu)。針(zhen)對這種需(xu)求(qiu),我們會做相應(ying)的定制性解決方案或優化方案,在這個(ge)場景(jing)下,客戶(hu)可以通過軟硬結合的優化方法,提升大概10%-80%的性能(neng)。
第三個案例是關于大語言模型的推理,這(zhe)(zhe)個客(ke)戶需要在細分(fen)場(chang)(chang)景做智能業(ye)務問答、咨詢等,我們(men)在這(zhe)(zhe)個場(chang)(chang)景下為客(ke)戶提供了端(duan)(duan)到端(duan)(duan)的場(chang)(chang)景優化方案,從容(rong)器、環境、AI套件、DeepGPU到下層云服務器,幫助客(ke)戶優化端(duan)(duan)到端(duan)(duan)推(tui)理(li)性能,這(zhe)(zhe)會幫助客(ke)戶提升接近5倍的端(duan)(duan)到端(duan)(duan)請求處(chu)理(li)或推(tui)理(li)的效(xiao)率。
以上是李鵬演講內容的完整整理。