AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

360 开源 XDML,超大规模数据与超高维特征机器学习计算平台

  • 2018-12-29
  • 本文字数:1480 字

    阅读完需:约 5 分钟

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,能够为开发者节约学习和操作时间,提高模型训练效率,具有良好的稳定性和兼容性,为开源社区提供了一件利器。


2018-12-29 14:385125
用户头像

发布了 1491 篇内容, 共 661.2 次阅读, 收获喜欢 2499 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

手把手教你看MySQL官方文档

Simon

MySQL

十分钟带你彻底搞懂原码、反码、补码

程序员生活志

补码 原码 反码

谁没个焦虑的时段呢?

封不羁

程序员 个人成长 个人感想

了不起的 tsconfig.json 学习指南

Geek_z9ygea

typescript 大前端 Web

阿里大型企业级开发必用微服务:深入浅出SpringBoot2.x

小闫

spring jdk 面试 后端 springboot

写给孩子的两本书我读得津津有味

孙苏勇

读书 陪伴 随笔杂谈

​ “强大基座”再展能力,一朵“云”掀起国产化浪潮

Geek_116789

锦囊篇|一文摸懂SharedPreferences和MMKV(一)

ClericYi

小师妹学JVM之:JIT中的PrintAssembly续集

程序那些事

JVM jdk8 JDK14 assembly 签约计划第二季

分布式缓存 - 第五周作业

孙志平

自由职业半年之后,我又滚回职场了...

王磊

程序员 程序人生

MyBatis入门

Simon郎

Java mybatis

Gradle快速入门使用指南 - 安装篇

小隐乐乐

maven

微服务网关演进之路

捉虫大师

Java 微服务 dubbo 网关

一文解决MySQL时区相关问题

Simon

MySQL 数据库

了不起的 Webpack 构建流程学习指南

Geek_z9ygea

Java 大前端 Web webpack

起底印度禁用59款应用的数据表现

谢锐 | Frozen

移动应用 游戏开发 游戏出海 移动互联网 游戏制作

大数学家笛卡尔到底是怎么死的? |《隐秘的角落》

赵新龙

数学 隐秘的角落 笛卡尔

计算机操作系统基础(十)---存储管理之虚拟内存

书旅

php laravel 线程 操作系统 进程

【自学成才系列二】multipass上ubuntu安装篇

小朱

ubuntu multipass

Git 的进阶操作

多选参数

git GitHub gitlab

系统架构师week 04 - 互联网架构总结

尔东雨田

极客大学架构师训练营

神经网络攻防:开篇词——你所不知道的神经网络攻防

P小二

神经网络 AIPwn 对抗样本 AI安全 P小二

公司短信平台上的两万块钱,瞬间就被刷没了

古时的风筝

短信防刷 接口安全 短信轰炸机

为什么大家都说SELECT * 效率低

Java小咖秀

MySQL 面试 经验

数据集永久下架,微软不是第一个,MIT 也不是最后一个

神经星星

AI 计算机视觉 MIT AI 伦理 数据集

面试时被问创建多少个线程合适?你该怎么说?

小谈

面试 线程 JVM springboot SpringCloud

重学 Java 设计模式:实战状态模式「模拟系统营销活动,状态流程审核发布上线场景」

小傅哥

Java 设计模式 小傅哥 重构 代码规范

集中全世界程序员的力量,可以在三天之内实现一个手机淘宝吗?

非著名程序员

程序员 软件 程序人生 软件工程 人月神话

理解Redis的内存回收机制和过期淘汰策略

老胡爱分享

redis LRU

架构师训练营第五周总结

陈靓-哲露

360开源 XDML,超大规模数据与超高维特征机器学习计算平台_AI&大模型_InfoQ 中文站_InfoQ精选文章