最近TalkingData开源了Fregata,Fregata的主要作用是加速基于spark的机器学习的计算速度,据说10亿*10亿级别的数据如果缓存到内存中的话用1s钟就可以算完,如果不缓存的话,十秒钟搞定,如果这么来的话,那真是碉堡了,以下只是翻译,如果有不正确的欢迎指正
简介
·fregata是一个轻量级,超级快,大规模的基于基于spark的机器学习的框架,它提供了高水准的scalaAPI
·高精确度:对于各种问题,fregata比mllib来说能实现更高的精确度
·高速度:比MLLib快10-100倍,对于线性模型训练来说,如果10亿*10亿级别的数据如果缓存到内存中的话用1s钟就可以算完,如果不缓存的话,十秒钟搞定
·参数自由:Fregata使用GSA做优化,不需要进行学习速率的调整,因为在训练过程中会计算出一个适当的学习速度,当面临超高维度的问题时,Fregata会动态的计算剩余内存来确定怎么稀疏的输出来匹配最大的高精确度和高速度,这两个特征使得Fregata成为不同问题数据处理标准模块
·轻量:仅用了spark的标准API,使得它很容易就能无缝快速的集成到很多企业的数据处理流程上
架构:
目前的版本0.1
核心:基于GSA继承了单机版本的算法,包括分类回归和聚类算法,现在只支持二分类和多分类模型
spark:通过对spark的core.jar的包装,继承了spark的学习算法,
目前只支持scala2.10版本,spark版本的1.x.2.x都支持
我用maven构建的项目,引用如下
<dependency>
<groupId>com.talkingdata.fregata</groupId>
<artifactId>core</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.talkingdata.fregata</groupId>
<artifactId>spark</artifactId>
<version>0.0.1</version>
</dependency>
下篇就开始实现阶段