圖片來源: 

IBM

IBM展示10倍速GPU機器學習,處理30GB訓練資料只要1分鐘。

IBM研究院與瑞士洛桑聯邦理工學院共同於2017 NIPS Conference發表大資料機器學習解決方案,此方法可以利用GPU在一分鐘內處理完30GB的訓練資料集,是現存有限記憶體訓練方法的10倍。

研究團隊表示,機器訓練在大資料時代遇到的挑戰是動輒TB等級起跳的訓練資料,這是常見卻又棘手的問題,或許一臺有足夠記憶體容量的伺服器,就能將所有訓練資料都載入記憶體中進行運算,但是仍要花費數小時,甚至是數周。

他們認為,目前如GPU等特殊的運算硬體,的確能有效加速運算,但僅限於運算密集的工作,而非資料密集的任務。如果想要善用GPU運算密集的優勢,便需要把資料預先載入到GPU記憶體,而目前GPU記憶體的容量最多只有16GB,對於機器學習實作來說並不算寬裕。

批次作業看似是一個可行的方法,將訓練資料切分成一塊一塊,並且依造順序載入至GPU做模型訓練,不過經實驗發現,從CPU將資料搬移進GPU的傳輸成本,完全蓋過將資料放進GPU高速運算所帶來的好處。,IBM研究員Celestine Dünner表示,在GPU做機器學習最大的挑戰,就是不能把所有的資料都丟進記憶體裡面。

為了解決這樣的問題,研究團隊開發為訓練資料集標記重要性的技術,因此訓練只使用重要的資料,那多數不必要的資料就不需要送進GPU,藉此大大節省訓練的時間。像是要訓練分辨狗與貓圖片的模型,一旦模型發現貓跟狗的差異之一為貓耳必定比狗小,系統將保留這項特徵,在往後的訓練模型中都不再重複回顧這個特徵,因此模型的訓練會越來越快。IBM研究員Thomas Parnell表示,這樣的特性便於更頻繁的訓練模型,也能更及時的調整模型。

這個技術是用來衡量每個資料點對學習演算法的貢獻有多少,主要利用二元差距的概念並及時影響調整訓練演算法。將這個方法實際應用,研究團隊在異質平臺(Heterogeneous compute platforms)上,為機器學習訓練模型開發了一個全新可重複使用的元件DuHL,專為二元差距的異質學習之用。

IBM表示,他們的下一個目標是在雲端上提供DuHL,因為目前雲端GPU服務的計費單位是小時,如果訓練模型的時間從十小時縮短為一小時,那成本節省將非常驚人。

 

(下圖)圖中顯示了三種演算法所需的時間,包含DuHL在大規模的支援向量機的表現,所使用的資料集都為30GB的ImageNet資料庫,硬體為記憶體8GB的NVIDIA Quadro M4000 GPU,圖中可以發現GPU序列批次的效率,甚至比單純CPU的方法還要糟,而DuHL的速度為其他兩種方法的10倍以上。


Advertisement

更多 iThome相關內容