AI在各種各樣的實際場景中都有相關的應用。比如以卷積網(wǎng)絡為核心的圖像檢測,視頻檢索技術可應用于下游的安防、醫(yī)療診斷、自動駕駛等場景;以強化學習為基礎的博弈決策技術,可應用于交通規(guī)劃等領域;以Transformer為核心的自然語言處理技術,可以應用于搜索推薦、智能人機接口等場景。
AI 算力基礎設施的重要性
目前,人工智能(AI)是中美科技競爭的重要領域。2020年4月,國家發(fā)改委明確將人工智能納入新基建范圍,AI是新基建之一。而在2019年2月,美國發(fā)布了《維護美國人工智能領導力的行政命令》(Execution Order On Maintaining American Leadership in Artificial Intelligence),此命令可視為美國國家AI戰(zhàn)略的里程碑。而在2020年10月,美國國家AI安全委員會又指出:“必須不惜一切代價在AI上擊敗中國”??梢?,AI對于中美未來綜合國力的競爭是非常重要的。此外,中美兩國在人工智能領域各有優(yōu)勢。從AI技術三駕馬車:算法、數(shù)據(jù)、算力來看,中國在大數(shù)據(jù)領域處于優(yōu)勢地位,但在算法和智能算力領域,中國落后于美國。智能算力的不足嚴重制約了我國在AI領域的創(chuàng)新能力??梢钥吹?,智能AI算力在中美科技競爭中占據(jù)非常重要的戰(zhàn)略地位。
那么,AI算力究竟為何如此重要呢?除去前面提及的中美競爭的大背景,AI算力對于我國經(jīng)濟建設、科技建設都有著非常積極的意義。
首先,算力即生產(chǎn)力,算力能夠推動經(jīng)濟發(fā)展方式變革。據(jù)埃森哲和經(jīng)濟學前沿公司分析,預計到2035年,AI將推動我國GDP增長21%。由此可見,算力將成為智能經(jīng)濟的發(fā)動機。?
其次,AI算力正在改變基礎科學和智能領域的創(chuàng)新模式。比如,AlphaFold2解決了結構生物學50年的難題,AI+HPC將高能物理計算加速數(shù)百倍。
AI在各種各樣的實際場景中都有相關的應用。比如,以卷積網(wǎng)絡為核心的圖像檢測,視頻檢索技術可應用于下游的安防、醫(yī)療診斷、自動駕駛等場景;以強化學習為基礎的博弈決策技術,可應用于交通規(guī)劃等領域;以Transformer為核心的自然語言處理技術,可以應用于搜索推薦、智能人機接口等場景。其中最典型的自然語言處理模型,比如GPT-1、GPT-2、GPT-3,BERT的發(fā)展非常迅速,模型規(guī)模從幾億到幾千億再到幾萬億參數(shù)。以上一切技術都需要AI算力來提供支持。
綜上所述,AI算力影響了我們社會的方方面面。因此,構建AI算力的基礎設施非常重要。
AI 算力基礎設施的架構和平衡設計
AI算力非常重要,對AI算力基礎設施的架構進行設計,是提升AI算力的第一步。
現(xiàn)有算力體系,比如超算系統(tǒng),主要針對的是HPC的應用,而AI和HPC存在著一些區(qū)別。比如,HPC主要應用于科學和工程計算,像天氣預報、核聚變模擬、飛行器設計等,而AI主要用于分類、回歸、自然語言處理,下游任務主要是安防、互聯(lián)網(wǎng)搜索推薦、金融風控、智能制造;從運算精度角度來說,HPC主要為雙精度浮點運算,而AI主要為半精度浮點運算或者低精度整數(shù)運算;從編程角度來看,HPC主要是基于MPI來做并行計算,而AI基于Pytorch、TensorFlow、 MindSpore、Oneflow、DeepSpeed等機器學習框架;HPC的性能指標主要是HPL、HPCG,而AI的性能指標是MLPerf、AIPerf。傳統(tǒng)超算系統(tǒng)對于AI系統(tǒng)的支持性不佳。因此,需要針對AI的特性來設計新的超算系統(tǒng)。目前,代表性的HPC和AI系統(tǒng)主要有以下幾個:天河2號、神威太湖之光、Summit、富岳、Frontier、鵬城云腦2等。
其中,鵬城云腦2是新一代AI HPC系統(tǒng)。該系統(tǒng)包含4套華為Atlas900系統(tǒng),4套系統(tǒng)節(jié)點間用200Gbps網(wǎng)絡互連。鵬城云腦的總半精度計算性能可達1E flops,雙精度可達1P flops。那么,設計AI系統(tǒng)的系統(tǒng)結構要素有哪些呢?我們先來看一下一般大規(guī)模計算機系統(tǒng)中是什么樣的。一般來說,大規(guī)模計算機系統(tǒng)包括四個部分,即處理器、內存、存儲與互聯(lián)網(wǎng)絡。
具體來說,AI算力系統(tǒng)和傳統(tǒng)HPC系統(tǒng)在各個要素上存在一些聯(lián)系和區(qū)別。
在處理器上,AI算力系統(tǒng)著重半精度計算性能,面向神經(jīng)網(wǎng)絡運算的優(yōu)化(如nVidiaGPU的TensorCore);HPC系統(tǒng)雙精度性能優(yōu)先,兼顧低精度計算,更大規(guī)模機器甚至需要采用80位或128位高精度。
在互聯(lián)網(wǎng)絡上,AI算力系統(tǒng)需要高性能參數(shù)平面網(wǎng)絡(如nvlink)連接訓練單一模型的加速器組(nVidia 8或16卡,華為4096卡);HPC系統(tǒng)一般從全系統(tǒng)角度考慮網(wǎng)絡拓撲和通信需求。
在存儲系統(tǒng)上,AI算力系統(tǒng)局部高性能存儲(NVMe SSD)存放訓練數(shù)據(jù)集(如GPT-345TB),避免從全局文件系統(tǒng)讀取數(shù)據(jù)造成瓶頸;HPC系統(tǒng)一般采用Lustre等全局并行文件系統(tǒng),支持MPI-IO。
結合以上分析,在設計新型AI系統(tǒng)時,要重視系統(tǒng)平衡性原則。
計算平衡設計
鵬城云腦2原有設計中主要考慮半精度運算性能,雙精度運算能力過低,雙精度與半精度運算性能之比為1:1000。
根據(jù)科學計算和大模型訓練的發(fā)展趨勢,要改變精度平衡設計的思想, 建議增加通用算力,為云腦適應科學計算和更廣泛的AI算法和應用提供保障。
網(wǎng)絡平衡設計
鵬程云腦2原有網(wǎng)絡設計主要針對CNN等算法,未考慮極大規(guī)模預訓練模型對系統(tǒng)的需求;原有數(shù)據(jù)平面網(wǎng)絡的頂層網(wǎng)絡裁剪比為1:4,對訓練數(shù)據(jù)讀取和大規(guī)??茖W計算支撐不足;建議數(shù)據(jù)平面頂層網(wǎng)絡裁剪比改進為1:1,華為相應修改了網(wǎng)絡連接方式,并增加了頂層交換機,為IO500測試多次名列世界第一打下了基礎。
IO子系統(tǒng)平衡設計
鵬程云腦2原有系統(tǒng)的本地NVME SSD僅通過本地文件系統(tǒng)訪問,限制了其應用范圍;應將每臺服務器上的快速本地NVME整合成應用為可見的全局分布式文件系統(tǒng),并開發(fā)高性能MADFS并行文件系統(tǒng),在多次IO500測試中獲得世界第一?,F(xiàn)在,已經(jīng)有越來越多的城市陸續(xù)啟動人工智能計算中心建設,讓算力無處不在、觸手可及!
AI 算力的評測方法
前面介紹了AI算力基礎設施的設計,除此之外,AI算力的評測(AI Perf)也是非常重要的。
為什么需要AI算力評測呢?
首先,公眾需要一個評價指標來回答:哪套系統(tǒng)的人工智能算力更強?
其次,我們需要知道,整個領域的發(fā)展狀況如何?顯然,一個好的指標能夠引領領域的健康發(fā)展。然而,傳統(tǒng)高性能計算機的測試結果與人工智能需要的性能不完全一致。
正如前面所述,HPC和AI所采用的數(shù)據(jù)精度不同,需要針對AI來設計基準評測程序。而現(xiàn)有AI基準評測,面臨以下幾個問題:DeepBench測試底層人工智能芯片計算的效率,不能反映超大規(guī)模系統(tǒng)性能,針對單個芯片,不適用于整機評測;Mobile AI Bench針對移動端硬件上的模型訓練評測,無法體現(xiàn)超算對大規(guī)模AI應用的性能;MLPerf,采用單一人工智能網(wǎng)絡模型,百張加速卡以上規(guī)模測試下可擴展性明顯下滑,難以支撐在千卡以上級別的系統(tǒng)評測。
為了克服AI基準評測的問題,需要實現(xiàn)以下四個目標。
1.一個統(tǒng)一分數(shù)。AIPerf需要能夠報告一個統(tǒng)一分數(shù)作為被評測集群系統(tǒng)的評價指標。AIPerf目前的評價指標是AIops,即平均每秒處理的混合精度AI操作數(shù)。使用一個而不是多個分數(shù)能方便進行不同機器的橫向比較,以及方便向公眾宣傳。
2.可變的問題規(guī)模。人工智能計算集群往往有著不同的系統(tǒng)規(guī)模,差異性體現(xiàn)在結點數(shù)量、加速器數(shù)量、加速器類型、內存大小等指標。因此,為了適應各種規(guī)模的高性能計算集群,AIPerf 能夠使用AutoML進行問題規(guī)模的變化來適應集群規(guī)模的變化,從而充分利用人工智能計算集群的計算資源來體現(xiàn)其算力。
3.具有實際的人工智能意義。具有人工智能意義的計算,例如神經(jīng)網(wǎng)絡運算,是人工智能基準測試程序相較于傳統(tǒng)高性能計算機基準測試程序的重要區(qū)別,也是能夠檢測集群人工智能算力的核心所在。
目前,AIPerf在ImageNet數(shù)據(jù)集上訓練神經(jīng)網(wǎng)絡來運行計算機視覺應用程序。在將來,AIPerf計劃將自然語言處理等其他人工智能任務加入評測范圍。
4.評測程序包含必要的多機通信。網(wǎng)絡通信是人工智能計算集群設計主要指標之一,也是其龐大計算能力的重要組成部分。作為面向高性能計算集群的人工智能基準測試程序,AIPerf包括必要的多機通信,如任務的分發(fā)、結果的收集與多機訓練,從而將網(wǎng)絡通信性能作為最終性能的影響因素之一。
為了實現(xiàn)以上目標,需要設計完善的AIPerf機制。目前AIPerf主要流程包含5個步驟:
1.主節(jié)點持續(xù)分配計算任務(包含歷史信息);
2.計算節(jié)點根據(jù)歷史信息生成新的神經(jīng)網(wǎng)絡訓練模型;
3.計算節(jié)點調用后端深度學習框架(MindSpore、Keras、Tensorflow)訓練神經(jīng)網(wǎng)絡;
4.新模型訓練完成后,工作節(jié)點返回新模型及其精度;主節(jié)點更新歷史信息;
5.計算任務異步執(zhí)行。
深圳鵬城實驗室研制的基于ARM架構和華為加速處理器的鵬城云腦2,主機以194,527 Tops的AIPerf算力榮登榜首。其性能是排名第二的聯(lián)泰集群Nvidia系統(tǒng)性能的12倍以上。
百萬億參數(shù)超大預訓練模型的訓練
當前,學術界形成了共識,模型規(guī)模與模型效果呈現(xiàn)正相關關系。模型參數(shù)達到千億的大模型,已經(jīng)能在美國SAT考試題目中,實現(xiàn)60%左右的正確率。
現(xiàn)有語言大模型已經(jīng)達到了萬億甚至百萬億的規(guī)模。如美國的GTP是11億參數(shù)(2018年),GTP2.0是15億參數(shù)(2019年),GTP3.0是1.75萬億參數(shù)(2021年),GTP4.0是1.7萬億參數(shù)。國內的BaGuaLu是174萬億。因此,探索更大參數(shù)量模型的效果具有重要科學意義。預訓練模型的計算結構的核心是Transformer模型,模型的計算主要集中在:嵌入層(Embedding)、注意力層 (Attention)、前饋網(wǎng)絡 (FFN)。
Transformer的計算核心為矩陣乘法,因此我們可以利用并行訓練技術來加速訓練。隨著模型規(guī)模擴大,訓練數(shù)據(jù)增多,單機訓練無法滿足參數(shù)規(guī)模和數(shù)據(jù)吞吐的需求,并行訓練成為大模型的訓練“標配”。
比如在國產(chǎn)的新一代神威高性能計算機中,包含了96,000個節(jié)點、37,440,000個核心,以及互連網(wǎng)絡。神威采用的是新一代體系結構芯片—神威26010pro,以及支持MPI通信的國產(chǎn)自主高速網(wǎng)絡,契合了大規(guī)模預訓練模型的需求。
我們團隊在國產(chǎn)E級高性能計算機上訓練了一個170萬億參數(shù)的超大規(guī)模預訓練模型,模型參數(shù)與人腦中的突觸數(shù)量相媲美。在訓練這一超大規(guī)模預訓練模型中,面臨四個關鍵系統(tǒng)的挑戰(zhàn):一是如何選取高效并行策略;二是如何進行高效數(shù)據(jù)存儲;三是如何選取合適數(shù)據(jù)精度;四是如何實現(xiàn)動態(tài)負載均衡。
挑戰(zhàn)1:如何選取高效并行策略
不同的并行策略的通信需求和計算模式不同,比如數(shù)據(jù)并行、模型并行、流水并行、MoE并行。底層不同的網(wǎng)絡拓撲結構會對性能有很大的影響,如何選擇合適的并行策略組合是非常大的挑戰(zhàn)。
挑戰(zhàn)2:如何進行高效數(shù)據(jù)存儲
以萬億參數(shù)的模型為例,如果模型精度是32位,模型的參數(shù)就有4T,模型的梯度也有4T,優(yōu)化器的更新參數(shù)有8T,計算中間值也有8T。如果用V100訓練這個模型,并且把這些數(shù)據(jù)存儲下來,就需要768塊V100。那么這些數(shù)據(jù)如何劃分?不同的劃分方式對底層的計算和通信也會產(chǎn)生不同的影響,即高效存儲相關數(shù)據(jù)來支持高效訓練非常有挑戰(zhàn)性。
挑戰(zhàn)3:如何選取合適數(shù)據(jù)精度
選擇合適的數(shù)據(jù)精度能夠有效提高計算性能,降低內存占用。越低精度選取,性能越好,但模型準確度越差,如何選擇最優(yōu)的混合精度策略非常有挑戰(zhàn)性。
挑戰(zhàn)4:如何實現(xiàn)動態(tài)負載均衡
MoE訓練中,樣本通過網(wǎng)關 (gate) 選取合適專家進行計算,存在負載不均衡問題,影響計算性能,受歡迎的專家會收到幾百倍,甚至上千倍的輸入數(shù)據(jù)。
針對上述挑戰(zhàn),我們團隊提出相應的解決方案,實現(xiàn)在國產(chǎn)系統(tǒng)的高效并行訓練——八卦爐:百萬級預訓練模型系統(tǒng)。?
在上面的基礎上,我們團隊同時完善神威高性能計算機的基礎軟件庫:實現(xiàn)高效算子庫;完善 swTensor,支持混合精度算子優(yōu)化深度學習框架;深度優(yōu)化 swPyTorch、優(yōu)化內存分配器等支持復雜模型;實現(xiàn)分層混合精度策略、支持負載均衡方法。我們團隊訓練的阿里巴巴圖文數(shù)據(jù)集M6-Corpus,數(shù)據(jù)集總規(guī)模約2TB,包含科學、體育、政治、經(jīng)濟等各方面,同時將我們的工作開源成相應的分布式系統(tǒng)FASTMOE。
如何培養(yǎng)系統(tǒng)人才
算力非常重要,會使用算力的人才同樣非常重要。那么,如何培養(yǎng)系統(tǒng)人才呢?
學好課程
兩門理解計算機系統(tǒng)基本原理的基礎課程。
一門是CMU(15-213):Introduction to Computer Systems教材,A Programmer’s Perspective中文版,深入理解計算機系統(tǒng)(其實只能算簡單理解)介紹了程序表示、編譯鏈接、內存層次、內存分配等基礎知識,其中的實驗有很多精華內容。
另一門是MIT(6.003):Computer System Engineering教材,Principles of Computer System Design介紹了計算機系統(tǒng)設計的復雜性,抽象、模塊化等基本原理,主要以概念為主,實驗比較簡單。
兩門構建操作系統(tǒng)和分布式系統(tǒng)模塊的進階課程。
一門是MIT(6.828):Operating System Engineering學習一個類似Unix的代碼(xv6)實驗——構建一個小操作系統(tǒng)(JOS),包括啟動、內存管理、用戶環(huán)境、搶占式多任務、文件系統(tǒng)、網(wǎng)絡驅動等。
另一門是MIT(6.824):Distributed SystemsRPC,分布式一致性協(xié)議(Raft/Paxos),分布式事務,并發(fā)控制實驗——實現(xiàn)MapReduce系統(tǒng),分布式、可容錯的KV存儲系統(tǒng)等。
閱讀優(yōu)秀的開源代碼和相關的論文
一是學習新的系統(tǒng)構建語言現(xiàn)代C++,Rust,Go,Scala等。
二是閱讀優(yōu)秀的開源代碼,能為一些開源項目貢獻代碼,重復造一些輪子。
三是閱讀相關的論文,確定感興趣的方向,閱讀相關的論文(SOSP,OSDI,Usenix ATC, EuroSys,SoCC等)確定要做的系統(tǒng)。
動手實踐舉例——系統(tǒng)類競賽
第一個是國際大學生超算競賽,可以5~6人組隊參加任務。自行設計搭建計算集群(或使用云計算集群),對于給定的應用進行測試和優(yōu)化,還包含面試、海報、論文復現(xiàn)、口頭報告等環(huán)節(jié)。使用英語作為工作語言的三大比賽:ASC、ISC、SC。
第二個是“英特爾杯”全國并行應用挑戰(zhàn)賽。
第三個是CCF CCSP 大學生計算機系統(tǒng)與程序設計競賽。個人可以參賽,通過 CCF CSP 能力認證入圍任務,算法題與系統(tǒng)題特點:12小時5題;系統(tǒng)題的得分與選手程序的運行時間相關,性能最高的取得滿分。
參加科研項目
“MadFS分布式文件系統(tǒng)”“千萬核可擴展全球大氣動力學全隱式模擬”“非線性大地震模擬”“神圖”圖計算框架等。
人工智能算力是當前人工智能領域發(fā)展的關鍵。我們團隊最近幾年在AI算力基礎設施的架構平衡設計,AI算力的評測方法,百萬億參數(shù)超大預訓練模型的并行加速都做出了非常大的貢獻。我國需要加快AI算力基礎設施的構建,以及加快系統(tǒng)方面人才的培養(yǎng)。
編輯:黃飛
?
評論
查看更多