智東西(公眾號:zhidxcom)
編輯 | GTIC

智東西(xi)4月13日報(bao)道(dao),在剛剛落幕的(de)GTIC 2023中(zhong)國(guo)AIGC創(chuang)新峰(feng)會上,NVIDIA消費互(hu)聯網行業解決方案架構師負責人徐添豪帶來(lai)了主題為《NVIDIA全(quan)棧賦能LLM的(de)前沿研究(jiu)和規模化部署(shu)》的(de)主題演講。

硬件(jian)算力的(de)提(ti)升不僅依(yi)靠(kao)芯(xin)片工(gong)藝的(de)提(ti)升,更(geng)(geng)依(yi)靠(kao)準確捕捉AI模型(xing)算法演進的(de)需(xu)求和趨勢,徐添豪說:“找到計算加速的(de)關鍵點,并不斷(duan)創新滿足未來的(de)業務(wu)需(xu)求。”進入大模型(xing)時代,一張卡遠遠無(wu)法承載一個(ge)模型(xing)的(de)訓練,需(xu)要(yao)更(geng)(geng)多個(ge)體組成(cheng)能互相協作的(de)機器節點。

NVIDIA引入NVLink,NVSwitch和IB技術(shu),其(qi)中Ampere和Hopper架構(gou)就是(shi)根據NVSwitch構(gou)建節點(dian),通(tong)過IB網絡進(jin)行集群組網,使得這些實力強勁的個體能(neng)高效協(xie)作完成同一件(jian)事。

其中底層硬(ying)件是底座(zuo),為了開(kai)發(fa)者(zhe)把硬(ying)件用起來(lai)并(bing)真正解決問題,需要軟件的協同。因(yin)此,NVIDIA在(zai)過去一(yi)直在(zai)構建SDK和(he)(he)場景應用以解決各行各業(ye)的問題,其中NeMo Framework就是為了解決大模(mo)型(xing)訓練和(he)(he)推理部署問題。

那么,怎么評(ping)估訓(xun)練GPT-3到底(di)需要(yao)多少資源(yuan)?徐添豪講解了一個公式:消耗的(de)(de)時間=做大模(mo)型(xing)需要(yao)的(de)(de)FLOPS/硬件發揮(hui)的(de)(de)有效(xiao)算力。基于并行方(fang)式的(de)(de)有效(xiao)集(ji)成及一系(xi)列的(de)(de)優化,NVIDIA的(de)(de)NeMo Framework在訓(xun)練GPT-3過程中能使得硬件算力有效(xiao)性能達到50%以上。

此外,為了加速企業的大模(mo)型(xing)規模(mo)化部署,NVIDIA NeMo Framework還提供了基于Faster Transformer和(he)Triton整合(he)的一(yi)體化大模(mo)型(xing)方案(an)。

以下為徐添豪的演講實錄:

大(da)家下午好(hao)!非常榮(rong)幸(xing)今天能夠來(lai)參加GTIC大(da)會,借此機會圍(wei)繞(rao)LLM(大(da)語(yu)言(yan)模型(xing))帶(dai)來(lai)一些NVIDIA在(zai)硬件、上層的分享。

在這幾月(yue),創投圈、技術(shu)圈聊大模型的人(ren)特別多,今天(tian)我不(bu)會從(cong)行業場景或算(suan)法層面來(lai)切入這個點,而是大家離不(bu)開的算(suan)力話題,主要包括(kuo)三部分(fen):

1、回顧過去(qu)五六(liu)年NVIDIA迭代(dai)(dai)的硬(ying)件系統設計思考,探討怎(zen)樣(yang)圍繞AI時(shi)代(dai)(dai)來做演進(jin)和(he)創新。

2、解讀(du)從底(di)層硬件到上層軟件構(gou)建出來完(wan)整的生態系(xi)統布局。

3、聚焦更多關注大模型怎么高(gao)效(xiao)把GPU集群用起來(lai)的方法(fa)。

一、五代硬件系統迭代,解決深度學習時代算力問題

簡單回顧一下過去幾(ji)年(nian)大家(jia)聽到比較多(duo)的(de)(de)硬件架(jia)構,NVIDIA五個平臺架(jia)構Pascal、Volta、Turing、Ampere、Hopper對應(ying)的(de)(de)產(chan)品有五代(dai)。除(chu)了(le)圖靈卡沒有訓(xun)(xun)練(lian)卡,其(qi)余四代(dai)都(dou)有相應(ying)的(de)(de)訓(xun)(xun)練(lian)卡。

