算力,作為人工智能“三駕馬車”之一,也是人工智能“新基建”的重點。在2020世界計算機大會名家講堂上,中國工程院院士、清華大學計算機科學與技術系教授鄭緯民圍繞高性能人工智能算力基礎設施的重要性和架構(gòu)進行了闡述,并詮釋了人工智能算力評估的意義。
人工智能算力基礎設施的重要性
今年4月,國家發(fā)改委首次明確了“新基建”的范圍。人工智能是“新基建”的內(nèi)容之一?!靶禄ā敝幸欢〞ê芏噱X。新時代人工智能的發(fā)展包含大數(shù)據(jù)、算法和算力。對于人工智能“新基建”而言,需要花不少錢購買一臺大機器,用來處理其中人工智能算力的問題。
人工智能有多種多樣的應用場景,主要包括三類。
第一類應用是圖像檢測、視頻檢索。這人工智能算力基礎設施的重要性
今年4月,國家發(fā)改委首次明確了“新基建”的范圍。人工智能是“新基建”的內(nèi)容之一。“新基建”中一定會花很多錢。新時代人工智能的發(fā)展包含大數(shù)據(jù)、算法和算力。對于人工智能“新基建”而言,需要花不少錢購買一臺大機器,用來處理其中人工智能算力的問題。
人工智能有多種多樣的應用場景,主要包括三類。
第一類應用是圖像檢測、視頻檢索。這一類相當于人臉識別。學術上,其核心是卷積網(wǎng)絡。這類應用不需要太大的機器,主要出現(xiàn)在安防、醫(yī)療診斷和自動駕駛領域。例如,坐飛機安全檢查的地方需要人臉識別,把口罩摘了,識別一下就可以通過,后面沒有成千上萬的大機器進行人臉識別。這類應用現(xiàn)在已經(jīng)取得了很好的落地成果。
第二類應用是博弈決策。這個問題學術上的核心是強化學習。其最典型的例子是AlphaGo。AlphaGo不需要非常大的機器。它與圍棋冠軍比賽取得勝利,并且也可以完成其他決策類的任務。這類應用也非常好。
上述兩類應用不需要大機器,但第三類應用——自然語言處理需要。
自然語言處理需要很大的算力,也就需要很大的機器。其發(fā)展非常迅速,典型模型包括GPT-1、GPT-2、GPT-3、BERT。它能做什么事情?一是語言翻譯。將中文翻譯為英文,將英文翻譯為日文,將日文翻譯為阿拉伯文……二是自動問答。不僅能夠回答簡單的問題,而且需要能夠回答非常復雜的問題。三是生成文本摘要和創(chuàng)作。需要機器在讀完一篇文章之后寫出三句話的摘要,或者需要機器將給定的三句話擴寫成一篇文章、一部劇本。這類應用問題中有些很復雜,要求機器具有很大的規(guī)模。
語言模型發(fā)展迅速。2015年,馬斯克和其他人創(chuàng)建了OpenAI公司。2019年,OpenAI核算了從2012年以來所有模型所用的計算量。結(jié)果發(fā)現(xiàn),最大規(guī)模人工智能模型所需算力已經(jīng)增長了30萬倍,每三四個月翻一番,也就是說每三四個月計算機的算力擴大一倍,這比摩爾定律厲害。摩爾定律指出,芯片性能翻倍的周期是18至24個月。今年5月,微軟推出了一臺專門為OpenAI設計的超級計算機,托管在Azure上。這臺機器包含超過28.5萬個處理器內(nèi)核、1萬塊 GPU,處理人工智能問題。其每個顯卡服務器的連接速度為400Gbps/s,它的性能在超級計算機排名中可以排到前五。
GPT-1在2018年6月發(fā)布,擁有1.17億個參數(shù),預訓練數(shù)據(jù)量約5GB。2019年2月發(fā)布的GPT-2,擁有15億個參數(shù),預訓練數(shù)據(jù)量40GB。2020年2月發(fā)布的Turing NLG參數(shù)達到170億個。今年5月發(fā)布GPT-3,截至到今年7月,擁有1750億個參數(shù),比Turing NLG增加了10倍以上,比GPT-2增加了116倍以上,其預訓練數(shù)據(jù)量是45TB。
參數(shù)越多,計算效果越好,需要的機器也就越大。這就引發(fā)一個問題:在哪臺機器上能夠訓練這么復雜、參數(shù)數(shù)量這么多的模型?
根據(jù)GPT-3 的論文,所有模型都是在高帶寬集群中的英偉達V100 GPU上進行訓練的,訓練費用預估為1200萬美元。1萬塊英偉達V100 GPU大概需要訓練15天。
下一代人工智能的發(fā)展將繼續(xù)大規(guī)模人工智能算力基礎設施的支持。GPT-3取得了很好的進步,但與人類智能相比還有很大差距。人腦有100億個神經(jīng)元,有100萬億個突觸,GPU與此相比還距離很遠。因此,下一代人工智能模型可能具有超過萬億個參數(shù)。圖靈獎獲得者Geoffrey Hinton認為,如果模型的參數(shù)個數(shù)是4.398萬億,即現(xiàn)在GPT-3參數(shù)數(shù)量的25倍,就可以包含一切,但現(xiàn)有計算機系統(tǒng)無法勝任其訓練任務。
自然語言處理需要機器無止境的算力。當前,國內(nèi)外很多人說“人工智能需要很大的算力”“人工智能需要很大的機器”,這里的“人工智能”所指的是自然語言處理這一類問題。
人工智能算力基礎設施的架構(gòu)
人工智能算力基礎設施的系統(tǒng)結(jié)構(gòu)要素與傳統(tǒng)高性能計算機器的組成是差不多的,都是處理器、內(nèi)存、存儲、互連網(wǎng)絡幾個部分。
具有代表性的處理傳統(tǒng)高性能計算(傳統(tǒng)科學計算)的機器有以下四臺。
第一臺機器是天河2號。天河2號是由國防科技大學做的,在2013年6月至2015年11月期間位于世界Top500評比第一名。國際上,每年對這一領域的機器排名兩次,6月一次,11月一次。天河2號最關鍵、最有特點之處在于引入了異構(gòu)加速器。在這之前,做高性能機器使用的所有CPU都是同構(gòu)的。
第二臺機器是神威太湖之光。神威太湖之光是由無錫的一個部隊研究所做的,在2016年6月至2017年11月期間多次位于世界Top500評比第一名。它最精彩的地方在于所有的芯片都是自己造的,采用了全國產(chǎn)異構(gòu)眾核處理器。
第三臺機器是Summit。Summit是由美國人做的,在2018年6月至2019年11月期間排名位于世界Top500評比第一。其中使用了NVLink連接的GPU、本地NVMe SSD存儲等設備。
第四臺機器是富岳。富岳是由日本人做的,在今年6月世界Top500評比時位居第一名。它使用了同構(gòu)向量處理器、高維互聯(lián)網(wǎng)絡,能夠?qū)崿F(xiàn)半精度優(yōu)化。
深圳鵬城實驗室在建的鵬城云腦二期花費了42億元制造,它是一臺很大的機器,用于處理人工智能問題。它包括4套華為Atlas 900系統(tǒng),每套系統(tǒng)128個結(jié)點,每個結(jié)點有8塊華為的昇騰加速卡,每套系統(tǒng)有1024塊加速卡。相當于你把它看成了有1024塊GPU卡,英偉達叫GPU,我們叫升騰。鵬城云腦二期由4套系統(tǒng)結(jié)點間用200Gbps網(wǎng)絡互聯(lián),全交換無帶寬裁剪,全局共享存儲。最后總的計算性能達到半精度1Eflops,雙精度1Pflops。
人工智能算力系統(tǒng)與傳統(tǒng)高性能計算系統(tǒng)之間在處理器、互聯(lián)網(wǎng)絡和存儲系統(tǒng)三個方面都存在著區(qū)別。
它們最大的區(qū)別在處理器方面。傳統(tǒng)高性能計算系統(tǒng)以雙精度性能優(yōu)化,兼顧低精度計算,更大規(guī)模的機器甚至需要采用80位或者128位的高精度。它處理的問題本身很大,因此高性能計算系統(tǒng)可以處理80位或者128位是很厲害的。人工智能算力系統(tǒng)處理人工智能問題,也就是處理圖像檢測和視頻檢索問題、博弈決策問題、自然語言處理問題。這不需要80位、128位,半精度的性能就足夠了。有些8位、16位即可,最多32位。它著重半精度計算性能,面向神經(jīng)網(wǎng)絡運算的優(yōu)化。因此,我們經(jīng)常說,用傳統(tǒng)高性能計算系統(tǒng)處理的人工智能問題是不匹配、不合適的。
在互聯(lián)網(wǎng)絡方面,傳統(tǒng)高性能計算系統(tǒng)一般從全系統(tǒng)角度考慮網(wǎng)絡拓撲和通信需求,而人工智能算力系統(tǒng)需要高性能參數(shù)平面網(wǎng)絡連接訓練單一模型的加速器組。
在存儲系統(tǒng)方面,傳統(tǒng)高性能計算系統(tǒng)一般采用Lustre等全局并行文件系統(tǒng),支持MPI-IO,而人工智能算力系統(tǒng)局部高性能存儲(NVMe SSD)存放訓練數(shù)據(jù)集,避免從全局文件系統(tǒng)讀取數(shù)據(jù)造成瓶頸。
更大的機器能做什么?這是一個持續(xù)已久的爭論。在計算機領域,特別是在高性能計算機領域,在機器做出來之前,是沒有確定性應用的,它是應用驅(qū)動型的。湖南大學國家超級計算長沙中心的傳統(tǒng)高性能計算機器在七八年前剛出來時,人們都沒想到它能夠處理這么大的問題。最近,面對新冠肺炎疫情,這臺機器能夠處理人從外地到長沙的軌跡,很快將病人找出來。大規(guī)模的機器做出來之后,還會促進應用的發(fā)展。這是與其他學科不一樣的地方。因此,我們說,更大的機器不僅是將已有的問題算得更快,更重要的是解決現(xiàn)在不能解決的問題。
人工智能算力的評估方法
現(xiàn)在,北京、珠海、嘉興、武漢、成都等多個城市,以及華為、海爾、曙光、國防科技大學等多家企業(yè)單位,都在花錢建設人工智能機器。那么,我們有沒有基準來評價這臺機器好不好、適不適合做人工智能?
我們?yōu)槭裁葱枰粋€人工智能算力基準測試程序?
截至目前,還沒有一個比較合理、公平的評測用于考量人工智能機器好不好。公眾需要一個簡單的指標來回答,需要一個簡單的程序測試哪套系統(tǒng)的人工智能算力更強。測完后會產(chǎn)生一個簡單的數(shù)據(jù)值結(jié)果,用這個數(shù)據(jù)值的大小反映這臺機器對人工智能問題處理的水平如何。這個基準測試程序做好了,整個領域會發(fā)展得更好。如果全國各地各單位做的機器測試后的數(shù)值結(jié)果都是0.1,說明我們國家人工智能機器的水平不高;如果我們的機器測試后的數(shù)值結(jié)果有不少0.98、0.7,說明我們國家人工智能機器的水平很高,因為滿分就是1。另外,好的指標還可以反映出人工智能機器的問題,從而引領該領域的健康發(fā)展。
傳統(tǒng)高性能計算機器的測試結(jié)構(gòu)與人工智能需要的性能不完全一致。傳統(tǒng)的高性能計算機器已經(jīng)有了一個評測軟件,世界Top500排名就是以它為基準的,水平最好就是Top500的第一名,很差就在500名以外。大家都認可用這個軟件進行傳統(tǒng)高性能計算機器的排名。這個高性能計算算力測試程序主要使用雙精度浮點數(shù)運算的算法,測試做雙精度加減乘除計算的能力,反映了通用科學計算的問題,因此適用于測評傳統(tǒng)的機器。但這個軟件不適用于測評人工智能機器。人工智能訓練以單精度浮點數(shù)或者16位浮點數(shù)為主,推理以Int8位為主。
有人陸續(xù)在進行人工智能性能基準測試程序的研究開發(fā)。一些人所做的測試程序是規(guī)模固定的,支持由16個CPU構(gòu)成的人工智能機器進行測試。一些人所做的程序需要測試多個應用,測試一次得一分,之后再測試另一個。最明顯的一個就是hpl-ai。這個軟件是由測試Top500的團隊做的,它很好地處理了混合精度研究,但這個軟件本身和人工智能的關系不直接。我們希望有一個軟件專門處理人工智能問題,而不是隨便寫一個軟件測試加減乘除各種問題,然后再間接與人工智能問題相關。還有人所做的測試程序是最終產(chǎn)生多個分數(shù)的。
在我看來,現(xiàn)有的人工智能基準測試程序都不是太好。我們預期的人工智能算力基準測試程序應當具備下面幾點特性。
第一,一個分數(shù)。我們希望有0.98、0.9這樣非常明顯、簡單的分數(shù)。分數(shù)越接近1說明機器水平越高。
第二,可變的問題規(guī)模。這個軟件既可以適應單卡內(nèi)存規(guī)模的變化,也可以適應多卡;既可以測試小規(guī)模的機器,也可以測試中規(guī)模的和大規(guī)模的機器。我們現(xiàn)在做人工智能處理問題,比如說機器學習,大多數(shù)人只買一塊GPU卡,用在原來的服務器上直接做人工智能的深度學習,結(jié)果比原來沒有插這塊卡的普通CPU速度快10倍,人們就很滿意。一些人有錢買第二塊卡,問題是國內(nèi)大多數(shù)做機器學習的人不會在二塊卡上處理問題,更不會在四塊卡、一萬塊卡上處理問題。因此,我們需要一個軟件,既能夠適應一塊卡,也能夠適應二塊卡、四塊卡行、一萬塊卡。目前,有些人已經(jīng)使用十六塊卡,但大多數(shù)人仍然只使用一塊卡。因此,擴展是一件難度很高的事。
第三,計算要有人工智能的意義。這個軟件要反映人工智能本質(zhì),處理的是人工智能問題,需要面向神經(jīng)網(wǎng)絡運算。
第四,多機通信可以少,但不能沒有,也不能是EP類型的。
對人工智能算力來說,制定這樣一個指標和測試方法并不容易。首先,單個人工智能訓練任務很可能達不到全機規(guī)模。即使能達到,可能在訓練時間和準確率上也沒有改進,使用全機規(guī)模是沒有意義的。其次,如果要測試規(guī)模變化巨大的人工智能集群計算機,測試程序必須是規(guī)??勺兊摹D敲?,什么樣的主流人工智能應用是規(guī)模可以大幅變化的?最后需要考慮準確率的問題。殘差小于給定標準?還是將準確度計入分數(shù)?
清華大學與國防科技大學合作做了一個軟件,已經(jīng)在很多臺機器上進行過測試。
我們的設計思路是AutoML。AutoML是通過算法自動搜索合適的神經(jīng)網(wǎng)絡模型結(jié)構(gòu),找到針對特定任務效果最好的解。其所需的計算資源極高,基礎算法也包含訓練模型本身。AutoML+NN現(xiàn)有兩個主要方面:超參數(shù)搜索、網(wǎng)絡結(jié)構(gòu)搜索。超參數(shù)搜索易于實現(xiàn),但搜索空間存在一定限制(~100);網(wǎng)絡結(jié)構(gòu)搜索搜索空間往往較大(~10000)。AutoML具有足夠的并行度,常常需要同時訓練大量候選模型來對結(jié)構(gòu)進行評估。其搜索的結(jié)果雖然有一定的隨機性,但整體上能找到的解的優(yōu)劣程度隨著搜索所消耗的計算量而逐漸改善。
這個基于AutoML的基準程序測試終止條件為:運行一段時間(如24小時),或精度已收斂。其量度指標為運行過程中達到的ops。其任務自身是深度學習任務設計中的關鍵環(huán)節(jié),且任務能夠直接體現(xiàn)超算系統(tǒng)在深度學習方面的綜合性能(包括訓練、推斷);找到的解的優(yōu)劣程度隨著搜索所消耗的計算量而逐漸提升;可以換算成計算效率(%)。
(本文根據(jù)中國工程院院士、清華大學計算機科學與技術系教授鄭緯民在“2020世界計算機大會”名家講堂現(xiàn)場演講整理而成,未經(jīng)演講人審閱)