零距离观察蚂蚁+阿里中的大规模机器学习框架

  • 时间:
  • 浏览:4
  • 来源:大发5分6合_大发5分6合官网

除了在线和离线之外,还有或多或少大规模的算法扩展:

本文根据蚂蚁金服的资深技术专家周俊在蚂蚁金服&阿里云在线金融技术峰会上《大规模机器学习在蚂蚁+阿里的应用》的分享收集而成。在分享中,周俊全部介绍了阿里巴巴大规模机器学习框架——参数服务器的设计理念以及优化最好的妙招,并结合支付宝、阿里妈妈直通车搜索广告等具体场景详解了参数服务器在蚂蚁金服和阿里内的应用;分享最后,他对大规模机器学习的未来发展做了展望。

图十七 或多或少扩展算法

 

全部异步更新策略

 

图十八 典型应用一:支付宝钱包

• Jeff Dean, et. al, “Large Scale Distributed Neural Networks,” (DistBelief), NIPS’2012

图四 大数据与大规模模型结合

Sever更新策略

• H. Brendan McMahan, Gary Holt,“Ad Click Prediction - a View from the Trenches”, KDD’2013

参数服务器在算法上的优化

第有一种更新策略介于全部同步和全部异步之间,称之为有界异步。有界异步也能从机器1和机器2上看出,最快的机器非要比最慢的机器快太久,两者之间有一定的界限。通过你或多或少机制提高模型的稳定性。

Worker是将数据源的不同行加载到不同的Worker上,实现数据分片,一起通过计算接口完成梯度计算。

在线学习是工业界常用的另一类算法。在线学习是指每来另六个 (批)训练样本,就用该样本的梯度对模型迭代一次,时效性较好。

图六 工业界现有的系统的不足

这其中的实现过程是基于大规模学习平台,通过协同过滤、监督学习、形态迭代优化,来满足用户个性化需求,提升用户体验。

 

 

Sever本质上是分布式Key-value存储系统,它将另六个 非常大的模型,通过一致性Hash切成多片,在多个Server上分担压力,进行模型分片。

图十二 全部异步更新策略

 

如上图所示,分布式学习系统将两者的繁杂度结合起来。每另六个 维度和算法全部完会融合、交叠。在网络方面,前要考虑网络的通信速率,将会模型非常大,将会直接预发会造成网络的巨大负担,将会或多或少流量不发,又会影响训练和模型的正确率。

设计理念

当今朋友正处于另六个 大数据时代,Google每天产生500亿查询、500亿Served广告、500万亿indexed网页;FaceBook目前全球超过14亿用户,每天分享43亿内容;推特每天产生4.3亿Tweets;Apple Store每天App下载量达到1亿左右。国内的互联网公司,阿里巴巴一年产生86亿包囊邮寄,平均每天23540万 个;蚂蚁金服/支付宝在2015年双十一当天共产生7.1亿笔支付。

图十 参数服务器抽象接口

在阿里妈妈的应用主可是我 阿里妈妈直通车搜索广告。计算广告学的核心哪几个的问题图片可是我 在给定的环境下,用户与广告的最佳匹配。它的传统实现最好的妙招是通过机器学习和历史数据,进行精准的CTR预估。

如何结合Parameter Server对逻辑回归进行改进呢?

那如何通过Parameter Server对在线学习进行改进呢?

• http://www.domo.com/learn/data-never-sleeps-2

1.支持更多的通用模式,如Graph及其升级版。

 

图一 大数据时代

有界异步更新策略

综合考虑模型训练正确率、故障处置、慢机等因素,性价比高的选泽是参数服务器(Parameter Sever)。

结合上图来看,当搜索鲜花时,界面右侧和下侧会显示掌柜热卖的广告,通过收集血块的用户形态、广告形态和场景形态等交叉形态,通过加大形态和样本规模,一起算法和系统协同提升,基于大规模机器学习平台,提升CTR。

在并且的分析中,阿里巴巴的ODPS中的MPI为例,统计了MPI中的Job的成功率(上图所示),当Work数超过50000时,成功率低于500%,从而由于分析稳定性很差,浪费血块的资源和费用。将会处于稳定性和成功率等哪几个的问题图片,朋友或多或少人设计了一套参数服务器框架。

 

幻灯片下载:点击进入

通过上述机制,最终实现提速超5000%,支持千亿级别样本跟形态的效果。

如此 大的数据和如此 大的模型如何进行结合呢?思路是采用分布式学习系统,结合算法和系统两方面入手。

图十六 逻辑回归与在线学习结合

直播视频:点击此处观看

 

 

 

图八 参数服务器框架图

图二 如何利用大数据

Server有有一种更新策略。

• Petuum: http://www.petuum.com/

分布学习系统包括两大模块:模型和分布式系统。其中模型前要处置训练和正确率的哪几个的问题图片,分布式系统前要考虑并行、网络、慢机、故障处置、调度。

全链路优化方面:

• Alex Smola and Shravan Narayanamurthy, “An Architecture for Parallel Topic Models,”

图三 大数据带来的挑战

