OpenAI披露最新研究成果:AI训练如何扩展到更大规模?
我們發現,梯度噪聲尺度(gradient noise scale),作為一種簡單的統計量,可以預測神經網絡訓練在諸多任務上的并行性。由于復雜的任務往往具有更強噪聲的梯度,因此增長的大批次規??赡茉谖磥碜兊酶佑杏?#xff0c;也消除了AI系統進一步發展的一個潛在限制。更廣泛地說,這些結果表明,神經網絡訓練并不需要被看成一門神秘的藝術,而是可以得到嚴格的規范化和系統化。
在過去幾年內,AI研究人員采用數據并行化技術——將大批次數據分散到很多臺機器上,在加速神經網絡訓練方面不斷取得成功。研究人員成功地使用成千上萬個批次進行圖像分類和語言建模,甚至使用數百萬個批次訓練RL代理來玩Dota2游戲。這些大批次使單個模型的訓練中能夠具有越來越多的計算量,成為AI訓練計算快速增長的重要推動者。然而,過大的批次規模呈現出算法回報快速降低的情況,而且不清楚為什么對某些任務來說這些限制過大,而對其他任務來說這些限制又過小[1]。
梯度噪聲尺度(基于訓練的近似平均)解釋了跨六個數量級的一系列任務中關鍵批次大小的絕大多數變化(r^2 = 80%)。批次大小采用圖像、令牌(用于語言模型)、或觀察值(用于游戲)的數量來衡量。我們發現,通過測量梯度噪聲尺度——一個可用于量化網絡梯度信噪比[2]的簡單統計量,我們可以近似預測最有效的批次大小。受其啟發,噪聲尺度度量了數據中能夠被模型觀測到的變化(在給定的訓練階段)。當噪聲尺度小時,快速地并行查看大量數據變得冗余;而當噪聲尺度大時,我們仍能夠從大批次的數據中學到很多信息。
這種類型的統計量被廣泛應用于樣本大小選擇,并被提出用于深度學習,但是還沒有被系統地度量或應用于現代模型訓練運行。我們在上圖所示各種機器學習任務上驗證了這種預測,包括圖像識別、Atari游戲和Dota。具體來說,我們在這些任務中采用各種批次大小進行訓練(每個任務單獨調整學習率),并將訓練加速與噪聲尺度預測出來的結果進行比較。由于大批量通常需要仔細昂貴的調整或特殊的學習率規劃才能有效,因此提前預知上限給訓練新模型提供了重大的實踐價值。
我們發現,訓練的掛鐘時間和用于訓練的總體計算量(與美元成本成比例)之間的折中對比,有助于可視化這些實驗結果。在非常小的批次大小情形中,增大一倍的批次大小能減半訓練時間的同時不帶來額外的計算(用一半的時長跑兩倍的數據)。在非常大的批次大小情形中,更多的并行化并不會導致更快的訓練。曲線的中間有一個“拐彎”,而梯度噪聲尺度預測了拐彎發生的位置。
提高并行度使得在合理的時間內訓練更復雜的模型成為可能。我們發現Pareto前沿圖是可視化算法與尺度之間的比較的最直觀方式。我們通過設置性能水平(如Beam Rider的Atari游戲中的得分為1000),制作了這些曲線,查看不同批次大小下訓練達到該性能所需要的時間。這些結果與我們的模型預測結果,在大量不同性能目標值情況下,都匹配地相當好。
達到給定分數所需的經驗和訓練時間之間的折中是可以預測的。
梯度噪聲尺度中的模式
在梯度噪聲尺度中,我們觀測到了幾種模式,從而為AI訓練未來可能有的樣子提供了一些線索。
首先,在我們的實驗中,噪聲尺度通常在訓練過程中增加一個數量級或更多。直觀地說,這意味著,網絡在訓練早期會從任務中學習更“明顯”的特征,而在后期學習更加復雜的特征。例如,在圖像分類情形中,網絡首先可能學習識別小尺度的特征,如大多數圖像中呈現的邊緣或紋理;而在后期才將這些片段組合成更一般的概念,如貓和狗。為了看到全量的邊緣或紋理,網絡只需要看少量的圖像,因此噪聲尺度更小;一旦網絡對更大的對象有了更多的理解,它就能夠處理更多的圖像而不需要看重復的數據。
一些初步跡象表明,這樣的效果也發生在同一數據集上的不同模型上:更強大的模型有著更高的梯度噪聲尺度,而這僅僅是因為它們進一步減少了損失。因此,有證據表明,訓練過程中增加的噪聲尺度不只是一個人為收斂假象,而是由于模型變得更好導致的。如果這是真的,那么我們期望,未來更強大的模型具有更高的噪聲尺度,因而也更加可并行化。
其次,主觀上更困難的任務也更易于并行化。在有監督學習場景中,從MNIST到SVHN,到ImageNet都有明顯的進步。在強化學習場景中,從Atari Pong到Dota 1v1,到Dota 5v5也有明顯的進步,其中最優批次大小相差10,000倍以上。因此,隨著AI發展至處理新的和更困難的任務,我們期望模型能夠容忍更高的批次大小。
啟發
數據并行度顯著影響了AI能力的前進速度。更快的訓練使得構建更強大的模型成為可能,并通過更快的迭代來加速研究。
在更早的AI和計算的研究中,我們觀察到,用于訓練最大的機器學習模型的計算,每3.5個月翻一番;這種趨勢是由經濟學(肯花多少錢用于計算)以及算法并行訓練的能力共同驅動的。后一個因素(算法的可并行化能力)更難以預測,其限制也沒有得到很好地理解,而我們當前的研究成果則是朝著系統化和量化它前進了一步。特別是,我們有證據表明,更加復雜的任務和相同任務上更加強大的模型,將容許比我們迄今所看到的更激進的數據并行性,從而為訓練計算的持續快速指數級增長提供關鍵的驅動力(這甚至還沒有考慮最近模型并行化的進展,它有可能在數據并行化之上考慮更進一步的并行化)。
訓練計算的持續增長以及可預測的算法基礎,進一步突出了未來幾年AI能力快速增長的可能性,也強調了研究確保AI系統的安全性以及負責任地使用它們的緊迫性。AI政策的一個核心挑戰是,如何使用像這樣的度量來預測未來AI系統的特點,并使用這些知識來構思相應的政策讓社會最大化AI技術的正面影響和最小化它們的負面影響。
OpenAI致力于,繼續嚴格分析使我們對AI的未來有所預見,并采取措施解決分析出來的問題。
如果你想學習“AI科學”,并幫助我們實現更加數據驅動的神經網絡訓練,請考慮申請OpenAI的工作。
[1] 與本文平行的一份補充研究,對大批次訓練進行了細致的實驗測試,并對之前的文獻進行了全面的回顧,清理了早期工作中諸多不一致的地方。他們發現,潛在的并行性在任務之間存在顯著差異,我們的工作似乎解釋了這種差異的主要部分。他們的工作也建議,大批次訓練不會影響泛化能力。我們相信本文和其他研究中的系統調研對這個領域非常有價值,我們也會致力于繼續研究“AI科學”。
[2] 訓練神經網絡的時候,我們通常每次只處理一小批數據,給出真實網絡梯度的有噪估計。我們發現,梯度噪聲尺度Bnoise = E[|G-Gtrue|^2] / |Gtrue|^2(其中,期望是基于單個數據點),估計了最有效的批次大小。當基于批次大小B計算梯度時,估計梯度和真實梯度之間的歸一化距離是E[|GB - Gtrue|^2 / |Gtrue|^2] = Bnoise / B。不斷增加B,梯度噪聲停止下降的點顯著發生在B=Bnoise附近,而這個點也是訓練速度增益逐漸減小的點。
查看英文原文:How AI Training Scales(https://blog.openai.com/science-of-ai/)
更多內容,請關注 AI前線
總結
以上是生活随笔為你收集整理的OpenAI披露最新研究成果:AI训练如何扩展到更大规模?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css实现图片自适应容器的几种方式
- 下一篇: JavaScript 复习之 Array