標籤:

【AI計算的新摩爾定律】3.5個月翻一倍,6年增長30萬倍

【AI計算的新摩爾定律】3.5個月翻一倍,6年增長30萬倍

今天,OpenAI發布了一份關於AI計算能力增長趨勢的分析報告,報告顯示:自2012年以來,AI訓練中所使用的計算力每3.5個月增長一倍,自2012年以來,這個指標已經增長了30萬倍以上。

推動人工智慧發展的因素有三個:演算法創新、數據(可以是有監督的數據或互動式的環境),以及可用於訓練的計算量。演算法創新和數據很難追蹤,但計算量是可量化的,這為衡量人工智慧的進展速度提供了機會。當然,大規模計算的使用有時候會暴露當前演算法的缺點。但至少在當前的許多領域中,更多的計算似乎就可以預見更好的性能,並且計算力常常與演算法的進步相輔相成。

對於「計算能力」,我們知道著名的「摩爾定律」(Moores law):集成電路上可容納的元器件的數目,約每隔 18-24 個月便會增加一倍,性能也將提升一倍。

今天,非盈利的AI研究機構OpenAI發布了一份「AI與計算」的分析報告,報告顯示:

自2012年以來,在最大的AI訓練運行中所使用的計算力呈指數增長,每3.5個月增長一倍(相比之下,摩爾定律的翻倍時間是18個月)。

自2012年以來,這個指標已經增長了30萬倍以上(如果增長一倍的時間需要18個月,僅能增長12倍)。

計算能力的提升一直是AI進步的一個關鍵要素,所以只要這種趨勢繼續下去,就值得我們為遠遠超出當今能力的AI系統的影響做好準備。能力的AI系統的影響做好準備。

AI計算的「摩爾定律」:3.43個月增長一倍

對於這個分析,我們認為相關的數字不是單個GPU的速度,也不是最大的數據中心的容量,而是用於訓練單個模型的計算量——這是與最好的模型有多麼強大最為相關的數字。

由於並行性(硬體和演算法)限制了模型的大小和它能得到有效訓練的程度,每個模型的計算量與計算總量的差別很大。當然,少量的計算下仍取得了許多重要的突破,但這個分析僅涵蓋計算能力。

Log Scale

上面的圖表顯示了用來訓練一些著名模型並得到較好結果的計算總量,單位是petaflop/s-days,使用了大量時間計算,並提供了足夠的信息來估計所使用的計算。1 petaflop/s-days(pfs-day)是指一天執行每秒10的15次方次神經網路操作,或總計10的20次方次操作。這個compute-time的單位是為了方便,類似於能量量度單位千瓦·時(kW-hr)。

我們沒有測量硬體的峰值理論FLOPS,而是嘗試估計執行的實際操作的數量。我們將加法和乘法作為單獨的操作,將任何相加或相乘計算為一個操作,而不考慮數值的精度(因此「FLOP」不太適當),並且我們忽略了集成模型。在本文附錄中提供了該圖表的示例計算。

Linear Scale

結果顯示,最優擬合線的翻倍時間(doubling time)是3.43個月。

這一趨勢每年以10倍的速度增長。部分原因是由於定製硬體,允許在一定的價格下(GPU和TPU)每秒執行更多的操作。但更主要的因素是研究人員不斷地尋找新的方法來並行地使用更多的晶元,並願意支付更大的成本。

4個時代

從上面的圖表,我們可以大致劃分為4個時代:

2012年之前:為機器學習使用GPU並不常見,因此圖表中的任何結果都很難實現。

2012年至2014年:在多個GPU上訓練的架構並不常見,因此大多數結果使用1-8個GPU,性能是1-2 TFLOPS,總計為0.001-0.1 pfs-days。

2014年至2016年:大規模使用10-100個GPU,性能為5-10 TFLOPS,結果為0.1-10 pfs-days。數據並行性的收益遞減意味著更大規模的訓練運行的價值是有限。

2016年到2017年:允許更大的演算法並行性的方法,例如大的batch size、架構搜索和專家迭代(expert iteration),以及TPU等專用硬體,更快的互連等,大大增加了這些限制,至少對某些應用程序來說是如此。

AlphaGoZero / AlphaZero是大規模演算法並行性最顯著的一個示例,但現在其他許多這樣大規模的應用程序在演算法上已經是可行的,並且可能已經在生產環境中應用。

這種趨勢將持續下去,我們必須走在它前面

