【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow

该项目由肖臻教授和马超博士合作完成。

肖臻教授 美国康奈大学博士 之前任美国AT&T 和 IBM 科学家。研究方向分布式系统和机器学习。在国际顶级刊物发表论文60余篇,论文引用超过4000次。

马超,北大云计算课题组博士生,研究方向分布式系统与大规模机器学习。同时担任亚马逊AWS 应用科学家实习生,负责MXNet 分布式性能优化。

目前在c++ trending 上,xLearning已经超过 tensorflow

马超在微博上介绍:

在机器学习里,除了深度学习和树模型 (GBDT, RF) 之外,如何高效地处理高维稀疏数据也是非常重要的课题,Sparse LR, FM, FFM 这些算法被广泛运用在实际生产和kaggle比赛中。现有的开源软件例如 liblinear, libfm, libffm 都只能针对特定的算法,并且可扩展性、灵活性、易用性都不够友好。基于此,我在博士期间开发了 xLearn,一款专门针对大规模稀疏数据的机器学习库,曾在之前 NIPS 上做过展示。经过打磨,现开源(https://github.com/aksnzhy/xlearn) 。我们的 vision 是将 xLearn 打造成和 xgboost,MXNet一样的工业事实标准。

相比于已有的软件,xLearn的优势主要有(1)通用性好,我们用统一的架构将主流的算法(lr, fm, ffm 等)全部囊括,用户不用再切换于不同软件之间。(2)性能好。xLearn由高性能c++开发,提供 cache-aware 和 lock-free learning,并且经过手工 SSE/AVX 指令优化。 在单机MacBook Pro上测试 xLearn 可以比 libfm 快13倍,比 libffm 和 liblinear 快5倍(基于Criteo CTR数据 bechmark)。(3)易用性和灵活性,xLearn 提供简单的 python 接口,并且集合了机器学习比赛中许多有用的功能,例如:cross-validation,early-stopping 等。除此之外,用户可以灵活选择优化算法(例如,SGD,AdaGrad, FTRL 等)(4) 可扩展性好。xLearn 提供 out-of-core 计算,利用外存计算可以在单机处理 1TB 数据。除此之外,xLearn 也提供分布式训练功能。这里我希望更多的朋友加入这个开源项目!

马超的微博截图

性能

xLearn是由高性能的C ++代码精心设计和优化而开发的。系统旨在最大限度地利用CPU和内存,提供缓存感知计算,并支持无锁学习。通过结合这些见解,与相似系统相比,xLearn速度提高了5倍 - 13倍。

易用

xLearn不依赖任何第三方库,因此用户只需克隆代码并使用cmake编译即可。此外,xLearn支持用户非常简单的Python API。除此之外,xLearn支持许多有用的功能,已经在机器学习竞赛中广泛使用,如交叉验证,提前停止等。

可扩展性

xLearn可以用来解决大规模的机器学习问题。首先,xLearn支持非核心训练,只需利用单台机器的磁盘即可处理非常大的数据(TB)。此外,xLearn还可以支持分布式训练,这种训练在许多机器上都可以扩展到数十亿个示例。

原文发布时间为:2017-11-26

本文作者:弗格森

原文链接:【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow

时间: 2024-08-01 01:02:48

【开源】北大团队大规模稀疏数据机器学习库xLearn,c++ trending 已超TensorFlow的相关文章

谷歌也发布了Web前端机器学习库,就叫deeplearn.js

雷锋网 AI 科技评论按:在人工智能时代,不管是音箱.手机.汽车.app,自家产品没有用上深度学习都不好意思跟别人打招呼:另外,谷歌和 Facebook 都分别在 TensorFlow 和 Caffe 2 里提出了在移动设备上运行机器学习算法的目标和相关支持,更优秀的框架和更低的计算力要求确实是移动应用开发者的福音.不过这还没完,在浏览器上以 WebApp 的形式做模型推理甚至模型训练也有重要的开发和应用需求. 以往大家对前端机器学习库的关注度较低,不外乎人们认为 JavaScript 运行速度

俄罗斯最大搜索引擎Yandex开源了一款梯度提升机器学习库CatBoost

现在,人工智能正在为越来越多的计算功能提供支持,今天,俄罗斯搜索巨头Yandex宣布,将向开源社区提交一款梯度提升机器学习库CatBoost.它能够在数据稀疏的情况下"教"机器学习.特别是在没有像视频.文本.图像这类感官型数据的时候,CatBoost也能根据事务型数据或历史数据进行操作. 今天,CatBoost以两种方式进行了亮相. 首先,Yandex宣布,将在自有服务中使用这款新的框架替换原来的机器学习算法MatrixNet.MatrixNet一直被应用在公司的很多业务上,比如排名.

Python机器学习库

   Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: 比较成熟的(广播)函数库: 用于整合C/C++和Fortran代码的工具包: 实用的线性代数.傅里叶变换和随机数生成函数.      SciPy是一个开源的Python算法库和数学工具包,SciPy包含的模块有最优化.线性代数.积分.插值.特殊函数.快速傅里叶变换.信号处理和图像处理.常微分方程求解和其他科学与工程中常用的

盘点:为 Java 开发者量身定制的五款机器学习库

Weka 地址:http://www.cs.waikato.ac.nz/ml/weka/index.html  毫无疑问,Weka 是目前首选的 Java 机器学习库. 它由新西兰怀卡托大学(University of Waikato)的机器学习项目组研发.其命名来源于一种新西兰特有的不会飞的鸟--新西兰秧鸡,新西兰秧鸡的英文名称就是 Weka.按照官网描述,Weka 吸收了许多目前常用的机器学习算法,并且完全基于 Java 环境,开源,免费,具有易于使用的图形界面,适合于数据挖掘,数据分析和预

《Spark 官方文档》机器学习库(MLlib)指南

机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib由一些通用的学习算法和工具组成,包括分类.回归.聚类.协同过滤.降维等,同时还包括底层的优化原语和高层的管道API. MLllib目前分为两个代码包: spark.mllib 包含基于RDD的原始算法API. spark.ml 则提供了基于DataFrames 高层次的API,可以用来构建机器学习管道. 我们推荐您使用spark.ml,因为基于DataFram

谷歌大脑团队发文:机器学习今年将大放异彩

谷歌秘密实验室X诞生的许多项目,看起来都像是对公司主业之外的探索.然而内部代号为Google Brain的人工智能项目却与众不同,它不仅预示着谷歌未来的发展方向,而且正在深刻影响着该公司的许多业务.Google Brain团队的长期目标是开发更智能化的软件和系统,从不同领域改善人类的生活.显然这需要很长时间才能实现,为此我们需要退后一步,回顾下过去1年Google Brain团队取得的成果,并分享我们对2017年的展望. 1.研究出版物 我们评估自己研究质量的重要方式之一,就是在国际顶级机器学习

阿里Atlas开源?提升团队移动开发效率

本文讲的是阿里Atlas开源?提升团队移动开发效率[IT168 资讯]继Weex之后,阿里在移动技术领域又有开源大动作. 3月13日,手机淘宝安卓客户端容器化框架Atlas正式宣布开源. Atlas由阿里巴巴移动团队自研,以容器化思路解决大规模团队协作问题,实现并行开发.快速迭代和动态部署,适用于Android 4.x以上系统版本的大小型App开发. Atlas特别适用于大规模团队的协同开发.通过提供组件化.动态性.解耦化的支持,Atlas能够实现每个业务在开发阶段独立编译.独立调试.独立运行,

《Scala机器学习》一一3.4 机器学习库

3.4 机器学习库 Spark是基于内存的存储系统,它本质上能提高节点内和节点之间的数据访问速度.这似乎与ML有一种自然契合,因为许多算法需要对数据进行多次传递或重新分区.MLlib是一个开源库,但仍有一些私人公司还在不断按自己的方式来实现MLlib中的算法. 在第5章会看到大多数标准机器学习算法可以表示为优化问题.例如,经典线性回归会最小化回归直线与实际y值之间的距离平方和: 其中,是由下面的线性表达式所得到的预测值: A通常称为斜率,B通常称为截距.线性优化问题更一般化的公式可以写成最小化加

《面向机器智能的TensorFlow实践》一1.3 TensorFlow:一个现代的机器学习库

1.3 TensorFlow:一个现代的机器学习库 TensorFlow由谷歌于2015年11月向公众正式开源,它是汲取了其前身-DistBelief在创建和使用中多年积累的经验与教训的产物.TensorFlow的设计目标是保证灵活性.高效性.良好的可扩展性以及可移植性.任何形式和尺寸的计算机,从智能手机到大型计算集群,都可运行TensorFlow.TensorFlow中包含了可即刻将训练好的模型产品化的轻量级软件,有效地消除了重新实现模型的需求.TensorFlow拥抱创新,鼓励开源的社区参与