如何搭建大规模机器学习平台?以阿里和蚂蚁的多个实际场景为例

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介:

近年来,随着“大”数据及“大”模型的出现,学术界和工业界对分布式机器学习算法引起了广泛关注。针对这一刚需,本论文设计了一个独一无二的分布式平台——鲲鹏。它无缝的结合了分布式系统及并行优化算法,解决了大规模机器学习算法带来的一系列问题。鲲鹏不仅囊括了数据/模型并行、负载平衡、模型同步、稀疏表示、工业容错等特性,而且还提供了封闭好的、宜于调用的API供普通的机器学习者开发分布式算法,降低使用成本并提升效率。

image

本论文的实验在十亿级别的样本和特征数据上进行,结果表示,鲲鹏这一设计使得一系列算法的性能都得到了极大的提升,包括FTRL,Sparse-LR,以及MART。此外,鲲鹏在阿里巴巴双11狂欢购物节及蚂蚁金服的交易风险检测中体现出了其巨大的应用价值。

研究背景

现在是个大数据的时代,各个平台的数据量都与时俱进。举例而言,国外的Twitter每天新增5亿条Tweets,阿里巴巴每天有5000万个包裹,蚂蚁金服的支付宝交易峰会达到12万笔/秒,仅仅在2016年双11当天就产生了10.5亿条交易。如此大的数据量使得机器学习不得不面临着样本及特征规模巨大的挑战。例如,阿里巴巴内部的模型会达到千亿样本,百亿特征,TB-TP级的训练数据量。因此,如果搭建能够训练如此大规模数据的机器学习平台是工业界面临的一个巨大问题。

已有方法介绍

image
图1阿里某生产集群中MPI任务状态

目前,业界已经有一些比较成熟的分布式处理框架,如Hadoop,Spark,GraphLab和GraphX。虽然它们可以支持机器学习算法并行化,但它们很难让开发人员设计出更有效率且支持更大规模的机器学习算法。具体而言,Hadoop和Spark虽然提供了一些同步和粗粒度运算符(例如,Map,Reduce 和 Join 等),但主要还停留在解决中小规模机器学习的问题。

GraphLab/GraphX主要是为了图存储和计算,并不适用于普通的大规模机器学习算法。MPI虽然能够支持普通的分布式计算,但其缺乏容错机制。特别是在worker很大的情况下,MPI的运行成功率会大大降低,如图1所示。因此,如何设计更有效率且支持更大规模的机器学习算法成为一个业界难题。

鲲鹏的研究动机及创新性

鲲鹏取名自《庄子·逍遥游》,文中记载“北冥有鱼,其名曰鲲。鲲之大,不知其几千里也;化而为鸟,其名为鹏。鹏之背,不知其几千里也。怒而飞,其翼若垂天之云。”在我们的鲲鹏系统中,“鲲”即是超大规模分布式计算系统,它拥有超强的计算能力;而“鹏”即是超大规模分布式优化算法,它建立在“鲲”之上。“鲲鹏”即同时拥有超大规模分布式计算系统及超大规模分布式优化算法,合二为一使得它有“一飞冲天”的能力,如图2所示。


image
图2鲲鹏的研究动机及创新性

系统创新

鲲鹏的创新在于它拥有了以下功能:

强大的容错功能,甚至在复杂且忙碌的线上集群环境中
Backup Instancefor Straggler Management
支持有向无循环图形式的调度和同步,包括BSP/SSP/ASP
用户友好的界面和编程

算法创新

鲲鹏架构使得常用的机器学习算法的大规模化成为了可能,截止目前,已经有众多机器学习算法在鲲鹏上得以实现和应用,包括但不限于LR,FTRL,MART,FM,HashMF,DSSM,DNN,LDA。

鲲鹏的架构

总体架构


image
图3鲲鹏的架构

鲲鹏的架构如图3所示,它建立在阿里巴巴集团内部的大规模分布式 Apasra 平台上面,拥有Robust Failover、Backup Instance,以及 DGA for Scheduling &Synchronization等特性。图3中的核心模块包括以下几部分:

Server nodes:对模型做分片存储
Worker nodes:对训练数据做分片并计算
Coordinator:控制算法整体流程,如初始化,迭代,终止等
ML Bridge:使用脚本形式的工作流对数据进行预处理
PS-Core:核心的参数服务器组件(servers/workers/coordinator)
Fuxi:监控所有机器运行状态,必要时进行容错

用户视角


image
图4鲲鹏架构用户视角

鲲鹏系统的调用,对普通用户而言也非常简单。用户只需要使用简单的几行脚本形式的命令,即可完成整个算法的调度。整个过程主要包括:

数据预处理,准备成算法接受格式
构建算法的输入/出表
调用鲲鹏算法,ps_train -i demo_batch_input -o demo_batch_result -a xxAlgo -t
xxTermination;
评估算法效果
进行A/B测试
从图4中可以看出,整个流程对用户而言都是透明的,使用过程也“如丝般顺滑”,不用感知算法背后复杂的优化及调度过程。

开发者视角


image
图5鲲鹏架构开发者视角

鲲鹏架构对普通的机器学习算法开发者而言也非常简单。它将复杂的通信及调度过程包装成了API。如,Worker.PullFrom(Server),开发者只需要这一行简单的代码即可把模型从server端pull到worker端。再如,SyncBarrier(),这开发者只需要这一行简单的代码即可完成server端模型的同步。

实验结果

与Spark和MPI的比较

image
图6鲲鹏与Spark和MPI训练时间及内存消耗对比

图6显示了在七个不同数据集上(D1-D7),鲲鹏与Spark和MPI的逻辑回归算法(LR)训练时间及内存消耗对比。如D1(460K,20M)指该数据集包含了46万特征,2000万样本。从中可以看出,Spark和MPI的LR在特征超大的情况下(D7)会出错,而鲲鹏的LR则可顺利训练成功。

Kunpeng-MART与XGBoost比较

image
图7 Kunpeng-MART与XGBoost内存消耗对比结果

图7显示了基于鲲鹏实现的MultipleAdditive Regression Trees(MART)与开源的XGBoost在四个不同数据集上的对比结果。从中可以看出,基于鲲鹏的MART内存使用情况要稳定的低于XGBoost。此外,我们在Ads CVR2数据上重复跑了10次XGBoost,但无一成功得到结果。图8显示了基于鲲鹏的MART和XGBoost在相同数据集上运行时间的对比,其中也可以看出基于鲲鹏的MART训练时间要优于XGBoost。

image
图8 Kunpeng-MART与XGBoost训练时长对比结果

Worker数量对算法的影响实验


image
图9 Worker数量与算法加速及单Worker内存使用关系

图9显示了Worker数量与算法加速及单Worker内存使用的关系。在该实验中,我们使用的是基于鲲鹏的稀疏LR算法,特征约有70亿个,样本约有180亿个。从中可以看出,25个worker就能训练这些数据。而且随着worker的增多,算法训练速度倍增,同时单机上的内存使用会倍降。

总结

本文所提出的分布式学习系统——鲲鹏,拥有强大的分布式计算能力和算法优化能力,同时也有用户友好的界面和接口。在实际的在线或离线任务中,它能接受百亿特征,千亿样本和万亿参数。同时,它在生产集群中,有着很好的健壮性、灵活性、扩展性及高效性。此外,它在阿里和蚂蚁众多实际场景中发挥出了巨大的优势。例如,在2015年“双11”中,鲲鹏系统上实现的“楼层”排序(LR算法)使得UV CTR提升了21%,GMV提升了10%。

再如,基于鲲鹏实现的GBDT+DNN算法应用在支付宝交易风险评估业务中,该算法上线以来,相同覆盖度的情况下,案件召回率从 91% 增加到 98%,每天减少了几千万次用户的打扰。此外,在鲲鹏上实现的Deep Structured Semantic Model(DSSM)模型,已经广泛被应用于神马搜索,淘宝搜索,1688广告,蚂蚁智能客服等业务中。

总体来说,鲲鹏系统上的10+个成熟算法已经被广泛应用于120+个产品中,这些无一不是阿里生态体系内最大规模的算法。

