写点什么

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

发布了 1517 篇内容, 共 690.6 次阅读, 收获喜欢 2506 次。

关注

评论 1 条评论

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

搞懂设计模式——代理模式 + 原理分析

京东科技开发者

jdk 代理 cglib 框架 企业号 2 月 PK 榜

区块链DEFI质押挖矿系统开发流程丨土狗币智能合约系统开发源码方案

I8O28578624

用 AI 取代人工?或许 LLMs 可以给你答案

鼎道智联

#人工智能

【IntelliJ IDEA】idea常用快捷键汇总

No8g攻城狮

IDEA intellij IntelliJ IDEA

同步计数器设计与建模

timerring

FPGA

高性能存储SIG月度动态:ublk完成POC、dsms-storage在Anolis OS上成功适配

OpenAnolis小助手

技术 高性能存储 龙蜥社区 sig 月报

react源码中的协调与调度

flyzz177

React

量化Python交易系统开发技术,合约量化系统开发源码部署方案

I8O28578624

一文详解TensorFlow模型迁移及模型训练实操步骤

华为云开发者联盟

人工智能 华为云 昇腾AI 企业号 2 月 PK 榜 华为云开发者联盟

腾讯前端二面手写面试题

helloworld1024fd

JavaScript

React源码分析8-状态更新的优先级机制

goClient1992

React

云小课|GaussDB(DWS)数据存储尽在掌控,冷热数据切换自如

华为云开发者联盟

开发 华为云 数据存储 企业号 2 月 PK 榜 华为云开发者联盟

Elasticsearch dynamic_templates 实战 通用配置

alexgaoyh

elasticsearch dynamic_templates index template

react源码中的生命周期和事件系统

flyzz177

React

携程MySQL迁移OceanBase最佳实践|分享

OceanBase 数据库

数据库 oceanbase

Spring Data + DDD = 王炸!!

程序知音

Node.js 应用全链路追踪技术——全链路信息存储

vivo互联网技术

nodejs OpenTracing zipkin

动态防御|零信任安全的自动化枢纽

权说安全

网络安全 零信任 动态防御

chatgpt背后的人工和智能

刘旭东

ChatGPT

【AI技术分享会第8期】EMNLP 2022 小样本学习论文解读来啦!开年直播好礼相送

阿里云大数据AI技术

人工智能 自然语言处理 深度学习

直呼牛逼!阿里最新SpringBoot进阶笔记涵盖了SpringBoot所有骚操作

程序知音

Java ssm springboot Java后端 Java进阶

Flink Table Store 典型应用场景

Apache Flink

大数据 flink 实时计算

【IntelliJ IDEA】idea中的插件之一:Free Mybatis plugin跳转插件的使用(方便在Dao接口和Mappper XML文件之间进行切换)

No8g攻城狮

插件 IntelliJ IDEA

从React源码分析看useEffect

goClient1992

React

React源码分析8-状态更新的优先级机制

goClient1992

React

我们从 CircleCI 安全事件获得的3个经验教训

SEAL安全

安全 软件供应链 企业号 2 月 PK 榜 端点保护 恶意软件检测

Flomesh Ingress 使用实践(三)多租户 Ingress

Flomesh

命名空间 多租户 ingress Ingress Controller

从历代GC算法角度刨析ZGC

京东科技开发者

ZGC JVM GC算法 垃圾回收算法 企业号 2 月 PK 榜

一个炫酷的头像悬停效果

南城FE

CSS css3 前端 动画 交互设计

A100 买不到了,只有小显卡怎么训大模型

MegEngineBot

深度学习 开源 大模型 显卡、gpu MegEngine

react源码分析:babel如何解析jsx

flyzz177

React

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