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

  • 时间:
  • 浏览:0

典型应用场景

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

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

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

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

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

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

图十二 完全异步更新策略

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

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

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

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

直播视频:点击此处观看

第五种完全同步更新,图中所示的机器1和机器3人太好很早就完成了Iteration,但原因分析分析分析机器2是慢机,一点一点机器1、机器2、机器3前要守候最慢的机器完成iteration,才可不前要与server进行通信,这里面指在极少量的资源浪费,但还会一定的优点:收敛性很好,多次运行后模型差别不大,共同还便于调试。

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

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

 

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

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

那怎样通过Parameter Server对在线学习进行改进呢?

 

在时候的分析中,阿里巴巴的ODPS中的MPI为例,统计了MPI中的Job的成功率(上图所示),当Work数超过30时,成功率低于30%,从而原因分析分析稳定性很差,浪费极少量的资源和费用。原因分析分析分析指在稳定性和成功率等问題,我们都都另一方设计了一套参数服务器框架。

 

 

怎样结合Parameter Server对逻辑回归进行改进呢?

 

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

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

越来越多数据怎样都可不都可以 有价值地将其利用起来呢?

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

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

 

未来展望

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

最终达到30亿/30亿样本几十分钟内就可不前要收敛的效果。

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

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

参数服务器是机器学习的核心竞争力和技术壁垒之一,都有可是越来越说是原因分析分析分析:首先,它前要使用大数据(1T-1P)快速训练、快速迭代优化;共同前要考虑failover、通信/计算速率、收敛速率等多个行态。

完全同步更新策略

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

图九 参数服务器具体框架

图三 大数据带来的挑战

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

 

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

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

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

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

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

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

 

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

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

图八 参数服务器框架图

• icml14_sysml :emerging systems for large-scale machine learning

图十 参数服务器抽象接口

图二 怎样利用大数据

图十一 完全同步更新策略

 

 

Server有五种更新策略。

(Downpouring ASGD and SoundBlaster LBFGS, model parallelism)

第五种更新策略介于完全同步和完全异步之间,称之为有界异步。有界异步可不前要从机器1和机器2上看出,最快的机器不到比最慢的机器快太大,两者之间有一定的界限。通过五种机制提高模型的稳定性。

图一 大数据时代

 

Sever更新策略

设计理念

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

全链路优化方面:

幻灯片下载:点击进入

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

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

 

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

2.正确率和速率的折中,是不是可不前要进行采样丢弃每项数据?是不是可不前要通过更好的异步算法充分利用数据?是不是可不前要多样化算法五种,更好的适配参数服务器框架?

有界异步更新策略

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

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

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

图五 分布式学习系统

参考文献

完全异步更新策略

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

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

 

 

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

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

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

第二种更新机制完全与第五种更新机制相反:完全异步更新。完全异步是说机器1、机器2、机器3随到随走,三者之间互相不可见,唯一的交互点是Parameter Server。五种更新策略的速率非常高,各机器之间越来越任何守候。共同也会带来一点问題,收敛很困难。

图六 工业界现有的系统的过低

图十三 有界异步更新策略

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

慢机方面,在数千台机器中,肯定会指在机器正确处理速率的差异,原因分析分析分析采用完全同步的妙招,迭代的速率是取决于最慢的机器,这就造成了资源的巨大浪费。第三故障正确处理,数千台机器中还会总出 机器挂掉的问題,机器挂掉时候怎样让训练继续进行,获得正确的训练模型这也是有六个 非常大的挑战。

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

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

图十七 一点扩展算法

以下为整理内容。

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