• Mu Li, ODSI’2014 and NIPS’2014 Workshop papers (Sparse LR model, block based proximal,

---------------------------------------------------------------------------------------------------------------------------------

 

图十三 有界异步更新策略

第有一种全部同步更新,图中所示的机器1和机器3人太好很早就完成了Iteration,但将会机器2是慢机,可是我 机器1、机器2、机器3前要听候最慢的机器完成iteration,才也能与server进行通信,这上面处于血块的资源浪费,但全部完会一定的优点:收敛性很好,多次运行后模型差别不大,一起还便于调试。

图十九 典型应用二:阿里妈妈直通车搜索广告

图九 参数服务器具体框架

• Sibyl: A System for Large Scale Machine Learning at Google

• 鲁肃:人工智能驱动的金融生活 at Strata + Hadoop 2016

• icml14_sysml :emerging systems for large-scale machine learning

未来展望

 

(Downpouring ASGD and SoundBlaster LBFGS, model parallelism)

参考文献

全部同步更新策略

逻辑回归是有一种线性回归模型,在分类上应用广泛,通过logit函数将线性回归的值限制在[0,1]范围内,增强了模型的鲁棒性。在工业界应用较多的是稀疏逻辑回归,通过L1正则化构造稀疏模型,具有简单、实用、可扩展、形态操作性强等特点,适合大规模哪几个的问题图片,一起应用场景非常富有(如点击率估算),是应用非常广泛的机器学习模型。

参数服务器是机器学习的核心竞争力和技术壁垒之一,之可是我 如此 说是将会:首先,它前要使用大数据(1T-1P)快速训练、快速迭代优化;一起前要考虑failover、通信/计算速率、收敛速率等多个形态。

典型应用场景

图十一 全部同步更新策略

第另六个 应用场景是支付宝钱包内的刮刮卡业务,蚂蚁会员在支付宝客户端内转账到卡、缴费、余额宝转入、信用卡还款等场景下,使用支付宝支付,都能获得一次刮奖将会。

 

2.正确率和速率的折中,是是是否是是也能进行采样丢弃主次数据?是是是否是是也能通过更好的异步算法充分利用数据?是是是否是是也能繁杂算法有一种,更好的适配参数服务器框架?

目前,朋友实现了超大规模的CTR预估算法,结合Server的更新动作,实现同步/异步的控制。在算法优化方面:

用户在不同场景下有不同的响应,结合哪几个数据通过机器学习得到模型,因此进行智能决策,如个性化推荐、搜索个性化等。上图中显示的监督学习的案例,监督学习通过搜集血块用户的日志、用户行为,因此抽取成形态,因此将形态送入机器学习系统中,系统通过一定的最好的妙招得到相应的模型。另六个 用户到来并且,对用户形态进行提取,将用户形态送入模型中,得到预测结果。类式记录用户的点击。购买、收藏等行为,经过模型的预测,根据用户并且的偏好,进行个性化推荐。

最终达到5000亿/5000亿样本几十分钟内就也能收敛的效果。

图五 分布式学习系统

慢机方面,在数千台机器中,肯定会处于机器处置速率的差异,将会采用全部同步的最好的妙招,迭代的速率是取决于最慢的机器,这就造成了资源的巨大浪费。第三故障处置,数千台机器中完会突然出现机器挂掉的哪几个的问题图片,机器挂掉并且如何让训练继续进行,获得正确的训练模型这也是另六个 非常大的挑战。

不论是人工智能还是或多或少前沿技术,都离不开高质量的数据和强大的计算平台以及高效的算法平台,前要三者协同提升。未来的发展方向主要集中在以下另六个 方面:

VLDB’2010 (Synchronous Worker-Server structure, no Coordinator)

大数据给机器学习带来机遇的一起也带来了相应的挑战。第另六个 挑战是模型会非常大,谷歌的大型机器学习系统Sibyl,五年前的训练数据在1T到1P左右,形态级别达到百亿到千亿级别;样本同样是百亿到千亿级别。

图七 大规模学习框架——参数服务器

第二种更新机制全部与第有一种更新机制相反:全部异步更新。全部异步是说机器1、机器2、机器3随到随走,三者之间互相不可见,唯一的交互点是Parameter Server。你或多或少更新策略的速率非常高,各机器之间如此 任何听候。一起也会带来或多或少哪几个的问题图片,收敛很困难。

大规模机器学习框架-参数服务器

正如上文所提到的,在大数据上,利用机器学习从中学习到知识,是人工智能取得突破的主要手段,也是系统架构师面临的重要挑战之一。可是我 的模型和抽象先后用于处置你或多或少任务,从最早期的MPI,到并且的MapReduce,再到当前使用较多的Graph、Spark等。

框架的大致形态如上图所示,包括三大模块:Server Node、Worker Node、Coordinator,分别用于模型分片存储、数据分片存储和总体流程控制。该形态相对于MPI的优势在于:

首先看一下现有工业界系统的缺点:

Worker和server通过Pull和Push另六个 接口进行通信,完成模型的迭代更新。Push主可是我 将worker上的Weight推到server上,从而节省血块的流量,提高网络利用率;server更新并且,worker通过Pull动作从server上拉去Weight到本地。

3.是是是否是是前要更加通用化的DataFlow,支持多种软硬件平台,降低大规模机器学习的门槛。

具体来讲,Coordinator主要进行迭代控制,一起完成Failover管理,当Worker或Server挂掉时,由Coordinator进行处置;当Worker、Server和整个Job都失败的情况表下,通过Checkpoint机制,在下一次启动时从上一次保存的上面结果继续前进。

图十四 参数服务器与逻辑回归算法结合

如此 多数据如何也能有价值地将其利用起来呢?

 

以下为收集内容。

目前,朋友实现了超大规模在线机器学习算法(异步FTRL)。通过有界异步ASGD提高速率,一起模型的收敛性有较强的保证;一起基于mini batch的稀疏通信,在百亿形态下,每个mini batch通信为毫秒级别;此外,在模型中加入类式Trust region的最好的妙招,提高模型稳定性。

bounded delay asynchronous communication, KKT filter/significantly modified filters)