NVIDIA徐添豪:軟硬件協同賦能大規模集群訓練GPT-3,算力有效性超50%丨GTIC 2023

我們可以(yi)看到,Pascal架構第一(yi)次(ci)引入了FP16。以(yi)前(qian)我們做(zuo)HPC的(de)時(shi)代,FP64的(de)數(shu)值精度都是(shi)必備的(de),對于算法結果是(shi)很重要(yao)的(de)一(yi)個(ge)保障(zhang)。到了深(shen)度學習、機器(qi)學習時(shi)代,大家發現FP32就能搞定這個(ge)問題,省(sheng)下(xia)很多算力。

再(zai)(zai)進一(yi)步,是不是有更低(di)的(de)數(shu)值精度把這個問題(ti)解決好?FP16的(de)引(yin)入,在P100的(de)架構構成機器上,開創(chuang)了混(hun)合(he)精度時代(dai),再(zai)(zai)往后(hou)到加深了混(hun)合(he)精度,到Ampere、Hopper架構引(yin)入更多新(xin)的(de)數(shu)值格式(shi),到Hopper上引(yin)入FP8,即將(jiang)會迎來圍繞著FP8的(de)混(hun)合(he)精度訓(xun)練時代(dai)。

從ResNet到(dao)RNN,從卷積神(shen)經(jing)網絡到(dao)Transformer,核心結構都是計算(suan)重(zhong)心在矩陣乘法(fa)(fa)上(shang),非常直(zhi)接的(de)一(yi)個加速(su)方法(fa)(fa)或者把算(suan)力(li)提上(shang)去的(de)方法(fa)(fa),就是加速(su)這個矩陣乘法(fa)(fa),專(zhuan)門(men)做(zuo)矩陣計算(suan)加速(su)的(de)Tensor Core。過(guo)去十(shi)年的(de)算(suan)力(li)演進,每年相比上(shang)一(yi)年翻一(yi)番,過(guo)去十(shi)年累計起(qi)來可以(yi)看到(dao),已經(jing)提升了1000倍算(suan)力(li)提升。

整個硬(ying)件的演進(jin)不僅(jin)(jin)僅(jin)(jin)把(ba)算(suan)力通(tong)過工藝(yi)堆疊起來,也通(tong)過不斷的創(chuang)新去找到AI算(suan)力需(xu)求點,去進(jin)行額外的探索工作。

二、引入NVLink、NVSwitch等技術,讓多卡并肩作戰

一張卡可(ke)以認為是單打獨(du)斗的(de)人,非常(chang)有力(li)量(liang)。大模(mo)型時代(dai)不可(ke)能(neng)由一張顯卡來(lai)解決(jue)問題,它(ta)的(de)問題規模(mo)是原來(lai)的(de)一萬倍、一百萬倍,甚至未(wei)來(lai)更(geng)大數量(liang)級的(de)提升,我們(men)必須用更(geng)多的(de)顯卡、更(geng)多有力(li)量(liang)的(de)個體(ti)組成(cheng)協作(zuo)節(jie)點和集群。

怎么互相協作?

NVLink和NVSwitch是點(dian)對點(dian)的連(lian)接器(qi)件,把GPU之間連(lian)接起來,高(gao)速(su)互聯,不(bu)再需要走PCIe受限于帶寬做信息共(gong)享。

NVIDIA徐添豪:軟硬件協同賦能大規模集群訓練GPT-3,算力有效性超50%丨GTIC 2023

NVLink系統已(yi)經(jing)演進到(dao)(dao)第四(si)代,本質差異是(shi)帶寬(kuan)增(zeng)加。在(zai)Volta架構(gou)引入(ru)第一(yi)代NVSwitch,由16卡(ka)構(gou)成的單節點機器,到(dao)(dao)Ampere和(he)Hopper,現在(zai)市場上主(zhu)流的是(shi)這樣一(yi)些通過NVSwitch構(gou)建(jian)出來的節點。

NVSwitch就是(shi)一(yi)個Switch,進行(xing)點對點的(de)全速互(hu)聯,使得(de)這么多非(fei)常強的(de)個體能夠高效地合(he)到(dao)一(yi)起(qi),一(yi)起(qi)做一(yi)件事情,機器內(nei)節點的(de)演進和思考。

如果說這(zhe)個問題的(de)規模變(bian)得越(yue)來越(yue)大,比如現在OpenAI做(zuo)ChatGPT,可(ke)能(neng)需要上萬張顯(xian)卡一起來做(zuo),意味著有(you)幾千個節點(dian),這(zhe)些節點(dian)同(tong)樣需要硬件的(de)連接設備,使得我(wo)們有(you)足夠(gou)的(de)信息交流渠道,讓它們以高效一致的(de)步伐來做(zuo)協作(zuo)。