我們有很多理由認為圖表裡顯示的趨勢可以繼續下去。許多硬體初創公司都在開發AI專用的晶元,有些公司宣稱他們在未來1-2年內將能夠大幅提高FLOPS / Watt(這與經濟成本緊密相關)。通過簡單地重新配置硬體以降低經濟成本,也可以完成相同數量的操作。在並行性方面,以上描述的許多最近的演算法創新原則上都可以結合在一起——例如,架構搜索演算法和大規模並行的SGD。

另一方面,成本最終將限制這個趨勢的平行度,物理學也將限制晶元的效率。我們認為,目前最大規模的訓練運行採用的硬體成本僅為數百萬美元(儘管攤銷成本要低得多)。但目前大多數神經網路計算仍然用於推理(部署),而不是訓練,這意味著公司可以重新調整用途或購買更多的晶元進行訓練。因此,如果存在足夠的經濟刺激,我們可以看到更多的大規模並行訓練,從而使這一趨勢持續數年。全世界的硬體總預算每年達1萬億美元,因此絕對的限制依然很遠。總的來說,考慮到上述數據、計算指數趨勢的先例、機器學習特定硬體的研究以及經濟激勵,我們相信這種趨勢將持續下去。

對於這種趨勢將持續多久,以及持續下去會發生什麼,用過去的趨勢來預測是不足夠的。但是,即使計算能力迅速增長的潛力處於合理範圍,也意味著今天就開始解決AI的安全問題和惡意使用問題是至關重要的。遠見對於負責任的政策制定和負責任的技術發展都至關重要,我們必須走在這些趨勢前面,而不是對趨勢反應遲鈍。

方法和最新結果

兩種方法用於生成這些數據點。當我們有足夠的信息時,我們直接在每個訓練樣例中描述的架構中計算FLOP的數量(相加和相乘),並乘以訓練期間的前向和後向通道總數。當我們沒有足夠的信息來直接計算FLOP時,我們查看了GPU的訓練時間和使用的GPU總數,並假設了使用效率(通常為0.33)。對於大多數論文,我們能夠使用第一種方法,但對於少數論文,我們依賴第二種方法,並且為了進行一致性檢測,我們儘可能計算這兩個指標作為。 在大多數情況下,我們也向作者證實了這一點。計算並不是精確的,但我們的目標是在2-3倍的範圍內做到正確。我們在下面提供一些示例計算。

案例1:計數模型中的操作

當作者給出正向傳遞使用的操作數時,這種方法特別容易使用,就像在Resnet論文中(特別是Resnet-151模型)一樣:

這些操作也可以在一些深度學習框架中以編程方式計算已知的模型體系結構,或者我們可以簡單地手動計算操作。如果一篇論文提供了足夠的信息來進行計算,它將會非常準確,但在某些情況下,論文不包含所有必要的信息,作者也無法公開它。

方法2的示例:GPU時間

如果我們不能直接計算,我們可以看看有多少GPU經過多長時間的訓練,並且在GPU利用率上使用合理的猜測來嘗試估計執行的操作次數。我們強調,這裡我們不計算峰值理論FLOPS,但是使用理論FLOPS的假定分數來嘗試猜測實際FLOPS。 根據我們自己的經驗,我們通常假設GPU的利用率為33%,CPU的利用率為17%,除非我們有更具體的信息(例如我們有和作者進行交流或在OpenAI上完成這些工作)。

舉個例子,在AlexNet的論文中提到「在兩個GTX 580 3 GB的GPU上,訓練我們的網路需要5到6天的時間」。在我們的假設下,這意味著總計算:

這種方法近似度更高,可以很容易地減少2倍或以上,我們的目標僅僅是估計數量級。在實踐中,當這兩種方法都可用時,它們通常會很好地排列(對於AlexNet來說,我們也可以直接計算操作,在GPU時間方法上,計算結果分別是 0.0054 pfs-days和0.0058 pfs-days。

使用適量計算的最新結果

大規模計算當然不是產生重要結果的要求。最近許多值得注意的結果僅使用適量的計算。 以下是使用適度計算的結果的一些例子,它提供了足夠的信息來估計它們的計算。我們沒有使用多種方法來估計這些模型的計算結果,對於上限,我們對任何缺失的信息進行了保守估計,因此它們具有更大的整體不確定性。這些估計對我們的定量分析並不是十分重要,但我們仍然認為它們很有趣,值得分享:

(本文首發於新智元微信公眾號:AI_era,歡迎關注!)


推薦閱讀:

安識科技殷曉明:道阻且長,欣然前往 | 新銳
服務治理-數據標準欄位修改
有哪些科技公司的愚人節玩笑已經成為真實了?
基於斜率控制的開關損耗和電磁兼容分析
中國黑客界傳奇人物,16歲已經在征服世界

TAG:科技 |