把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

DMLC:最大开源分布式机器学习项目

  • 2015-06-04
  • 本文字数:852 字

    阅读完需:约 3 分钟

为了实现分布式机器学习领域中代码的共享与共同开发,分布式机器学习社区(DMLC)近日正式发布。作为一个开源项目,DMLC 的相关代码直接托管在 GitHub 中,并采用 Apache2.0 协议进行维护。DMLC 项目的发起者陈天奇怪(网名)表示,项目最初的想法是减少分布式机器学习开发的成本以及新算法被大家接受测试的时间。目前,该项目已经集成了XGBoost、CXXNET 及Minerva 等机器学习库与rabit 和参数服务器等系统组件。接下来,本文就对这些基础库及组件进行简单介绍。

XGBoost 是一个大规模、分布式的通用 Gradient Boosting(GBDT、TBRT 或者 GBM)库。它在 Gradient Boosting 的框架下实现了 GBDT 和广义线性模型等机器学习算法。通过采用分布式计算方法,XGBoost 能够明显加快算法中迭代运算的速度。而作为一个快速、精确的分布式深度学习框架, CXXNET 主要具有轻量、支持多 GPU 和分布式并行系统、非常好的可扩展性以及与其他语言之间的接口清晰等特性。它使用 mshadow 库为用户提供了良好的编程体验和高效的工作能力。与 CXXNET 不同的是, Minerva 提供了一个高效灵活的并行深度学习引擎。它提供了一个类似 Numpy 的 NDarray 编程接口,并支持 Python 和 C++ 语言。其天然的并行性保证了其能够高效地利用多 GPU 进行相关计算。

rabit 是一个提供 Allreduce 和 Broadcast 容错接口的轻量通信框架。它简化了 MPI 的设计,在 Allreduce 和 Boradcast 操作的基础上加入了容灾的支持。其最大的特点在于可移植、可扩展以及非常可靠。另外一个通信框架——参数服务器(Parameter Server),主要负责对 XGBoost 等应用提供分布式的系统支持。它支持工作机与服务器之间的异步、零拷贝键值对的通信。异步的参数服务器接口加上同步的 Rabit 接口基本能够满足各种分布式机器学习算法中的通信需求。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-04 09:4511675
用户头像

发布了 268 篇内容, 共 137.6 次阅读, 收获喜欢 24 次。

关注

评论

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

PowerShell 正则表达式

耳东@Erdong

PowerShell 7月日更

架构训练营模块 1 作业 - 1班助教

听闻

全面了解Java并发编程基础!超详细!

程序员的时光

Java 并发编程

模块一作业

Always

架构实战营

Ta想做一粒智慧的种子

白洞计划

暑假期间快手将重点整治平台:短视频平台如何完善内容审核机制

石头IT视角

性能框架哪家强—JMeter、K6、locust、FunTester横向对比

FunTester

性能测试 接口测试 测试框架 测试开发

模块八作业

Presley

领域驱动设计到底在讲什么?

escray

学习 极客时间 7月日更 如何落地业务建模

密码你真的了解吗

卢卡多多

7月日更

🏆【CI/CD技术专题】「Maven插件Docker系列」使用Maven插件构建Docker镜像的方法

码界西柚

Docker maven 7月日更 Plugin

我为什么要学习业务建模?

escray

学习 极客时间 7月日更 如何落地业务建模

Kats-Facebook最新开源的时序分析工具

好孩子

只更新代码,然后发布版本:基于 Serverless Devs 原子化操作阿里云函数计算

Serverless Devs

实时音视频技术全栈攻略|寻找C站宝藏

liuzhen007

音视频 7月日更

推荐系统的未来发展(三十三)

Databri_AI

价值观 推荐系统

网络攻防学习笔记 Day70

穿过生命散发芬芳

网络攻防 7月日更

【Flutter 专题】90 图解 Dart 单线程实现异步处理之 Future (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

在线脑图思维导图生成工具

入门小站

工具

Javascript 的工作原理:引擎、运行时和调用堆栈概述

devpoint

JavaScript V8 7月日更

Hadoop 入门教程

若尘

大数据 hadoop

ACM金牌选手整理的【LeetCode刷题顺序】

编程熊

Java 面试 算法 面经 笔试

公司内部使用的数仓开发规范

白贺BaiHe

数据仓库 开发规范 数仓规范 7月日更

Apache Flink 漫谈系列 —— 概述

云祁

flink 7月日更

架构实战营 模块八课后作业

iProcess

架构实战营

京东智造云:在世界人工智能大会上,听到的工业智能生长的声音

脑极体

Go 学习笔记之 结构体

架构精进之路

Go 语言 7月日更

你以为的你以为未必是你以为的

Bruce Talk

敏捷 随笔 Agile 引导和教练

性能测试框架对比初探

FunTester

性能测试 接口测试 测试框架 测试开发

Linux之find命令的参数详解

入门小站

Linux

【LeetCode】基于时间的键值存储Java题解

Albert

算法 LeetCode 7月日更

DMLC:最大开源分布式机器学习项目_GitHub_张天雷_InfoQ精选文章