阿里云机器学习平台编程模型演进之路

票选最美云上大数据暨大数据技术峰会上,阿里云大数据事业部高级专家九丰为大家带来题为“阿里云机器学习平台编程模型演进之路”的演讲。本文主要从机器阿里云机器学习平台PAI开始谈起,重点分享了PAI分布式机器学习平台的多种编程模型,包括MapReduce、Parameter Server和MPI等,也简谈了TensorFlow和Pluto。

 

以下为精彩内容整理:

随着训练数据规模的持续扩大,模型特征的持续增长,常用的机器学习算法面临着越来越多的挑战。从很多人熟悉的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提供包括数据清洗、特征工程、模型训练和模型评价等多套工具。

时间: 2024-10-02 22:32:55

阿里云机器学习平台编程模型演进之路的相关文章

PAI分布式机器学习平台编程模型演进之路

什么是PAI? PAI的全称是Platform of Artificial Intelligence,主要在使用机器学习做模型训练时提供整套链路.机器学习即服务,把机器学习作为服务对外推出,大家可以在平台上使用比较先进的机器学习算法.将多种深度学习框架集成到PAI中,同时基于深度学习框架包装成更加易用的组件.具备异构的计算服务能力,把CPU计算能力和GPU计算能力统一调度起来,异构的计算能力透明,大家的注意力是哪些机器学习算法可以帮助业务,不用关心底层资源的申请和分配.PAI也支持在线预测服务,

阿里云机器学习平台PAI,助力降低机器学习的成本和技术门槛

摘要:在2017杭州云栖大会机器学习平台PAI专场上,阿里巴巴研究员.阿里云机器学习平台PAI负责人林伟为大家分享了人工智能的发展历史以及阿里云机器学习平台PAI的简单情况和特性.   本文内容根据嘉宾演讲视频以及PPT整理而成.   人工智能发展历史 人工智能是从上个世纪50年代达特茅斯会议开始兴起的,之后马上就达到了一个快速发展的时期,在这个时期奠定了人工智能基础的研究方法,包括像逻辑推演以及一些统计学方法,比如深度学习以及神经网络等.但是当时因为算法和模型的一些局限性,所以找不到比较有效果

阿里云机器学习平台——PAI平台

在云栖TechDay第十五期活动上,阿里云iDST资深技术专家褚崴给大家带来了<阿里云机器学习平台>的分享,他以机器学习的概念入手展开了此次分享,演讲中他重点介绍了阿里云机器学习平台的基础架构和产品特点,并结合阿里内部的芝麻信用分.推荐系统等场景讲解了PAI平台的具体应用方案. 下文根据褚崴的演讲内容整理.   机器学习 图一 机器学习分类 机器学习简单来说就是,人教机器在我们积累的数据当中发现规律,然后能够辅助我们来做一些预测和决策. 机器学习笼统地讲可以分为三类: 1)有监督学习(supe

阿里云机器学习平台的思考

最近读了阿里的<大数据之路-阿里巴巴大数据实践>,对于其机器学习平台也蛮感兴趣,正好阿里出了本新书<解析阿里云机器学习平台>,顺便读了下,感触也不少,结合最近团队机器学习的一些思考,特别在此分享于你. 一.机器学习的门槛降得更低了 这本书的第一章是这么描述阿里云机器学习平台的,"阿里云机器学习平台是构建在阿里云MaxCompute计算平台之上,集数据处理.建模.离网预测.在线预测为一体的机器学习算法平台,用户通过拖曳可视化的操作组件来进行试验,使得没有机器学习背景的工程师

阿里云机器学习平台使用——协同过滤推荐算法快速应用

标签: 数加 概述 PAI机器学习平台是构建在阿里云ODPS计算平台之上,集数据处理.建模.离线预测.在线预测为一体的机器学习平台. 该平台为算法开发者提供了丰富的MPI.PS.BSP等编程框架和数据存取接口,同时为算法使用者提供了基于Web的IDE+可视化实验搭建控制台.平台目前整合了阿里集团内最先进的算法,为用户提供算法服务. 今天做了一件事情来体验PAI,就是拿最经典的电影推荐场景来做协同过滤算法的测试. 数据准备 电影数据来源于http://grouplens.org/datasets/

【玩转数据系列十】利用阿里云机器学习在深度学习框架下实现智能图片分类

伴随着今日阿里云机器学习PAI在云栖大会的重磅发布,快来感受下人工智能的魅力. 一.背景 随着互联网的发展,产生了大量的图片以及语音数据,如何对这部分非结构化数据行之有效的利用起来,一直是困扰数据挖掘工程师的一到难题.首先,解决非结构化数据常常要使用深度学习算法,上手门槛高.其次,对于这部分数据的处理,往往需要依赖GPU计算引擎,计算资源代价大.本文将介绍一种利用深度学习实现的图片识别案例,这种功能可以服用到图片的检黄.人脸识别.物体检测等各个领域. 下面尝试通过阿里云机器学习平台产品,利用深度

阿里云机器学习8月特别推荐

阿里云机器学习·简介 阿里云机器学习平台是一套基于MaxCompute(阿里云分布式计算引擎)的数据挖掘.建模.预测的工具.它提供算法开发.分享.模型训练.部署.监控等一站式算法服务,用户可以通过可视化的操作界面来操作整个实验流程,同时也支持命令,让用户通过命令行来操作实验. 8月特别推荐 众所周知,在很多业务场景的大数据处理中,经常需要挖掘海量数据背后的商业价值.阿里云数加平台推出机器学习开发工具大大提高了数据挖掘的效率,然而缺乏数据.缺乏场景成为大多数用户学习阿里云数加机器学习平台的难题.没

阿里云机器学习——让人工智能触手可及

1.概述 近期,阿里云计划将旗下机器学习平台正式商业化发布.说到机器学习可能有些人会比较迷惑,但是提到人工智能,人们马上就联想到了刷脸支付.人机智能交互.商品智能推荐等场景,机器学习算法就是助力这些人工智能应用的底层算法. 最近几年,机器学习发展趋势火热,主要是我们在深度学习技术上取得了一定的进展,总结起来应该是三大因素: 数据:互联网上每天生成海量的数据,有图像.语音.视频.还有各类传感器产生的数据,例如各种定位信息.穿戴设备:非结构化的文本数据也是重要的组成部分.数据越多,深度学习越容易得到

聚焦阿里云机器学习PAI在广告营销中的应用

最近几年,机器学习比以前更火了.互联网上每天生成海量的数据.大规模分布式高性能计算能力的提升.算法上的创新等等因素,使得我们在深度学习技术上取得了一定的进展,这也让人工智能迎来它的第二春,成为我们的眼睛,我们的耳朵,帮助我们更快捷地获取信息,辅助我们做出决策.机器学习平台产品也因此而产生,加速迭代过程,助力技术的发展,阿里云机器学习平台便是其中之一. 阿里云机器学习平台是构建在阿里云MaxCompute计算平台之上,集数据处理.建模.离线预测.在线预测为一体的机器学习平台. 平台为算法开发者提供