XLearning-XDML
XDML是一款基于参数服务器(Parameter Server),采用专门缓存机制的分布式机器学习平台。 XDML内化了学界最新研究成果,在效果保持稳定的同时,能大幅加速收敛进程,显著提升模型与算法的性能。同时,XDML还对接了一些优秀的开源成果和360公司自研成果,站在巨人的肩膀上,博采众长。 XDML还兼容hadoop生态,提供更好的大数据框架使用体验,将开发者从繁杂的工作中解脱出来。XDML已经在360内部海量规模数据上进行了大量测试和调优,在大规模数据量和超高维特征的机器学习任务上,具有良好的稳定性,扩展性和兼容性。
欢迎对机器学习或分布式有兴趣的同仁一起贡献代码,提交Issues或者Pull Requests。
针对超大规模机器学习的场景,奇虎360开源了内部的超大规模机器学习计算框架XDML。XDML是一款基于参数服务器(Parameter Server),采用专门缓存机制的分布式机器学习平台。它在360内部海量规模数据上进行了测试和调优,在大规模数据量和超高维特征的机器学习任务上,具有良好的稳定性,扩展性和兼容性。
XDML的核心参数服务器架构,包括以下组件:
XDML的配置包,包括对参数服务器的配置和对作业及模型相关的配置。包括以下组件:
XDML向PS提交的作业,包括拉取和推送。包括以下任务:
Task
PullTask
PushTask
XDML模型的优化算法包。包括以下优化算法:
XDML中已经实现的部分机器学习模型。包括以下模型:
...
XDML中特征分析和特征处理模块。
特征分析覆盖常见的分析指标,如数值型特征的偏度、峰度、分位数,与label相关的auc、ndcg、互信息、相关系数等指标。
特征处理覆盖常见的数值型、类别型特征预处理方法。包括以下算子:
CategoryEncoder
MultiCategoryEncoder
NumericBuckter
NumericStandardizer
XDML中包含用南京大学李武军老师提出的Scope优化算法进行训练的线性模型,以及部分H2O模型的spark pipeline封装。具体包括以下模型:
LinearScope
MultiLinearScope
OVRLinearScope
H2ODRF
H2OGBM
H2OGLM
H2OMLP
XDML中作业提交实例,可以参考Example.
XDML是基于Kudu、HazelCast以及Hadoop生态圈的一款基于参数服务器的,采用专门缓存机制的分布式机器学习平台。
centos >= 7
Jdk >= 1.8
Maven >= 3.5.4
scala >= 2.11
hadoop >= 2.7.3
spark >= 2.3.0
sparkling-water-core >= 2.3.0
kudu >= 1.9
HazelCast >= 3.9.3
XDML基于Kudu,请首先部署Kudu。Kudu的安装部署请参考Kudu。
git clone https://github.com/Qihoo360/XLearning-XDML
mvn clean package -Dmaven.test.skip=true
编译完成后,在源码根目录的target
目录下会生成:xdml-1.0.jar
、xdml-1.0-jar-with-dependencies.jar
等多个文件,xdml-1.0.jar
为未加spark、kudu等第三方依赖,xdml-1.0-jar-with-dependencies.jar
添加了spark、kudu等依赖包。
算法参数
spark.xdml.learningRate:学习率
训练参数
spark.xdml.job.type:作业类型
spark.xdml.train.data.path:训练数据路径
spark.xdml.train.data.partitionNum:训练数据分区
spark.xdml.model.path:模型存储路径
spark.xdml.train.iter:训练迭代次数
spark.xdml.train.batchsize:训练数据batch大小
PS相关参数
spark.xdml.hz.clusterNum:hazelcast集群机器数目
spark.xdml.table.name:kudu表名称
可以通过以下命令提交示例训练作业:
$SPARK_HOME/bin/spark-submit --master yarn-cluster --class net.qihoo.xitong.xdml.example.LRTest --num-executors 50 --executor-memory 40g --executor-cores 2 --driver-memory 4g --conf "spark.xdml.table.name=lrtest" --conf "spark.xdml.job.type=train" --conf "spark.xdml.train.data.path=$trainpath" --conf "spark.xdml.train.data.partitionNum=50" --conf "spark.xdml.hz.clusterNum=50" --conf "spark.xdml.model.path=$modelpath" --conf "spark.xdml.train.iter=5" --conf "spark.xdml.train.batchsize=10000" --conf "spark.xdml.learningRate=0.1" --jars xdml-1.0-jar-with-dependencies.jar xdml-1.0-jar-with-dependencies.jar
注:提交命令中的设置有$SPARK_HOME
、$trainpath
、$modelpath
分别代表spark客户端路径、训练数据HDFS路径、模型存储HDFS路径
XDML参考了学界及工业界诸多优秀成果,对此表示感谢!
Shen-Yi Zhao, Ru Xiang, Ying-Hao Shi, Peng Gao, Wu-Jun Li, SCOPE: Scalable Composite Optimization for Learning on Spark. AAAI 2017: 2928-2934.
Shen-Yi Zhao, Gong-Duo Zhang, Ming-Wei Li, Wu-Jun Li.Proximal SCOPE for Distributed Sparse Learning.Proceedings of the Annual Conference on Neural Information Processing Systems (NIPS), 2018.
Shuxin Zheng, Qi Meng, Taifeng Wang, Wei Chen, Zhi-Ming Ma and Tie-Yan Liu, Asynchronous Stochastic Gradient Descent with Delay Compensation, ICML 2017.
上一篇:XLearning
下一篇:xlearn_doc
还没有评论,说两句吧!
热门资源
seetafaceJNI
项目介绍 基于中科院seetaface2进行封装的JAVA...
spark-corenlp
This package wraps Stanford CoreNLP annotators ...
Keras-ResNeXt
Keras ResNeXt Implementation of ResNeXt models...
capsnet-with-caps...
CapsNet with capsule-wise convolution Project ...
inferno-boilerplate
This is a very basic boilerplate example for pe...
智能在线
400-630-6780
聆听.建议反馈
E-mail: support@tusaishared.com