引入機(ji)(ji)器間(jian)的網絡(luo)互聯,以交換機(ji)(ji)和網卡構(gou)建出來以IB網絡(luo)構(gou)建的數據中心集群,對于這個問題的解決是至關重要的。

你的節(jie)點內問(wen)題解決得很好,節(jie)點間大家(jia)又(you)存在(zai)一些帶寬的限制(zhi),使(shi)得它不能高效合作起來(lai),算力就會(hui)被浪(lang)費。NVIDIA在(zai)硬(ying)件、底(di)層系統架構設(she)計(ji)上過去幾年不斷(duan)演進思(si)考和設(she)計(ji),這才使(shi)大家(jia)現在(zai)能看到基于A800系統賦能快速把(ba)大語言模型做出來(lai)。

除了(le)底層硬件(jian)(jian),NVIDIA在(zai)軟件(jian)(jian)生態上花了(le)很多(duo)的功夫(fu),自2006年引(yin)入CUDA,在(zai)生態中構建了(le)很多(duo)軟件(jian)(jian)。

NVIDIA徐添豪:軟硬件協同賦能大規模集群訓練GPT-3,算力有效性超50%丨GTIC 2023

底層的(de)(de)硬件作為一個底座,如果要支持上層做得(de)更好,還需(xu)要用各種各樣(yang)的(de)(de)軟件。過去這么多年,圍繞CUDA的(de)(de)生(sheng)態解決了各種各樣(yang)的(de)(de)問(wen)題。比(bi)如我(wo)們幫臺積電解決在芯(xin)片(pian)設計(ji)生(sheng)產領(ling)域(yu)的(de)(de)計(ji)算加速問(wen)題。

類似這樣的工作非常多,構(gou)成了(le)軟件層的核心部分。

三、基于NeMo Framework,GPT-3訓練算力有效性能超50%

再到上層(ceng),今天大(da)家可能聚焦的NeMo,專(zhuan)門針(zhen)對解決大(da)模型以及其它訓練的問題。

前面(mian)大家都提到了做(zuo)(zuo)一(yi)(yi)(yi)個GPT-3的訓練大概要(yao)多少(shao)(shao)資源(yuan)。我們(men)拿(na)一(yi)(yi)(yi)千(qian)張A800的卡做(zuo)(zuo)一(yi)(yi)(yi)個評估,有一(yi)(yi)(yi)個簡單的公(gong)式,需(xu)要(yao)消耗的時間等(deng)于你做(zuo)(zuo)這個大模型,比如GPT-3標準結(jie)構,要(yao)的FLOPS是多少(shao)(shao),通過(guo)理(li)論方式可以算出來。

NVIDIA徐添豪:軟硬件協同賦能大規模集群訓練GPT-3,算力有效性超50%丨GTIC 2023

同(tong)時除以(yi)硬件(jian)(jian)的(de)(de)(de)(de)(de)FLOPS乘(cheng)以(yi)它的(de)(de)(de)(de)(de)有效性,硬件(jian)(jian)真正(zheng)發揮(hui)出來的(de)(de)(de)(de)(de)FLOPS,等于你做(zuo)完這個問題(ti)到底(di)要花多(duo)少時間。前面都是定(ding)的(de)(de)(de)(de)(de),比如我有一個參考,GPT-3這樣的(de)(de)(de)(de)(de)結構去(qu)過300 billon tokens的(de)(de)(de)(de)(de)數據,假(jia)設(she)給(gei)你128臺A800機器組建的(de)(de)(de)(de)(de)集群,用FP16做(zuo)訓練的(de)(de)(de)(de)(de)話,單卡的(de)(de)(de)(de)(de)FLOPS是312TFLOPS,總共有128個節點,算(suan)出來這些是定(ding)的(de)(de)(de)(de)(de)FLOPS。

大家做(zuo)各(ge)(ge)種各(ge)(ge)樣的軟件設計去實(shi)現更快的訓練收斂效(xiao)率,非常核心的因素在(zai)于(yu)這個(ge)“50%”。NVIDIA在(zai)NeMo Framework上(shang)175B的規模在(zai)128臺機器上(shang)超過50%。各(ge)(ge)路業內大拿(na)都(dou)在(zai)用各(ge)(ge)樣各(ge)(ge)樣的方法,都(dou)是圍繞這50%做(zuo)得更高(gao),這也成為一個(ge)持續的話題(ti)。

