360開源 XDML,超大規模數據與超高維特徵機器學習計算平臺

在大數據時代,需要處理的數據都是TB級或PB級以上,機器學習模型的規模也在不斷地增大,機器學習模型的參數的規模可以達到百億甚至是千億的級別,如此大的參數規模給現有的機器學習平臺帶來了前所未有的挑戰。同時,高維稀疏數據對於模型的構建也帶來了巨大的挑戰。

人工智能取得了前所未有的發展,機器學習、深度學習中算法數量也在不斷的增加。但是也帶來了很多的問題:

  • 特徵分析和變換中,工作量大、性能差、成本高等;
  • 難以處理超高維稀疏數據,超規模參數調優難度很大;
  • 目前業界實現的機器學習平臺都有各種各樣的問題,例如和Hadoop生態圈銜接較差,無法很好的與其銜接起來。這些問題一直阻礙着開發者的前行,亟需解決。

針對超大規模機器學習的場景,360開源了內部的超大規模機器學習計算框架XDML。XDML是一款基於參數服務器(Parameter Server),採用專門緩存機制的分佈式機器學習平臺。它在360內部海量規模數據上進行了測試和調優,在大規模數據量和超高維特徵的機器學習任務上,具有良好的穩定性,擴展性和兼容性。

GitHub地址:https://github.com/Qihoo360/XLearning-XDML

XDML架構設計圖

XDML特性

1. 提供特徵分析與變換等功能模塊

在現有的機器學習模型的構建中,特徵生產與業務和數據高度相關,高度定製,工作量很大。特徵分析與變換處理粒度過小,在大數據情形下性能較差,且缺乏一站式的特徵分析與變換工具。XDML能夠最大程度地挖掘並行度,結合樣本並行+特徵並行+算子並行/融合/OnePass化,顯著提升特徵工程的性能,支持TB級數據10min級分析,並且遵循spark標準接口。在包含數千個特徵的稠密benchmark上進行特徵分析與變換測試,性能較Spark MLlib提升1000多倍;XDML也能很好地適應稀疏數據特徵分析。

2. 實現常用的大規模數據量場景下的機器學習算法

超高維度的參數優化,對於開發者算法能力要求較高,而且工作量較大,需要大量的時間和精力進行調參工作。XDML內化學界最新研究成果,引入南京大學李武軍老師提出的全新優化算法SCOPE,並重構了準線性模型,在效果保持穩定的同時,大幅加速收斂進程,顯著提升模型與算法的性能。在Benchmark上,相比LBFGS性能提升10倍左右,相較於SGD性能提升50多倍。同時,XDML還對接了一些優秀的開源成果和360公司自研成果,站在巨人的肩膀上,博採衆長。

3. 充分利用現有的成熟技術,保證整個框架的高效穩定

在互聯網領域,技術框架更新迭代十分迅速,XDML可以與業界成熟的技術無縫銜接,整個框架具有高效的穩定性。

4. 完全兼容hadoop生態,和現有的大數據工具實現無縫對接,提升處理海量數據的能力

在XDML設計之初,就將與Hadoop生態無縫銜接作爲其設計目標,解決了大規模高維數據的存儲。XDML具有與目前Hadoop、Spark等大數據框架無縫對接的能,同時替換Spark原生能力的性能/效果瓶頸,提供更好的大數據框架使用體驗,將開發者從繁雜的工作中解脫出來,不必爲數據、模型的存儲大費周章。

5. 在系統架構和算法層面實現深度的工程優化,在不損失精度的前提下,大幅提高性能

在高維稀疏數據場景中,如何處理千億級參數訓練,百億乃至千億級別樣本訓練中模型的存儲、數據如何傳輸、模型的更新等問題一直是業界急需解決的問題。XDML具有模型的快速存儲能力,高效的數據傳輸,從多個角度提升了高維稀疏數據場景中,提升模型的訓練速度提升整體的性能。

結語

“從開源社區來,並回到開源社區去”一直是開源社區的精神。360此次開源的內部超大規模機器學習計算框架XDML,能夠爲開發者節約學習和操作時間,提高模型訓練效率,具有良好的穩定性和兼容性,爲開源社區提供了一件利器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章