2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

聊聊我接触到的语言

卢卡多多

技术 语言 & 开发 6月月更

重载(overLoad)与重写(override)的区别与详解(详解+对比+代码示例)

写代码两年半

javase 多态 重载 6月月更

C#入门系列(八) -- 方法定义

陈言必行

C# 6月月更

LabVIEW控制Arduino采集多路DS18B20温度数值(进阶篇—3)

不脱发的程序猿

单片机 LabVIEW Arduino VISA 采集多路DS18B20温度数值

leetcode 934. Shortest Bridge 最短的桥(中等)

okokabcd

LeetCode 搜索 算法与数据结构

协同办公市场暴增背后:融云通信能力是需求重点

融云 RongCloud

Apache.commons.lang3 的 isNumber 将会在 lang 4 的时候丢弃

HoneyMoose

Vue.js到底是什么

Geek_99967b

小程序 Vue

ArrayList的底层?

源字节1号

软件开发 前端开发 后端开发 小程序开发

SpringBoot官方支持任务调度框架,轻量级用起来也挺香!

沉默王二

Java springboot

linux中同时移动多种格式文件

入门小站

Linux

谈在代码中嵌入标记生成模版

原创 6月月更

Django API 开发:身份认证原理

宇宙之一粟

django 6月月更

架构训练营模块三作业

融冰

spring4.1.8初始化源码学习三部曲之二:setConfigLocations方法

程序员欣宸

Java spring 6月月更

小程序容器可以发挥的价值

Geek_99967b

小程序容器

Java类与对象,万物皆对象

未见花闻

6月月更

Disruptor 高性能堆内队列 系列二

Nick

Java Disruptor false sharing 6月月更 高性能堆内队列

深入浅出Spring事务的实现原理

清风

spring 原理 事务 源码学习 深入浅出

在 Flutter 中以编程方式截取任何 Widget

坚果

6月月更

【LeetCode】爱吃香蕉的珂珂Java题解

Albert

LeetCode 6月月更

在线两个文本列表拼接合并工具

入门小站

工具

【愚公系列】2022年06月 面向对象设计原则(二)-开放闭合原则

愚公搬代码

6月月更

Fabric.js 元素被选中时保持原有层级🥁

德育处主任

web前端 前端可视化 FabricJS Fabric.js 6月月更

服务管理与通信,基础原理分析

Java 架构 微服务 nacos Feign

如何搭建短视频app源码,实现短视频内容的播放优化

开源直播系统源码

APP开发 短视频源码

SDN网络编排与服务

穿过生命散发芬芳

SDN网络 6月月更

抖音测试小说频道:抖音早已不再是短视频平台

石头IT视角

OKALEIDO的NFT聚合交易,打造面向艺术家的Web3商业生态

BlockChain先知

物联网低代码平台如何快捷管理资产?

AIRIOT

JavaScript原型链继承与盗用构造函数继承

大熊G

JavaScript 前端 6月月更

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