大數(shù)據(jù)時代,如何高效地處理海量數(shù)據(jù)是個難題。過去很長一段時間,受限于計算機的運算效率,大數(shù)據(jù)機器學習都處于一個發(fā)展十分緩慢的階段。當這個難題被攻克,AI 領域以及大數(shù)據(jù)領域,也會隨之出現(xiàn)不少新創(chuàng)投機會。
最近,微軟亞洲研究院首席研究員霍強博士團隊的研究成果,已經(jīng)就能部分解決這樣的難題。他們的最新研究成果可以做到在保證訓練模型的性能的同時,訓練速度可以在增加 GPU的條件下接近線性增長。這意味著大數(shù)據(jù)處理的門檻已經(jīng)大幅降低,大數(shù)據(jù)機器學習在未來很可能就不再是大公司的特權。
機器學習一直被戲稱為科技公司的 “軍備競賽”,誰擁有更大規(guī)模的數(shù)據(jù)、更快的訓練速度、更好的算法,誰就能擁有性能更好的模型。但在過去,計算機運算效率有限,計算資源稀缺,一個公司基于機器學習的方法做出一個算法模型,往往耗時巨大。比如,如果你想通過 10 萬小時的語料數(shù)據(jù),訓練出一個語音識別的模型,往往需要幾個月甚至數(shù)年。所以,在這個領域里,很難看到小團隊小公司取得大成績。
大公司的普遍做法就是利用更多的 CPU 和 GPU 做并行訓練。這就像是蓋房子,理論上,只要參與的工人越多,完工的周期就越短,工程的效果也就越好。但是如何提高這些 CPU 和 GPU 協(xié)作的效率就是一個難題,就像在蓋房的過程中,需要協(xié)調各個工種相互配合。目前,業(yè)內普遍應用的方法有三種:
ASGD(異步隨機梯度下降):這是 Google 從 2012年 起就在采用的方法,通過大量 GPU 做異步計算。這種方式也有弊端,一是當增加 GPU 時需要的通信代價很高,系統(tǒng)設計優(yōu)化和維護成本大幅增加,二是同樣的數(shù)據(jù)兩次訓練結果不一定相同。
Model Averaging(模型平均):簡單來說,這種方法是對一段時間內每塊 GPU 的學習結果進行平均,形成新的模型,以此為新起點在每塊 GPU 再分別用新數(shù)據(jù)學習,對各 GPU 的學習結果再取平均,以此類推。這種方法實現(xiàn)簡單,但是它的問題在于當卡的數(shù)量增加時訓練模型的性能無法保證。目前實踐的效果是,當達到 16 塊卡時,模型性能下降已很明顯。
1-bitSGD:此方法通過量化壓縮梯度值來減少通信代價,直接實現(xiàn) mini-batch 內的多 GPU 數(shù)據(jù)并行處理。它的主要缺點是, 在保證訓練模型性能的情況下,當卡的數(shù)量增加時,無法做到線性加速。
霍強博士團隊的算法,在 Model Averaging 的基礎上,將每一輪模型更新的信息收集起來,在信息整合的過程中,同時利用當前信息和歷史模型更新信息,使得每一輪的更新更為平滑,不會出現(xiàn)巨大的波動,使用這樣的濾波方法后,最終生成模型的性能也大大提升。同時,這種方法實現(xiàn)簡單,很 “平民化”。
目前,通過這個算法,語音識別中神經(jīng)網(wǎng)絡模型的訓練提升十分顯著。在保證性能的前提下,當使用 16 塊 GPU 卡時,訓練速度提高了 15 倍,而當使用 64 塊卡時,訓練速度提高到了 56 倍。接受 36 氪采訪時,霍強博士也在向微軟申請更多的測試資源,測試更多 GPU 卡下的結果。
當機器學習的訓練速度線性增長,AI和大數(shù)據(jù)領域的創(chuàng)投是否會出現(xiàn)新繁榮?
與這一技術的實現(xiàn)過程相比,我們同樣關注它對 AI、大數(shù)據(jù)領域所能帶來的改變。
最直接的影響或許就是,并行計算未來將 “平民化”,舉例來說 可能需要 16 塊 GPU 卡就可以達到原本 32 塊卡可以達到的效果,不僅節(jié)約了硬件投入,還減少了人力的投入。目前,這個算法已經(jīng)公開,中小規(guī)模的團隊將獲得更多的機會。對于現(xiàn)有的做大數(shù)據(jù)的公司來說,這或許也是一個新契機。借助于新的算法,提升訓練結果以及最終的服務。
AI 領域的一個重要分支 CV,或許會借此獲得新的生機與活力。因為訓練數(shù)據(jù)偏?。ㄏ啾扔谡Z音識別領域),借助于該技術,或許有機會大幅提升模型的性能。若真如此,基于 CV 的創(chuàng)業(yè)可能還會迎來一波小熱潮。
作者丨小石頭