更多幹貨內容請關注微信公眾號“AI 前線”,(ID:ai-front)
OpenAI 這篇文章一出,很多人對之表示讚賞,但同時也引發了一些爭論,甚至一些人表示了對算力提升如此之快的擔憂,評論中有人發出疑問:
奇點會比預計的來的早嗎?
比摩爾定律還快,這很恐怖啊。
超級 AI 不會在智慧手機晶片,而是會在大規模雲端計算機上出現。這意味著這些公司計算水平提高的速度更重要。
還有一些專家大拿表示對文中一些觀點不敢苟同:
加州大學伯克利分校副教授 Ben Recht 在 Twitter 上吐槽,稱人們對算力增長的解讀簡直瘋狂,並連發幾條評論表明自己的觀點:
如果你把 Alphabet(財大氣粗的谷歌母公司)的研究工作排除掉,體現出來的趨勢就會完全不同。
從 VGG 到 ResNets(重大突破)並不需要算力指數級增長。
你怎麼不說從注意力 LSTMs 發展到注意力模型,翻譯的複雜性也降低了呢?
這裡所說的與 flop 提升最相關的應用(神經架構搜尋和資料)算不上什麼重大突破。
他還認為 Jeremy Howard 對這篇文章的點評很到位。
我認為這完全是在倒退。工程師們就喜歡玩這種遊戲,所以他們會用所能拿到的所有資源來做這件事。這個圖只能說明深度學習研究員能夠得到的資源變多了——僅此而已。
他的推文下有不少討論:
Jonathan Raiman:這篇文章的觀點難道不是這種趨勢表明我們有越來越多的方式來使用資料中心規模的計算力進行機器學習訓練,而且這些系統不是單臺機器,因此可以超越摩爾定律嗎? 這並不違反帕金森定律(官僚主義或官僚主義現象的一種別稱),但沒有這些進步,我們很難進行 1v1 dota 或 Alpha Zero 訓練。
Will Knight:OpenAI 的分析非常棒,但我不認為 AI 的效能總是會隨著計算能力的提高而進步。要是這樣的話,多搞些資料和 GPU 就可以解決所有問題了。
也有人回覆稱:
Smerity:我也傾向於相信 ML 力有不逮的一面,但是我覺得他們的觀點是說:是否存在一種基礎技術(架構搜尋,自動操作...),它可以利用巨大的算力完成特定任務,而完成此任務所需的算力是個天文數字。
AlphaGo / AlphaGoZero 在論文和部落格表現都太過完美了,贏得一場遊戲所需的計算量是令人吃驚的,希望有類似的技術提高能夠真正用於實際用途吧...
Jason Taylor:這是一個乘法效應:摩爾定律(對單個 GPU)和進入該領域的資本(買更多的 GPU)。
那麼到底是什麼樣的文章引起了這麼大的爭議呢?
AI 前線將 OpenAI 原文編譯如下:
對數標度
線性標度
該圖表顯示了以 petaflop / s-days 為單位的計算總量,用於訓練相對熟悉的選定結果,計算時長較長,並提供了足夠多的資訊來估計所用的計算力。petaflop/s-day (pfs-day) 指在一天時間內執行 10^15 次神經網路操作,或總計大約 10^20 次操作。計算時長作為一種度量,相當於能源的千瓦時。我們不測量硬體的峰值理論 FLOPS,而是估計實際操作的數量。我們單獨運作加法和乘法,將所有加法或乘法計算作為單次計算,而不考慮數值精度(這使得“FLOP”略微有點用詞不當),並忽略整合模型(http://web.engr.oregonstate.edu/~tgd/publications/mcs-ensembles.pdf )。文末附錄為該圖表的示例計算。達到最好效果時的翻倍時間顯示為 3.43 個月。
推動人工智慧發展的因素有三個:演算法創新、資料(可以是監督資料或互動式環境),以及可用於訓練的算力。演算法創新和資料一般很難度量,但計算力是可量化的,這使得衡量 AI 進步的因素成為可能。當然,使用大規模計算有時會暴露我們當前演算法的缺點。但至少在許多現有領域中,算力提高通常會帶來效能提高,並且往往是對演算法進步的補充。
本文中,我們認為與此相關的數字並不是單個 GPU 的速度,也不是最大資料中心的容量,而是用於訓練單個模型的計算量 - 這是與模型效能最為相關的數字。每個模型的計算與總體計算有很大不同,因為並行性(http://learningsys.org/nips17/assets/slides/dean-nips17.pdf 硬體和演算法)限制了模型的大小,或者訓練有用的部分有多少。當然,重要的突破仍然是通過適量的計算來實現的 - 本文僅涵蓋計算能力的內容。
這一趨勢為每年約增加 10 倍。其中一部分原因是定製硬體的進步,它使得系統能夠在一定價格條件下(GPU 和 TPU)每秒執行更多的操作,但這主要是由於研究人員努力尋找可並行使用更多晶片,讓操作更經濟促成的。
圖表顯示,算力發展的歷史大致可以分為四個不同的時代:
2012 年之前:將 GPU 用於 ML 並不常見,這導致圖表中的任何一項成果都很難實現。
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 年:允許更大演算法並行性的方法(如大批量、體系結構搜尋和專家級迭代)以及專用硬體(如 TPU 和更快的互連)大大提高了這些上限,至少對於某些應用程式而言。
AlphaGoZero / AlphaZero 是大規模使用並行演算法最有名的例子,現在這種規模的演算法在演算法上已經可用於許多其他應用程式,並且可能已經在生產環境中進行了。
我們有充足的理由相信,圖表中顯示的趨勢可能會繼續下去。許多硬體初創公司正在開發 AI 專用晶片,其中一些宣稱他們將在未來 1 - 2 年內大幅增加 FLOPS / Watt(與 FLOPS / $ 相關)。簡單地重新配置硬體以減少成本來完成相同數量的操作也可能會帶來更多收益。在並行性方面,原則上我們可以對上述許多的演算法創新做乘法組合,例如體系結構搜尋和大規模並行 SGD 相結合。
另一方面,成本最終將限制並行性,並且晶片的效率也有物理上的限制。我們知道,今天進行最大規模訓練所採用的硬體成本達數百萬美元(儘管攤銷成本要低得多),但目前大多數神經網路計算仍然用於推理(部署),而不是訓練,這意味著公司可以重新調整用途或購買更多的晶片進行訓練。因此,如果有足夠的經濟激勵措施,我們可以進行更大規模的平行訓練,從而使這一趨勢持續數年。資料顯示,全世界的硬體總預算每年達 1 萬億美元,因此絕對的限制還很遙遠。總的來說,考慮到上述資料,計算指數上漲的趨勢,在特定硬體上進行 ML,以及經濟激勵等因素,我們認為這種趨勢不會在短期內消失。
過去的趨勢不足以預測這種趨勢將持續多久,或者繼續下去會發生什麼。但即使是計算力的增長速度在合理預期範圍之內,也意味著從現在開始,我們有必要重視解決安全和惡意使用 AI 的問題了。前瞻之見對於負責任的決策和技術發展至關重要,我們必須走在這些趨勢之前,而不是在它到來時才幡然醒悟。
我們使用兩種方法用於生成這些資料點。當我們有足夠的資訊時,直接在每個訓練樣例中描述的架構中計算 FLOP 的數量(相加和相乘),並乘以訓練期間的前向和後向通道總數。當我們沒有足夠的資訊來直接計算 FLOP 時,我們檢視 GPU 的訓練時間和使用的 GPU 總數,並設定使用效率(通常為 0.33)。在大多數論文中,我們能夠使用第一種方法,但少數論文中我們使用第二種方法,並且儘可能對兩者進行一致性檢查。計算並不是精確的,我們的目標是把精確度保持在 2-3 倍的範圍內。以下是一些示例計算。
當作者給出正向傳遞中的運算元時,這種方法特別簡單,就像在 Resnet 論文中(特別是 Resnet-151 模型 https://arxiv.org/pdf/1409.4842.pdf )一樣:
運算也可以在一些已知的深度學習框架中以程式設計方式進行,或者我們可以簡單地手動計算。如果一篇論文提供了足夠的資訊來進行計算,結果會非常準確,但在某些情況下,論文不包含所有必要的資訊,作者也無法公開這些資訊。
如果我們不能直接進行計算,可以通過計算 GPU 數量和訓練時長,並根據 GPU 利用率估計運算量。我們強調,這裡不計算峰值理論 FLOPS,而是使用理論 FLOPS 的假定分數來估計實際 FLOPS。根據經驗,我們通常假設 GPU 的利用率為 33%,CPU 的利用率為 17%,除非我們有更具體的資訊(例如我們與作者交談或工作在 OpenAI 上完成)。
舉例來說,在 AlexNet 的論文中表示“我們的網路需要花費五到六天的時間在兩個 GTX 580 3GB GPU 上進行訓練”。根據我們的假設,這意味著總計算量為:
我們的目標是估計數量級。在實踐中,當兩種方法都可用時,通常效果很好(對於 AlexNet,我們也可以直接計算運算量)。
https://arxiv.org/abs/1207.0580
https://arxiv.org/abs/1311.2901
https://arxiv.org/abs/1312.5602
https://arxiv.org/abs/1409.3215
https://arxiv.org/pdf/1409.1556.pdf
https://arxiv.org/abs/1512.02595
大規模計算當然不是產生重要結果的必要條件,最近得出的許多重要結果就是僅使用了適量的計算力得出的。以下是使用適量計算力得出結果的一些例子,它提供了足夠的資訊來估算計算力。我們沒有使用很多方法來估計這些模型的計算結果,從上限來說,我們對所有缺失的資訊進行了保守估計,因此具有更大的整體不確定性。這對我們的定量分析並不重要,但挺有趣的,我們認為值得分享一下:
你需要的是注意力: 0.089 pfs-days (6/2017)
https://arxiv.org/abs/1706.03762
Adam 優化器: 少於 0.0007 pfs-days (12/2014)
https://arxiv.org/abs/1412.6980
學會匹配和翻譯: 0.018 pfs-days (09/2014)
https://arxiv.org/abs/1409.0473
GANs: 少於 0.006 pfs-days (6/2014)
https://arxiv.org/abs/1406.2661
Word2Vec: 少於 0.00045 pfs-days (10/2013)
https://arxiv.org/abs/1310.4546
變分自動編碼器: less than 0.0000055 pfs-days (12/2013)
https://arxiv.org/abs/1312.6114
感謝 Katja Grace、Geoffrey Irving、Jack Clark、Thomas Anthony 和 Michael Page 對本文的貢獻。
原文連結:
https://blog.openai.com/ai-and-compute/