阿里云机器学习编程模型发展及介绍演

随着训练数据规模的持续扩大,模型特征的持续增长,常用的机器学习算法面临着越来越多的挑战。从很多人熟悉的R语言,到基于MPI的多机的计算框架,再到支持超大规模特征的Parameter Server架构,再到如今的深度学习计算框架,机器学习平台上的编程模型也在不断演进,以满足业务上持续的挑战。本次主题主要和大家分享PAI分布式机器学习平台的多种编程模型的演进过程。

机器学习在阿里的应用

阿里是一家数据公司,阿里的各项业务都严重依赖机器学习,比如搜索、个性化推荐、精准广告、风控模型、智能客服和物流等多项业务,在使用这些业务的背后都依赖于机器学习。

为了支撑集团业务对机器学习的需求,我们构建阿里云机器学习平台PAI,我们致力于构建阿里集团的统一机器学习平台,该平台致力于建设一站式的数据挖掘建模平台,平台具备的功能如下:

该平台提供完整链路的数据建模服务,包括数据清洗组件、特征处理组件、模型训练组件、模型生命周期管理组件和在线预测服务。通过机器学习平台,完整的从前端数据清洗到最后模型的预测,整个生命周期都可以基于机器学习PAI来做。

阿里数据规模及其庞大,机器学习平台PAI致力于提供先进计算框架,通过技术推动商业的发展,具体支持MapReduce、MPI、Parameter Server和Deep Learning Framework等框架。

编程模型演进

MapReduce编程模型

MapReduce编程模型的核心是分而治之,将常见的数据处理抽象成两个操作,Map & Reduce,Map操作就是根据用户数据分片映射成特定输出,后接Reduce对数据进行加工,MapReduce模型之所以非常流行,因为MapReduce在框架层面解决了以下几个分布式难题:

支持计算任务的划分和调度

支持数据的分布式存储和划分

支持计算任务的同步

支持计算节点的容错与恢复

那么,PAI上的算法是怎样基于MapReduce实现的?举例说明:

TF-IDF(term frequency–inverse document frequency),是用来评价某一单词对于某篇文档的重

要性。

• TF = COUNT(Word, Document) / SIZE(Document)代表单个单词在文档中出现次数

• IDF = log(N / docs(Word, Document)代表某单词在所有文档出现的次数

在Mapper里加载每一篇文档,同时我们会遍历这篇文档,统计文档中每个单词出现的频率,统计这篇文档中所有单词的个数,也会统计包含单词的文档个数;在Mapper里实现后,会将相应数据推送到Reducer,在Reducer算子里,会根据某个单词在文档里出现的次数除以这篇文档包含所有单词个数,就会得到term frequyency,然后我们会拿到一个单词出现的次数和所有文档里包含单词的次数,根据公式可以计算出inverse document frequency,将TF与IDF相乘,从而得到某个单词对某篇文档重要性。

和其它机器学习算法相比,MapReduce模型特别适合一些不同计算任务之间独立、数据并行度高的算法,也适合不需要不同节点通信的机器学习算法。

MPI编程模型

MPI全称叫消息传递接口(Message Passing Interface),严格意义来说,MPI并不是编程模型,更多是消息传递接口。MPI定义了很多底层通信接口,包括Send、Receive、Bcast和AllReduce等,MPI库支持单机多Instance和多机多Instance实现,正是由于MPI提供了高度灵活,描述能力强的接口,在过去的一二十年里,在科学计算领域得到大量应用。如今,在分布式计算集群里,也有很多算法可以借鉴MPI进行实现。

由于MPI计算任务通过底层分布式调度系统动态调度到不同机器上,而跑MPI任务时需要提前知道MPI任务需要运行相应host名字,所以我们对MPI底层网络拖口建立进行了重构,以此适配分布式调度系统。目前PAI机器学习上,支持两个版本的MPI,分别是MPICH (CPU)和OpenMPI (GPU),PAI MPI支持分布式调度,无需事先指定资源,支持本地调试,线上执行。

当给客户推荐商品时,会基于逻辑回归模型去判断商品是否会被用户点击,该名用户是男是女,方便给用户推荐商品。根据模型函数建立模型损失函数和梯度函数,图右为模型状态,我们想要收敛到最佳状态的模型,通过多轮迭代达到收敛,得到满意模型。这就要求在每轮迭代间对不同节点之间大家计算出的模型进行通信,进行allReduce的操作。

图为PAI MPI逻辑回归具体实现,假设有N个节点做好数据的分片,在每一轮迭代里会加载用户的训练数据,同时会基于当前模型计算梯度,在本地加和后会调用MPI接口AllReduce,这样,每轮迭代后所有计算节点都会得到新的模型,基于最新模型开始下一轮迭代,就会得到相对较优的逻辑回归模型。

PAI Parameter Server

MPI虽然接口灵活,算法实现快,但MPI也有缺点,比如不支持单点容错等。由于模型越来越复杂,训练样本越来越多,特征维数越来越高,对此,阿里独立自研设计实现Parameter Server框架,在集团内大规模使用,框架特点如下:

支持上百亿超大规模特征

支持多种数据切分方式

模型分片

高速通信框架,使得在不同worker和server间数据同步效率提高

优化内存使用

支持节点容错,使得PAI Parameter Server在数千台机器上进行模型训练任务成为可能

Deep Learning深度学习

传统机器学习算法做模型训练时,注意力可能放在训练数据上,放在了数据加工、图形处理上,我们需要更多理解数据,发现新特征;深度学习与常规的机器学习相比,从数据的理解到模型的创新,目前理论上可以证明,神经网络层数越多,层次越深,模型训练效果就会越好,这意味着我们需要支持更深的人工神经网络,更多的参数,更庞大的模型,更高量级的通信量,更灵活的表示模型。

TensorFlow

TensorFlow是谷歌第二代深度学习框架,支持各种神经网络,具备高度的灵活性和丰富的社区生态,支持CNN、RNN、LSTM等网络。

图为一个简单的分类模型,第一块和第二块代码,定义了训练样本和测试样本,第三块定义了模型结构,第四块定义了模型评估的实现,我们会用测试样本评估当前模型准确度。

接下来通过TensorFlow session API开始驱动模型训练,可以看出,TensorFlow提供API非常灵活,功能强大。目前在PAI上也提供了TensorFlow的计算服务。

PAI Pluto (多机多卡Caffe)

Caffe在图像领域得到大量使用,是流行的深度学习框架,网络通过有向无环图定义,对于CNN网络可以支持的更好,大量用于图像识别。

我们实现了多机多卡版Caffe,完全兼容Caffe语法,基于OpenMPI通信框架,支持线性加速比,多数据源支持。

机器学习即服务

PAI本身就是机器学习即服务的产品,通过PAI提供包括数据清洗、特征工程、模型训练和模型评价等多套工具。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容