0
本文作者: 溥茜 | 2023-09-04 14:43 |
作者丨孫溥茜
編輯丨陳彩嫻
編者按:2023 年 8 月14日,第七屆 GAIR 全球人工智能與機(jī)器人大會(huì)在新加坡烏節(jié)大酒店正式開(kāi)幕。論壇由 GAIR 研究院、雷峰網(wǎng)(公眾號(hào):雷峰網(wǎng))、世界科技出版社、科特勒咨詢集團(tuán)聯(lián)合主辦。大會(huì)共開(kāi)設(shè) 10 個(gè)主題論壇,聚焦大模型時(shí)代下的 AIGC、Infra、生命科學(xué)、教育,SaaS、web3、跨境電商等領(lǐng)域的變革創(chuàng)新。此次大會(huì)是在大模型技術(shù)爆炸時(shí)代,國(guó)內(nèi)首個(gè)出海的 AI 頂級(jí)論壇,也是中國(guó)人工智能影響力的一次跨境溢出。
在第一天的“GPT 時(shí)代的杰出貢獻(xiàn)者”專場(chǎng)上,林偉以“ PAI 靈駿智算,為創(chuàng)新提速”為題發(fā)表了主題演講。林偉是阿里云研究員、阿里云計(jì)算平臺(tái)首席架構(gòu)師,也是阿里云機(jī)器學(xué)習(xí)平臺(tái) PAI 技術(shù)負(fù)責(zé)人。
大模型時(shí)代 AI 工程建設(shè)是一個(gè)熱門的話題,也是一個(gè)具有挑戰(zhàn)性的問(wèn)題。參數(shù)量大、計(jì)算復(fù)雜度高、需要大規(guī)模分布式集群和高性能硬件支持訓(xùn)練和推理,單拎出哪一點(diǎn)對(duì)于 AI 工程師來(lái)說(shuō)都是一項(xiàng)巨大的技術(shù)挑戰(zhàn)。林偉認(rèn)為,隨著快速變化的外界環(huán)境,如何快速訓(xùn)練模型,成為了模型開(kāi)發(fā)的重中之重。
在演講中,林偉介紹了阿里云 PAI 靈駿智算平臺(tái)的基礎(chǔ)架構(gòu),并從核心競(jìng)爭(zhēng)力、平臺(tái)核心基礎(chǔ)設(shè)施建設(shè)、訓(xùn)練推理加速、編譯技術(shù)、數(shù)據(jù)加速、RLHF 框架、平臺(tái)能力和社區(qū)建設(shè)等方面,系統(tǒng)闡述了阿里云在 AI 工程化方面的工作進(jìn)展。
以下為林偉的演講內(nèi)容,雷峰網(wǎng)作了不改變?cè)獾木庉嫾罢恚?/p>
大家好,歡迎來(lái)到第七屆 GAIR 全球人工智能與機(jī)器人大會(huì),我是林偉,現(xiàn)在是阿里云機(jī)器學(xué)習(xí)平臺(tái) PAI 的技術(shù)負(fù)責(zé)人,今天我?guī)?lái)的分享主題是“ PAI 靈駿智算,為創(chuàng)新提速”。今年是 AI 大模型突破的一年,ChatGPT 讓人們看到大模型的智能潛力,也推動(dòng)了整個(gè)行業(yè)進(jìn)入到了大模型時(shí)代。
但是訓(xùn)練大模型并不簡(jiǎn)單,隨著模型大小呈指數(shù)級(jí)增加,如何能夠快速訓(xùn)練模型成為模型開(kāi)發(fā)的重中之重。只有通過(guò)不斷地訓(xùn)練、反饋,以更快速度迭代,才能產(chǎn)生更好的模型。
我們認(rèn)為,AI 的工程化和規(guī)?;沁@一輪 AI 爆發(fā)的主要推動(dòng)力。那么如何有效管理這些非常昂貴的超算中心,充分利用好成千上萬(wàn)張 GPU 算力,讓算法工程師不用或者少操心系統(tǒng)問(wèn)題,把精力更多地投入在模型構(gòu)造和訓(xùn)練上,是我們正在關(guān)注的事情。
阿里云基于過(guò)去在大語(yǔ)言模型建設(shè)上的經(jīng)驗(yàn),推出了 PAI 靈駿智算平臺(tái),旨在提供大規(guī)模的深度訓(xùn)練能力,幫助用戶更好地管理算力,在計(jì)算、AI of Science,以及生成式 AI 的各個(gè)方向去貢獻(xiàn)自己的力量。今天我將主要介紹阿里云在大模型環(huán)境里下,有關(guān)架構(gòu)的一些思考。
01
AI 工程化的眾多挑戰(zhàn)
AI工程面臨眾多挑戰(zhàn),其中首要挑戰(zhàn)之一是芯片的快速迭代。平均每半年迭代一次的芯片,導(dǎo)致我們的計(jì)算集群呈現(xiàn)異構(gòu)狀態(tài)。在這種情況下,我們要思考如何通過(guò)調(diào)度能力和框架協(xié)同配合,將合適的任務(wù)分布到合適的資源上,并充分考慮網(wǎng)絡(luò)拓?fù)?。在超大?guī)模模型訓(xùn)練中,網(wǎng)絡(luò)通信是關(guān)鍵因素,因此合理的網(wǎng)絡(luò)拓?fù)浒才攀谴_保分布式訓(xùn)練加速比的關(guān)鍵所在。
同時(shí),我們也需要在調(diào)度中避免浪費(fèi)資源,減少碎片化,以適應(yīng)大模型訓(xùn)練的需要。在這種規(guī)模下,硬件性能已經(jīng)被推至極限。大型模型的訓(xùn)練往往需要上千張 GPU 卡,并且在這種情況下,硬件錯(cuò)誤、網(wǎng)絡(luò)擁塞以及其他不可預(yù)測(cè)因素可能導(dǎo)致訓(xùn)練中斷或錯(cuò)誤。
因此,PAI 靈駿致力于為模型開(kāi)發(fā)者提供幫助,使其無(wú)需過(guò)多關(guān)注這些問(wèn)題,能夠自動(dòng)進(jìn)行容錯(cuò)和修復(fù)。此外,還有一個(gè)重要因素是計(jì)算能力。鑒于我們的模型需要處理海量數(shù)據(jù),如何確保計(jì)算能力不受數(shù)據(jù)傳輸?shù)却挠绊懀瑥亩行Ч┙o訓(xùn)練過(guò)程,成為一項(xiàng)關(guān)鍵任務(wù)。
同時(shí),分布式任務(wù)的管理也頗具復(fù)雜性,通常情況下,算法專業(yè)的同仁較難有效地優(yōu)化和分布式化任務(wù),實(shí)現(xiàn)存儲(chǔ)、網(wǎng)絡(luò)傳輸和調(diào)度等各個(gè)環(huán)節(jié)的均衡分配。我們需要系統(tǒng)深刻理解,以便在硬件資源的充分利用下,實(shí)現(xiàn)這些領(lǐng)域的平衡切割,從而解決系統(tǒng)瓶頸問(wèn)題,為算法迭代提供堅(jiān)實(shí)支持。因此,我們的AI平臺(tái)需要具備更大范圍的系統(tǒng)理解能力,以最大程度地平衡位于計(jì)算中心的資源,從而解決系統(tǒng)瓶頸問(wèn)題,為算法的迭代提供有力保障。
02
AI 訓(xùn)練提效之阿里版解決方案
這張圖展現(xiàn)了 PAI 靈駿智算平臺(tái)的整體框架。最底層是阿里云的數(shù)據(jù)中心,為大數(shù)據(jù)和AI計(jì)算創(chuàng)造了良好的環(huán)境。在數(shù)據(jù)中心內(nèi)部,擁有海量的云服務(wù)器,并配備了高速的 RDMA 網(wǎng)絡(luò)和高性能存儲(chǔ)設(shè)備。
在此基礎(chǔ)上,我們構(gòu)建了機(jī)器學(xué)習(xí) PAI 平臺(tái),它將通信、 I/O、 網(wǎng)絡(luò)、各種芯片和已經(jīng)深度優(yōu)化的深度學(xué)習(xí)框架有機(jī)地結(jié)合在一起,使得算力能夠高效地為上層平臺(tái)和算法工程師服務(wù),讓他們能夠快速有效地構(gòu)建深度學(xué)習(xí)模型。
在平臺(tái)上,我們還提供了模型即服務(wù)(Model as a Service)的理念,集成 ModelScope、HuggingFace 等優(yōu)秀的模型庫(kù),讓 AI 應(yīng)用開(kāi)發(fā)工程師可以在平臺(tái)上構(gòu)建各種有趣的 AI 應(yīng)用。
從 ChatGPT 誕生后,就迅速涌現(xiàn)了許多 AI 應(yīng)用,這也反映了一個(gè)優(yōu)質(zhì)的模型庫(kù)和模型社區(qū)對(duì)于行業(yè)發(fā)展的重要性。我們非常歡迎學(xué)術(shù)界和產(chǎn)業(yè)界的同行一起加入我們的模型社區(qū),為技術(shù)進(jìn)步貢獻(xiàn)力量。
PAI靈駿智算平臺(tái)在工程上具有以下幾個(gè)特點(diǎn)。
首先,建立了高帶寬低延時(shí)的分布式 RDMA 網(wǎng)絡(luò),它是連接各個(gè)計(jì)算節(jié)點(diǎn)的關(guān)鍵。我們的理念是,在IB之外,我們還構(gòu)建了基于以太網(wǎng)的 RoCE RDMA 網(wǎng)絡(luò)。這樣,才能在云上提供優(yōu)質(zhì)的 AI 計(jì)算平臺(tái)服務(wù),我們可以將存儲(chǔ)等云服務(wù)和AI計(jì)算很好地結(jié)合起來(lái),為用戶提供數(shù)據(jù)治理、管理和計(jì)算等一體化的服務(wù)。
在以太網(wǎng)上,我們面臨著更大的挑戰(zhàn),比如如何解決網(wǎng)絡(luò)擁塞、通信流不均衡問(wèn)題。通過(guò)自建高性能網(wǎng)絡(luò)和通信庫(kù)來(lái)解決這些問(wèn)題,使得加速比能夠保持在 90% 以上。如果使用普通的 TCP 網(wǎng)絡(luò),加速比會(huì)大幅下降。
其次,在深度學(xué)習(xí)框架方面,我們關(guān)注于引擎的后端優(yōu)化,特別是在大模型時(shí)代,讓算法工程師編寫(xiě)分布式訓(xùn)練代碼是非常困難的,更不用說(shuō)跑得好。通過(guò)自研的編譯優(yōu)化和自動(dòng)分布式加速引擎,自動(dòng)地切割模型和生成執(zhí)行計(jì)劃,使得我們能夠很好地平衡各個(gè)節(jié)點(diǎn)上的 I/O、網(wǎng)絡(luò)和計(jì)算資源,實(shí)現(xiàn)高效的分布式訓(xùn)練。在推理階段,也可以利用編譯技術(shù),并結(jié)合模型壓縮和量化技術(shù),來(lái)適配各種多樣的服務(wù)終端,從而以更經(jīng)濟(jì)的方式提供推理服務(wù)。
最后,在模型生產(chǎn)方面,PAI 靈駿提供了從數(shù)據(jù)準(zhǔn)備、清洗到模型結(jié)構(gòu)開(kāi)發(fā)訓(xùn)練,再到模型部署的整個(gè)開(kāi)發(fā)流程。在平臺(tái)之上,我們還構(gòu)建了模型即服務(wù)(Model as a Service)的理念,與行業(yè)內(nèi)的同行一起建設(shè)模型社區(qū),期待以模型社區(qū)激發(fā)更多的 AI 應(yīng)用開(kāi)發(fā)工程師進(jìn)行創(chuàng)新和創(chuàng)造,構(gòu)建豐富多樣的 AI 應(yīng)用。
繼續(xù)展開(kāi)來(lái)說(shuō),我們的計(jì)算平臺(tái)在基礎(chǔ)設(shè)施方面,建立了 3.2T 的高速 RDMA 網(wǎng)絡(luò),支持上萬(wàn)個(gè)節(jié)點(diǎn)的擴(kuò)展能力,控制延遲在 1.5μs以內(nèi)。我們利用多路徑感知的通信庫(kù),避免集群內(nèi)網(wǎng)絡(luò)擁塞問(wèn)題,實(shí)現(xiàn)了高性能的通信。同時(shí),我們也做了自動(dòng)的故障診斷和通信管理,保證了網(wǎng)絡(luò)的可用性。我們已經(jīng)將這個(gè)網(wǎng)絡(luò)集成到大數(shù)據(jù)存儲(chǔ)和計(jì)算系統(tǒng)中,支持 AI 的科學(xué)計(jì)算、智能計(jì)算和大模型計(jì)算等場(chǎng)景。
在系統(tǒng)層面,我們也做了很多工作來(lái)充分發(fā)揮硬件的潛能。在分布式方面,我們針對(duì) PyTorch 推出了 TorchAccelerator 庫(kù),針對(duì) TensorFlow 推出了 EPL 庫(kù)??紤]到分布式訓(xùn)練的特點(diǎn),我們提出了 AI Master 框架,來(lái)加強(qiáng)分布式環(huán)境中的調(diào)度和控制,實(shí)現(xiàn)彈性訓(xùn)練和跨高階worker的優(yōu)化。例如,通過(guò)自動(dòng)容錯(cuò)的彈性訓(xùn)練,可以進(jìn)行訓(xùn)練中節(jié)點(diǎn)個(gè)數(shù)的擴(kuò)縮容,使得我們的分布式執(zhí)行更加魯棒。
同時(shí),我們也聚焦于編譯技術(shù),這是優(yōu)化的核心。我們通過(guò)編譯過(guò)程系統(tǒng)地理解大模型計(jì)算的過(guò)程,讓系統(tǒng)自動(dòng)化地進(jìn)行優(yōu)化,選擇分布式優(yōu)化策略。
在推理場(chǎng)景中,我們運(yùn)用混合精度、模型壓縮量化等技術(shù),并結(jié)合我們的 PAI-Blade 工具,使得用戶可以以一種透明、簡(jiǎn)單的方式使用我們的自動(dòng)化優(yōu)化能力。
考慮到云上的數(shù)據(jù)問(wèn)題,我們依托于以太網(wǎng)上的 RDMA 網(wǎng)絡(luò),將我們的PAI靈駿智算平臺(tái)與阿里云的其他產(chǎn)品服務(wù)有機(jī)地結(jié)合起來(lái)。用戶可以將數(shù)據(jù)放在 OSS、MaxCompute 等豐富的云產(chǎn)品中,并通過(guò)專業(yè)的數(shù)據(jù)管理系統(tǒng)或湖倉(cāng)系統(tǒng)來(lái)管理數(shù)據(jù)。在訓(xùn)練時(shí),我們需要快速地將數(shù)據(jù)供給計(jì)算節(jié)點(diǎn),使得模型能夠快速收斂。
這就帶來(lái)了一個(gè)挑戰(zhàn):數(shù)據(jù)存在于遠(yuǎn)端的湖倉(cāng)系統(tǒng)中,而訓(xùn)練算力集群又是一個(gè)高性能的智算中心。如何提高數(shù)據(jù)供給效率,并讓AI 訓(xùn)練和推理變得更快、更易用、更穩(wěn)定?
具體來(lái)說(shuō),我們的編譯技術(shù)更加聚焦于后端的執(zhí)行框架。在前端,不管是 TensorFlow 還是 PyTorch,我們都會(huì)將 Python 程序轉(zhuǎn)譯成中間語(yǔ)言 IR。對(duì)于 TensorFlow 的靜態(tài)圖,這個(gè)過(guò)程會(huì)更容易。對(duì)于 PyTorch,我們也可以通過(guò)一些方法和約束,將前端的模型表達(dá)轉(zhuǎn)成 IR 的執(zhí)行圖。然后,我們?cè)偻ㄟ^(guò)后端系統(tǒng)的分布式策略選擇和本地代碼生成,結(jié)合起來(lái),形成最終高效的分布式執(zhí)行計(jì)劃。
我們這種方式可以很方便地對(duì)接各種構(gòu)建深度學(xué)習(xí)的框架。我們認(rèn)為,系統(tǒng)優(yōu)化更應(yīng)該聚焦于后端,因?yàn)榍岸耸且粋€(gè)生態(tài),不管開(kāi)發(fā)工程師用什么樣的工具構(gòu)建模型,我們都能夠通過(guò)我們后端的技術(shù)支持他們。現(xiàn)在行業(yè)里的趨勢(shì)也是如此,大家在共同建設(shè)類似于 MLIR 這樣的框架,并將更多的系統(tǒng)化優(yōu)化放在后端生態(tài)系統(tǒng)上??梢钥吹?,通過(guò)我們的技術(shù),我們能夠普適性地提高模型的性能,在訓(xùn)練上可以有不錯(cuò)的性能提升。
在推理方面,我們也將我們的優(yōu)化技術(shù)結(jié)合在 PAI-Blade 工具中,實(shí)現(xiàn)了很好的效率提升。除了系統(tǒng)優(yōu)化,我們還可以通過(guò)對(duì)模型的理解進(jìn)行一些有損的優(yōu)化,如模型量化和壓縮,結(jié)合彈性資源,提供更高性價(jià)比的推理服務(wù)。特別是在大模型時(shí)代,推理服務(wù)的成本節(jié)省是推廣模型應(yīng)用的關(guān)鍵。希望以更普惠的方式將大模型的能力推給最終消費(fèi)者。
在數(shù)據(jù)倉(cāng)庫(kù)的環(huán)境中,我們依托于以太網(wǎng)上的 RDMA 網(wǎng)絡(luò),所以可以很好地和云產(chǎn)品進(jìn)行有機(jī)結(jié)合。但是,如何平衡遠(yuǎn)端的數(shù)據(jù)倉(cāng)庫(kù)和近端的智算中心之間的管理和性能?我們是通過(guò) DataSetAccelerator 產(chǎn)品,在智算中心內(nèi)部,建立一個(gè)緩存層,將遠(yuǎn)端的數(shù)據(jù)以異步的方式拉到本地的緩存中,從而有效地滿足計(jì)算的需求。
針對(duì)大模型時(shí)代的強(qiáng)化學(xué)習(xí)需求,我們對(duì)RLHF 的過(guò)程進(jìn)行了有效的支持。我們提出了一個(gè)支持千億模型參數(shù)的 RLHF 框架,讓工程師能夠更方便地構(gòu)建復(fù)雜的強(qiáng)化學(xué)習(xí)流程,從而有效地支持模型的迭代更新。
在產(chǎn)品層面,我們提供了一個(gè)端到端的模型開(kāi)發(fā)全過(guò)程。從數(shù)據(jù)標(biāo)注到交互式建模,從大規(guī)模訓(xùn)練的集群管理到任務(wù)提交,從在線服務(wù)的部署到模型資產(chǎn)的管理,我們都提供了豐富的資源視角和任務(wù)視角,讓用戶可以有效地管理數(shù)據(jù)集、鏡像、代碼、模型和任務(wù)。我們遵循了 PaaS 層的產(chǎn)品理念,所有的功能都有完善的 open API,讓用戶可以根據(jù)自己的需求,構(gòu)建自己的平臺(tái)和交互方式,并將我們的能力集成進(jìn)去。
除了工程和平臺(tái)層面,阿里云也在推動(dòng)模型即服務(wù)(Model as a Service)的模型社區(qū)建設(shè),并且毫無(wú)保留地開(kāi)放了這些年積累的模型。通過(guò) ModelScope 魔搭社區(qū),我們讓 AI 開(kāi)發(fā)變得更簡(jiǎn)單,讓 AI 應(yīng)用更加百花齊放,讓更多的開(kāi)發(fā)者加入到 AI 開(kāi)發(fā)中,使得 AI 模型和應(yīng)用能夠更好地滲透到各個(gè)行業(yè),為智能化開(kāi)發(fā)推向一個(gè)新階段。
ModelScope 魔搭社區(qū)和 PAI 平臺(tái)進(jìn)行了無(wú)縫對(duì)接,使得開(kāi)發(fā)者能夠更快地使用模型,根據(jù)自己的場(chǎng)景進(jìn)行二次開(kāi)發(fā),構(gòu)建自己的訓(xùn)練過(guò)程,并充分利用好已經(jīng)訓(xùn)練好的大模型和預(yù)訓(xùn)練模型,進(jìn)行二次迭代。平臺(tái)也提供了一些免費(fèi)的啟動(dòng)資源,讓開(kāi)發(fā)者熟悉開(kāi)發(fā)環(huán)境,更便捷地進(jìn)行創(chuàng)新。以上是我的分享,謝謝!歡迎添加作者微信Sunpx33,交個(gè)朋友~
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。