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,能夠為開發者節約學習和操作時間,提高模型訓練效率,具有良好的穩定性和兼容性,為開源社區提供了一件利器。
來自: https://www.infoq.cn/article/i0JgIkS_E4IBElevgrAT