写点什么

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:385320
用户头像

发布了 1554 篇内容, 共 739.9 次阅读, 收获喜欢 2522 次。

关注

评论 1 条评论

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

CSS开发过程中的20个快速提升技巧

华为云开发者联盟

CSS

图解分析:Kafka 生产者客户端工作原理

李尚智

Java 程序员 架构 kafak

浪潮云洲工业互联网平台创新实践,受权威机构关注!

工业互联网

长篇总结之JavaScript,巩固前端基础

我是哪吒

JavaScript 程序员 面试 大前端 2月春节不断更

IDEA永久注册码来了!!!(支持2020.3.1版本)

程序员生活志

IDEA

终于搞懂了Python模块之间的相互引用问题

华为云开发者联盟

Python 路径 代码 模块

目前的区块链IPFS矿机模式交易系统开发的简单解析

v16629866266

电子书下载|2020 年云原生年货小红书来啦!

阿里巴巴云原生

容器 微服务 开发者 云原生 k8s

工业绿色哪家强?3D可视化盾构机构建隧道,推动设备预测性运维

一只数据鲸鱼

物联网 数据可视化 绿色交通 绿色工业 盾构机

并发队列:PriorityBlockingQueue和DelayQueue案例使用

叫练

并发编程 队列 优先级队列 条件队列 并发队列

2021年的十五个DevOps趋势预测

禅道项目管理

DevOps 微服务 自动化 趋势

看KubeEdge携手K8S,如何管理中国高速公路上的10万边缘节点

华为云开发者联盟

Kubernetes 微服务 kubeedge 边缘

使用V8和node轻松profile分析nodejs应用程序

程序那些事

性能优化 Profile nodejs 性能分析 程序那些事

架构师训练营大作业

Geek_f06ede

Kafka 发送消息过程中拦截器的用途?

李尚智

Java kafka 程序员 架构

【JS】事件委托

德育处主任

JavaScript 大前端 js 2月春节不断更

怎么理解Kafka消费者与消费组之间的关系?

李尚智

Java 大数据 程序员 架构

【无偿分享】史上最全Python学习大礼包

sum56

Python 学习 学习方法 python 爬虫 资料整理

关于京东技术,你想了解的都在这里丨征文活动获奖及优秀专栏推荐

京东科技开发者

京东 征文大赛

产品经理:一款用户全量会话轨迹管理产品是怎么炼成的?

博睿数据

redis分布式锁的这些坑,我怀疑你是假的开发

华为云开发者联盟

redis 分布式 分布式锁 服务器 value

一款基于 Web 的通用数据管理工具(转载)

BinTools图尔兹

数据库 运维 开发工具 dba 数据管理工具

即构发布 LCEP 低代码互动平台产品 RoomKit,实现互动房间0代码搭建

ZEGO即构

架构师训练营大作业(二)

Geek_f06ede

天天向上跑分模式介绍开发

luluhulian

程序员成长第四篇:程序员的职业天花板

石云升

28天写作 2月春节不断更 职场天花板

使用logstash作为docker日志驱动收集日志

远鹏

Docker Logstash 日志系统

2021版阿里Java亿级并发设计手册:基础+数据库+缓存+消息队列+分布式+维护+实战

Java架构追梦

Java 阿里巴巴 面试 系统架构 亿级并发

深度集成 Flink: Apache Iceberg 0.11.0 最新功能解读

Apache Flink

flink

Elasticsearch 搜索结果解析

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

零基础实现Java直播(二):实现流程

ZEGO即构

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