丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
本论文的实验在十亿级别的样本和特征数据上进行,结果表示,鲲鹏这一设计使得一系列算法的性能都得到了极大的提升,包括FTRL,Sparse-LR,以及MART。此外,鲲鹏在阿里巴巴双11狂欢购物节及蚂蚁金服的交易风险检测中体现出了其巨大的应用价值。
研究背景
现在是个大数据的时代,各个平台的数据量都与时俱进。举例而言,国外的Twitter每天新增5亿条Tweets,阿里巴巴每天有5000万个包裹,蚂蚁金服的支付宝交易峰会达到12万笔/秒,仅仅在2016年双11当天就产生了10.5亿条交易。如此大的数据量使得机器学习不得不面临着样本及特征规模巨大的挑战。例如,阿里巴巴内部的模型会达到千亿样本,百亿特征,TB-TP级的训练数据量。因此,如果搭建能够训练如此大规模数据的机器学习平台是工业界面临的一个巨大问题。
GraphLab/GraphX主要是为了图存储和计算,并不适用于普通的大规模机器学习算法。MPI虽然能够支持普通的分布式计算,但其缺乏容错机制。特别是在worker很大的情况下,MPI的运行成功率会大大降低,如图1所示。因此,如何设计更有效率且支持更大规模的机器学习算法成为一个业界难题。
鲲鹏的研究动机及创新性
鲲鹏取名自《庄子·逍遥游》,文中记载“北冥有鱼,其名曰鲲。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也。怒而飞,其翼若垂天之云。”在我们的鲲鹏系统中,“鲲”即是超大规模分布式计算系统,它拥有超强的计算能力;而“鹏”即是超大规模分布式优化算法,它建立在“鲲”之上。“鲲鹏”即同时拥有超大规模分布式计算系统及超大规模分布式优化算法,合二为一使得它有“一飞冲天”的能力,如图2所示。
鲲鹏的创新在于它拥有了以下功能:
强大的容错功能,甚至在复杂且忙碌的线上集群环境中BackupInstanceforStragglerManagement支持有向无循环图形式的调度和同步,包括BSP/SSP/ASP用户友好的界面和编程
算法创新
鲲鹏架构使得常用的机器学习算法的大规模化成为了可能,截止目前,已经有众多机器学习算法在鲲鹏上得以实现和应用,包括但不限于LR,FTRL,MART,FM,HashMF,DSSM,DNN,LDA。
鲲鹏的架构
总体架构
Servernodes:对模型做分片存储Workernodes:对训练数据做分片并计算Coordinator:控制算法整体流程,如初始化,迭代,终止等MLBridge:使用脚本形式的工作流对数据进行预处理PS-Core:核心的参数服务器组件(servers/workers/coordinator)Fuxi:监控所有机器运行状态,必要时进行容错
用户视角
数据预处理,准备成算法接受格式构建算法的输入/出表调用鲲鹏算法,ps_train-idemo_batch_input-odemo_batch_result-axxAlgo-txxTermination;评估算法效果进行A/B测试从图4中可以看出,整个流程对用户而言都是透明的,使用过程也“如丝般顺滑”,不用感知算法背后复杂的优化及调度过程。
开发者视角
鲲鹏架构对普通的机器学习算法开发者而言也非常简单。它将复杂的通信及调度过程包装成了API。如,Worker.PullFrom(Server),开发者只需要这一行简单的代码即可把模型从server端pull到worker端。再如,SyncBarrier(),这开发者只需要这一行简单的代码即可完成server端模型的同步。
实验结果
总结
本文所提出的分布式学习系统——鲲鹏,拥有强大的分布式计算能力和算法优化能力,同时也有用户友好的界面和接口。在实际的在线或离线任务中,它能接受百亿特征,千亿样本和万亿参数。同时,它在生产集群中,有着很好的健壮性、灵活性、扩展性及高效性。此外,它在阿里和蚂蚁众多实际场景中发挥出了巨大的优势。例如,在2015年“双11”中,鲲鹏系统上实现的“楼层”排序(LR算法)使得UVCTR提升了21%,GMV提升了10%。
总体来说,鲲鹏系统上的10+个成熟算法已经被广泛应用于120+个产品中,这些无一不是阿里生态体系内最大规模的算法。
团队:蚂蚁金服人工智能部&阿里云作者:周俊,李小龙,赵沛霖,陈超超,李龙飞,杨新星,崔卿,余晋,陈绪,丁轶,漆远