团队:蚂蚁金服人工智能部&阿里云
作者:周俊,李小龙,赵沛霖,陈超超,李龙飞,杨新星,崔卿,余晋,陈绪,丁轶,漆远

来源:阿里技术
原文链接

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
25天前
|
存储 人工智能 大数据
AI开发新范式,PAI模型构建平台升级发布
本次分享由阿里云智能集团产品专家高慧玲主讲,聚焦AI开发新范式及PAI模型构建平台的升级。分享分为四个部分,围绕“人人可用”和“面向生产”两大核心理念展开。通过降低AI工程化门槛、提供一站式全链路服务,PAI平台致力于帮助企业和开发者更高效地实现AI应用。案例展示中,介绍了多模态模型微调在文旅场景的应用,展示了如何快速复现并利用AI解决实际问题。最终目标是让AI技术更普及,赋能各行业,推动社会进步。
|
3月前
|
机器学习/深度学习 测试技术
阿里云入选Gartner数据科学和机器学习平台挑战者象限
Gartner® 正式发布了《数据科学与机器学习平台魔力象限》报告(Magic Quadrant™ for Data Science and Machine Learning Platforms),阿里云成为唯一一家入选该报告的中国厂商,被评为“挑战者”(Challengers)。
|
5天前
|
人工智能 智能设计 数据处理
|
2月前
|
机器学习/深度学习 人工智能 监控
AutoTrain:Hugging Face 开源的无代码模型训练平台
AutoTrain 是 Hugging Face 推出的开源无代码模型训练平台,旨在简化最先进模型的训练过程。用户无需编写代码,只需上传数据即可创建、微调和部署自己的 AI 模型。AutoTrain 支持多种机器学习任务,并提供自动化最佳实践,包括超参数调整、模型验证和分布式训练。
222 4
AutoTrain:Hugging Face 开源的无代码模型训练平台
|
5月前
|
机器学习/深度学习 存储 人工智能
提升深度学习性能的利器—全面解析PAI-TorchAcc的优化技术与应用场景
在当今深度学习的快速发展中,模型训练和推理的效率变得尤为重要。为了应对计算需求不断增长的挑战,AI加速引擎应运而生。其中,PAI-TorchAcc作为一个新兴的加速引擎,旨在提升PyTorch框架下的计算性能。本文将详细介绍PAI-TorchAcc的基本概念、主要特性,并通过代码实例展示其性能优势。
18183 166
|
3月前
|
机器学习/深度学习 人工智能 算法
机器学习【教育领域及其平台搭建】
机器学习【教育领域及其平台搭建】
82 6
|
5月前
|
机器学习/深度学习 资源调度 分布式计算
阿里PAI-ChatLearn:大规模 Alignment高效训练框架正式开源
PAI-ChatLearn现已全面开源,助力用户快速、高效的Alignment训练体验。借助ChatLearn,用户可全身心投入于模型设计与效果优化,无需分心于底层技术细节。ChatLearn将承担起资源调度、数据传输、参数同步、分布式运行管理以及确保系统高效稳定运作的重任,为用户提供一站式解决方案。
|
5月前
|
机器学习/深度学习 运维
【阿里天池-医学影像报告异常检测】4 机器学习模型调参
本文提供了对医学影像报告异常检测任务中使用的机器学习模型(如XGBoost和LightGBM)进行参数调整的方法,并分享了特征提取和模型调优的最佳实践。
69 13
|
5月前
|
机器学习/深度学习 运维 算法
【阿里天池-医学影像报告异常检测】3 机器学习模型训练及集成学习Baseline开源
本文介绍了一个基于XGBoost、LightGBM和逻辑回归的集成学习模型,用于医学影像报告异常检测任务,并公开了达到0.83+准确率的基线代码。
91 9
|
6月前
|
数据采集 人工智能 自然语言处理
阿里云百炼平台深度体验:智能问答与模型训练的创新之旅
在人工智能的浪潮中,阿里云百炼平台以其强大的大模型开发能力,为企业和个人开发者提供了一站式的解决方案。本文将从知识检索应用搭建、模型训练调优以及流程管理功能三个角度,全面评测阿里云百炼平台的实际使用体验。
369 4

热门文章

最新文章