基于(yu)這個(ge)(ge)值(zhi),128臺機(ji)器需要24天(tian)左右(you)的(de)(de)(de)時間完成(cheng)300 billon tokens的(de)(de)(de)數(shu)據訓練175B的(de)(de)(de)模型,這個(ge)(ge)可以跟大家(jia)看到的(de)(de)(de)1000張卡一個(ge)(ge)月左右(you)的(de)(de)(de)時間對上(shang)。

考慮到前面(mian)(mian)的(de)(de)(de)(de)硬(ying)件結構設計(ji),機器內通(tong)過NVSwitch互聯,互聯帶寬非(fei)常強(qiang),可以把需(xu)要更多(duo)的(de)(de)(de)(de)帶寬通(tong)信的(de)(de)(de)(de)并(bing)行模式放到節點(dian)內。通(tong)過這(zhe)樣(yang)的(de)(de)(de)(de)技(ji)術再結合ZeRO1等技(ji)術可以實現前面(mian)(mian)提(ti)到的(de)(de)(de)(de)50%+的(de)(de)(de)(de)效率,這(zhe)是(shi)非(fei)常好的(de)(de)(de)(de)效果(guo)。

NVIDIA推理(li)方(fang)面在過(guo)去幾年跟國內各(ge)行(xing)各(ge)業都有(you)非常緊密(mi)的(de)(de)(de)合作,在這(zhe)(zhe)個過(guo)程當中不斷地(di)積累,有(you)一套(tao)Fast Transformer,對于部署場景(jing)提供更高的(de)(de)(de)吞吐以(yi)及Latency的(de)(de)(de)平衡,有(you)時候在GPU的(de)(de)(de)硬件設備上為了拿到更大的(de)(de)(de)吞吐可(ke)能要組(zu)Batch,這(zhe)(zhe)是(shi)常見(jian)的(de)(de)(de)部署方(fang)法。

此外,為(wei)了(le)加速企業的大模(mo)型規模(mo)化(hua)部署,NeMo Framework還提供了(le)基于FasterTransformer和Triton整合的一體化(hua)大模(mo)型方案。

四、總結:NVIDIA全棧賦能LLM的前沿研究和規模化部署

總(zong)結(jie)一下前(qian)(qian)面講的,從(cong)2016年Pascal架(jia)(jia)構到(dao)現(xian)在(zai)Hopper架(jia)(jia)構馬(ma)上(shang)要開始部署了,每代顯卡針對當時甚(shen)至未來AI的模型可能出現(xian)什么結(jie)構做前(qian)(qian)沿的創新(xin),這(zhe)些(xie)創新(xin)落(luo)實到(dao)現(xian)在(zai)能看到(dao)的訓練(lian)腳(jiao)本里(li)面,甚(shen)至是一些(xie)框架(jia)(jia)里(li)面。

由這(zhe)些非常(chang)強的(de)(de)(de)個體本(ben)身的(de)(de)(de)算力(li)演(yan)進來提(ti)升1000倍(bei)算力(li),由超(chao)強的(de)(de)(de)個體再(zai)組成節點(dian)集(ji)群,這(zhe)里面都有NVIDIA非常(chang)多(duo)的(de)(de)(de)思考,有著每(mei)一代技(ji)術的(de)(de)(de)演(yan)進,才能構(gou)成超(chao)強的(de)(de)(de)計算集(ji)群,來為大模型時代提(ti)供非常(chang)好(hao)的(de)(de)(de)基礎架構(gou)設施參考。

下一(yi)(yi)步,圍繞(rao)硬件(jian)以外的軟(ruan)(ruan)件(jian)生態,NVIDIA構建出全(quan)棧(zhan)的、能夠直接(jie)最終給到大家(jia)開箱即(ji)用的一(yi)(yi)系(xi)列加速軟(ruan)(ruan)件(jian)方案,幫助(zhu)大家(jia)在(zai)接(jie)下來(lai)的大模型時(shi)代能有更(geng)快的速度(du),推出用時(shi)間、空(kong)間來(lai)贏得在(zai)市場上地(di)位的軟(ruan)(ruan)硬件(jian)一(yi)(yi)體化方案。

這就是我(wo)的分(fen)享,也(ye)是過去跟行(xing)業內(nei)各個客戶,真實把這些技術結合硬件、軟件、生態落地之后的一些思考。

謝(xie)謝(xie)大家,我的(de)分享就到(dao)這里(li)。

以上是徐添豪演講內容的完整整理。