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倍以上.