來源:人工智能和大數據 算法
在機器智能向更大的深度神經網絡發展的過程當中,訓練效率將成爲Graphcore Research在2021年的重點工做。數組
大型、過參數化模型的訓練不斷展示出改進的訓練和泛化性能。事實上,在許多領域,較大的模型樣本效率更高。這意味着應該將更多的計算預算用於更大的模型訓練,而非更多的迭代訓練(Kaplan et al., 2020[1]; Henighan et al., 2020[2])。網絡
大規模的訓練效率可以進一步提升任務性能,同時下降計算成本和功耗。架構
在2020年,咱們在和效率有關的研究領域取得了許多進展,包括算術效率、存儲有效訓練以及分佈式訓練的有效實施。此外,咱們還繼續推動了關於機率建模的研究,並在計算機視覺和語言的有效深度架構的研究工做中取得了重大進展。機器學習
本文將探討咱們在接下來一年的研究方向。這些研究方向和訓練效率有關。咱們也會考慮並行訓練的新機遇,包括在NeurIPS 2020上發佈的咱們有關隨機基[3]的研究成果(Gressmann et al., 2020[4]),以及咱們與加州大學伯克利分校(UC Berkeley)和Google Research進行的本地並行性的研究(Laskin, Metz et al., 2020[5])。異步
隨機學習的優化分佈式
在深度神經網絡訓練過程當中減小存儲實施的尋址技術也將是一個重點。有效學習在很大程度上取決於新算法和用於隨機優化的新標準化技術的發展,這些技術和方法能夠實現訓練的穩定性以及小批次訓練的泛化。性能
針對深度學習和計算圖網絡的新高效模型 學習
經過設計針對不一樣應用的新處理功能和構建塊來提升深度模型的訓練性能和計算效率,對無監督或自我監督的預訓練以及對下游任務的有監督微調相當重要。大數據
在咱們的研究中,咱們將繼續考慮諸如計算機視覺和天然語言理解之類的基礎性應用,同時也把基於計算圖網絡的應用(包括基因組學和推薦系統)做爲目標。
稀疏訓練
稀疏訓練可以使得人工智能從業者減小大型過參數化模型的計算足跡和功耗,其目標是可以訓練超出當前可行的更大模型。
在訓練結束時對密集模型進行剪枝或在訓練過程當中逐漸增長稀疏度,使得研究人員能夠減少用於推理的模型尺寸。可是,至少在整個訓練持續時間的部分過程當中,這些方法仍然受到全模型尺寸的計算和存儲要求的限制。
經過基於初始化時的深層網絡剪枝的方法可減小計算和存儲需求,而後再對所得的剪枝後的子網絡進行訓練(Hayou et al., 2020[6])。可是,在訓練過程當中保持固定稀疏模式的靜態稀疏訓練,一般對應着較差的任務性能。
經過在訓練期間按期更改稀疏模式來探索大型模型的高維參數空間,動態稀疏訓練能夠提升任務性能,從而把與稀疏子網絡相關的計算成本和功耗維持在更低水平(Evci et al., 2019[7]; Jayakumar et al., 2020[8])。
有效利用動態稀疏訓練,而且在向前和向後傳遞時都具備很高的稀疏性,這將爲創新者提供訓練過參數化的深度網絡的機會,而這些網絡比當今可訓練的最大模型還要大(Jayakumar et al., 2020[8])。
並行訓練的新方向
爲了減小訓練大型過參數化模型所需的時間,依靠大量處理器上的有效實施來研究大規模分佈式訓練的優化算法是很是必要的。
一般,經過在多個模型副本上進行數據並行性來得到更快的訓練,每一個模型副本都處理隨機優化算法的一個微小批次的一部分數據。數據並行訓練可經過增長批尺寸來提升吞吐量。可是,在訓練時間隨批尺寸和處理器數量而變化的初始區域以後,繼續增長批尺寸就會達到飽和區域。在飽和區域裏,增長並行性沒法實現進一步加速(Shallue et al., 2018[9])。
隨着數據並行性模型尺寸的增長,每一個模型副本又能夠基於流水線並行性在多個處理器上實施,其中每一個副本的各個層被分紅流水線的各個階段。對於大型模型,能夠經過在多個處理器上的基本模型並行性進一步劃分每一個階段的多個層。流水線並行性提升了吞吐量,與此同時,批尺寸的增長帶來流水線階段數的增長,從而實現加速。所以,對於仍容許訓練的最大批尺寸,使用流水線並行性能夠減小總體批尺寸中用於數據並行性的那一部分(Huang et al., 2018[10])。
咱們正在考慮新的並行處理方法,來進行大型模型的有效分佈式訓練。
隨機基
在少許維度上探索較大的參數空間能夠下降訓練過參數化模型的成本。這種方法的研究方式以下:經過限制隨機方向的一個小子集上的梯度降低,隨機選擇一個低維權重子空間,而後在整個訓練過程當中將其保持固定(Li et al., 2018[11])。
咱們最近的研究[12](Gressmann et al., 2020[13])發現,經過在低維隨機基中進行訓練以及在訓練過程當中從新繪製隨機方向來探索參數空間,能夠得到比之前的研究更好的學習效果。
經過在多個處理器上的並行性以及由不一樣節點爲不一樣的隨機投影計算梯度,能夠進一步加速對隨機子空間的訓練。經過這種實施方式,僅經過傳遞低維梯度向量和投影的隨機種子就能夠交換梯度。這將隨着處理器數量的增長,帶來訓練的線性加速。
本地並行性
訓練過程當中向後順序處理和連續層參數更新(向後鎖定)均極大地阻礙了基於反向傳播的並行訓練。經過基於本地目標分別更新模型的不一樣塊,本地並行性能夠解決這些挑戰。基於貪心本地更新(Belilovsky et al., 2019[14]; Lowe et al., 2019[15])或重複的本地更新(Xiong et al., 2020[16]),經過監督學習或自我監督表示學習能夠實現本地優化。
使用本地並行性能夠提升吞吐量,並與流水線並行性同樣,擴展並行節點上的處理,而無需同時增長微小批次的尺寸,而後能夠將其徹底用於數據並行性。正如咱們最近與加州大學伯克利分校和Google Research的合做研究證實,本地並行性在高計算狀態中特別有效(Laskin, Metz et al., 2020[17])。
多模型訓練
在多個節點上擴展訓練的一種直接且有吸引力的方法是訓練一組深層網絡的總體,而不是單個較大的網絡。與數據並行訓練相比,深度集成(Deep Ensembles)的使用(Kondratyuk et al., 2020[18]; Lobacheva et al., 2020[19])消除了模型副本之間進行任何通訊的需求。研究證實,深度集成能夠在相同的計算成本下具有更高的準確性,而且比訓練大型模型更有效(Kondratyuk et al., 2020[18])。此外,集成能夠探索非凸優化景觀的不一樣模式,而且能夠提供通過良好校準的預測性不肯定性估計。
深度集成也常見於近似貝葉斯邊際化,或者貝葉斯模型均值的實用機制中(Wilson & Izmailov, 2020[20])。
Codistillation(共蒸餾)提供了另外一種有效的方法來訓練多個深度模型以代替單個較大的模型(Zhang et al., 2017[21]; Anil et al., 2018[22]; Sodhani et al., 2020[23])。共蒸餾的目的是經過按期共享各自的預測,訓練多個網絡學習相同的輸入映射和輸出映射。研究代表,在使用其餘模型的過期預測時,該方法能夠接受異步執行。在集成的狀況下,必須在訓練後對各個模型的預測求平均值。相比之下,在共蒸餾中只有一個階段,即對全部模型進行訓練以作出相同的預測。
條件稀疏計算
深度學習的條件計算能夠做爲專家的深度混合加以實施,其稀疏門控機制僅根據輸入便可激活整個網絡的某些計算塊(Shazeer et al., 2017[24]; Lepikhin et al., 2020[25])。
這種方法可顯著增長固定計算成本下訓練的模型的總體大小,而這取決於單個模型中處理塊的指數組合(Wang et al., 2018[26])。
在訓練期間,經過對整個大型網絡的不一樣部分進行門控選擇,該模型能夠在減小計算負載和低存儲帶寬的狀況下,學習計算塊與特定輸入或任務之間的關聯。而後,該方法使經過基於輸入動態選擇和執行網絡的不一樣部分來解決下游任務成爲可能。
研究代表,整個訓練後的稀疏門控模型尺寸的增長與任務性能的提高相對應,而計算成本則與相對較小百分比例的參數總數相對應。
2021年的人工智能研究
展望人工智能研究的下一個關鍵階段,爲基礎性深度學習應用(例如圖像處理和天然語言處理)和基於計算圖網絡的領域(包括蛋白質工程、藥物研發和推薦系統)探索新的突破性方法都是很是振奮人心的工做。
這些創新方法的成功將取決於Graphcore IPU等新型處理器的計算能力和靈活性的進一步提高,以便爲大規模、有效的機器學習提供全新的方向。
將來智能實驗室的主要工做包括:創建AI智能系統智商評測體系,開展世界人工智能智商評測;開展互聯網(城市)雲腦研究計劃,構建互聯網(城市)雲腦技術和企業圖譜,爲提高企業,行業與城市的智能水平服務。
若是您對實驗室的研究感興趣,歡迎加入將來智能實驗室線上平臺。掃描如下二維碼或點擊本文左下角「閱讀原文」