0
作者 | 蔣寶尚
編輯 | 叢 末
摩爾定律預(yù)測(cè)芯片性能每18個(gè)月翻一倍,那 AI 算法性能多少個(gè)月翻一番?
答案是16個(gè)月。
圖注:藍(lán)點(diǎn)是給定時(shí)間的最低計(jì)算機(jī),灰點(diǎn)是測(cè)量值。
觀察結(jié)果是每16個(gè)月性能翻一倍。近日,OpenAI針對(duì)AI算法在過(guò)去數(shù)年中性能的提升做了一個(gè)詳細(xì)的分析。他們發(fā)現(xiàn),自2012年以來(lái),在 ImageNet 分類上訓(xùn)練具有相同性能的神經(jīng)網(wǎng)絡(luò),所需要的計(jì)算量,每16個(gè)月降低一倍。
與2012年相比,現(xiàn)在將神經(jīng)網(wǎng)絡(luò)訓(xùn)練到 AlexNet 的性能,所需的計(jì)算量?jī)H為原來(lái)的1/44(相比之下,摩爾定律僅降低為1/11)。若將“算法效率”定義為:減少訓(xùn)練特定任務(wù)所需的計(jì)算量。我們還可以看到:
在ImageNet上,ResNet-50 級(jí)別的訓(xùn)練效率翻倍時(shí)間大約為17個(gè)月;
在WMT’14的翻譯任務(wù)上,Transformer相比seq2seq,訓(xùn)練的“算法效率”提升了61倍,所用時(shí)間約為 3 年,也即翻倍時(shí)間為 6 個(gè)月;
在圍棋任務(wù)上,AlphaGo Zero所需的計(jì)算量是AlphaZero的1/8,翻倍時(shí)間僅為 4 個(gè)月;在Dota 任務(wù)上,翻倍時(shí)間僅為 25 天?。?!
所有這些結(jié)果表明,對(duì)于近期投入大量資金的這些 AI 任務(wù),算法上的進(jìn)步相比硬件的進(jìn)步(服從摩爾定律,每18個(gè)月翻倍),能產(chǎn)生更多的效益。
如果用有效計(jì)算的概念把AI和計(jì)算的趨勢(shì)結(jié)合起來(lái),那么,其表現(xiàn)就如下圖所示:AI和計(jì)算的趨勢(shì)被分解為硬件效率(摩爾定律)以及金錢和并行化(money/parallelization)之后,算法效率的提升只占總體提升的一部分。
主要衡量指標(biāo)
前面也提到,所使用的衡量方法對(duì)現(xiàn)有的開源項(xiàng)目的再實(shí)現(xiàn)。
另外OpenAI還在體系結(jié)構(gòu)之間進(jìn)行了少量超參數(shù)調(diào)整以及小范圍的調(diào)優(yōu)。
使用的計(jì)算是基于以下結(jié)果:
1、每個(gè)圖像的浮點(diǎn)計(jì)算,由PyTorch庫(kù)計(jì)數(shù)
2、圖片每個(gè)epoch的數(shù)量
3、架構(gòu)的性能優(yōu)于或等于OpenAI訓(xùn)練的AlexNet模型所需的時(shí)間間隔數(shù)。
據(jù)OpenAI介紹,其很大程度上遵循了PyTorch示例模型中建議的超參數(shù),對(duì)于每一個(gè)模型都使用SGD進(jìn)行訓(xùn)練,批次大小為256,沖量(momentum)為0.9,權(quán)重衰減設(shè)置為1e-4。對(duì)于預(yù)處理的架構(gòu),例如GoogleNet 和 VGG,學(xué)習(xí)率為0.01,對(duì)于其他架構(gòu)學(xué)習(xí)率為0.1。
RESNET-50學(xué)習(xí)曲線
如圖所示對(duì)于AlexNet,作者遵循了原始論文的學(xué)習(xí)率表(learning rate schedule),每30個(gè)epoch衰減10倍,其他的則降低1000倍的學(xué)習(xí)率。
為了檢查超參數(shù)設(shè)置是否合理,作者在ResNet18上進(jìn)行了掃描,并將初始學(xué)習(xí)率設(shè)置為0.0316、0.1以及0.316,總的衰減率為250X,1000X,以及2500X。
另外,對(duì)于除AlexNet以外的所有模型,作者對(duì)學(xué)習(xí)率及進(jìn)行了平滑處理,如上圖所示,顯然這對(duì)早期的學(xué)習(xí)非常重要。
在論文中,OpenAI還提到,除了效率,還有許多其他衡量標(biāo)準(zhǔn)揭示了人工智能領(lǐng)域的整體算法進(jìn)展,畢竟算法還受到底層硬件、硬件利用率以及云設(shè)施的改進(jìn)影響。例如當(dāng)處于低數(shù)據(jù)體系時(shí),樣本效率是關(guān)鍵。當(dāng)考慮到經(jīng)濟(jì)效益時(shí)候,GPU、參數(shù)、FLOPs(浮點(diǎn)運(yùn)算次數(shù))推理效率的提高也很有意義。
前面也提到,從2012年到目前,實(shí)現(xiàn)AlexNet級(jí)別性能所需的計(jì)算減少到了原來(lái)的1/44。
另外,作者還將訓(xùn)練效率的進(jìn)步分為數(shù)據(jù)效率和減少每個(gè)時(shí)間段所需的FLOP數(shù)量。如下表所示,將總訓(xùn)練效率收益分解為每一epoch的訓(xùn)練周期和每一epoch的浮點(diǎn)運(yùn)算數(shù)。
另一個(gè)觀察結(jié)果是:基于FLOPs的學(xué)習(xí)曲線。這可以幫助理清模型之間的比較。如下圖所示,與其他模型相比,某些模型(例如ShuffleNet_v2)使用比較少的計(jì)算量就能達(dá)到其他模型(例如AlexNet)能夠達(dá)到的準(zhǔn)確率。
Vgg-11的最大精度要比AlexNet高,但達(dá)到相同精度所需要花費(fèi)的計(jì)算量卻要比AlexNet大很多。另一方面,如果綜合考慮算力和準(zhǔn)確率,則ResNet50優(yōu)于VGG-11,GoogLeNet優(yōu)于AlexNet。第三個(gè)觀察結(jié)果是:ResNet-50分類性能效率提升和AlexNet類似,而圍棋、Dota和機(jī)器翻譯等任務(wù)的效率提升速度相比AlexNet要快很多。如下表所示,就浮點(diǎn)運(yùn)算而言,給定任務(wù),其計(jì)算效率都有不同程度提高。
再放一次
另外,更為細(xì)致的觀察發(fā)現(xiàn),1)翻譯任務(wù)在較短的時(shí)間內(nèi)取得的進(jìn)步比CV更大;2)對(duì)圍棋和DOTA的觀察時(shí)間比較短,但只要在接下來(lái)的 5 年里,在圍棋上再有三倍,DOTA上再有5倍的性能提升,它們的效率增益就能超過(guò)視覺(jué)任務(wù)了。
另外,在利用ImageNet完成相關(guān)推理任務(wù)時(shí),效率的提升同樣是明顯的:
1、Shufflenet實(shí)現(xiàn)了AlexNet級(jí)別的性能,推理效率在5年內(nèi)提高了18倍(15個(gè)月翻一番);
2、EfficientNet-b0在3年半的時(shí)間內(nèi)就達(dá)到了ResNet-50級(jí)別的性能,推理效率提高了10倍。
當(dāng)然,此次對(duì)計(jì)算效率的測(cè)量還是存在局限性的。
首先,尚不清楚觀察到的效率趨勢(shì)在多大程度上可以泛化到其他AI任務(wù)上。也就是說(shuō),在Al領(lǐng)域中是否存在一個(gè)與摩爾定律相當(dāng)?shù)摹癆I定律”,還不能得出肯定的結(jié)論。
其次,算法效率的提升只是進(jìn)步的一個(gè)表現(xiàn),此次分析并沒(méi)有量化整體的進(jìn)步。畢竟AI能力進(jìn)步背后是整體概念的表現(xiàn),而不僅僅是效率的提升。
此外,本分析主要關(guān)注模型的最終訓(xùn)練運(yùn)行成本(final training run cost),并不是總開發(fā)成本(total development costs)。
一些算法上的改進(jìn)使超參數(shù)的空間變得更大,從而可以更穩(wěn)定地訓(xùn)練模型。另一方面,架構(gòu)搜索也增大了最終訓(xùn)練運(yùn)行成本和總開發(fā)成本之間的差距。
一般來(lái)說(shuō),算法的改進(jìn)是推動(dòng)AI進(jìn)步的關(guān)鍵因素,動(dòng)態(tài)測(cè)量SOTA算法效率的改進(jìn),將有助于評(píng)估算法效率提升的質(zhì)量,推動(dòng)AI算法的改進(jìn)。由于硬件和算法效率提升可以相互疊加,所以AI的進(jìn)步應(yīng)該綜合考慮這兩者的情況。
(雷鋒網(wǎng))、(雷鋒網(wǎng))、(雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。