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