ML平台_PAI参考
阿里云机器学习PAI(Platform of Artificial Intelligence)是一款一站式的机器学习平台,包含数据预处理、特征工程、常规机器学习算法、深度学习框架、模型的评估以及预测这一整套机器学习相关服务。得益于底层的飞天计算平台的CPU集群以及GPU集群,PAI可以为用户提供PB级别数据的高效计算保证。人工智能综合了多门学科的技术,对人才要求极其高,除了懂统计学中各种复杂的机器学习算法,还要懂实现逻辑以及分布式架构理论。PAI可以大幅的降低人工智能的门槛以及开发成本。从操作界面来看,PAI没有繁琐的公式和复杂的代码逻辑,用户看到的是各种分门别类被封装好的算法组件。每一个实验步骤都提供可视化的监控页面。在深度学习黑箱透明化方面,PAI也同时集成了各种可视化工具。
最近几年,催生机器学习快速发展的主要因素包含:
- 第一个因素是数据的因素。互联网上每天生成海量的数据,有图像、语音、视频、还有各类传感器产生的数据,例如各种定位信息、穿戴设备;非结构化的文本数据也是重要的组成部分。数据越多,深度学习越容易得到表现好的模型。
 - 第二个因素是大规模分布式高性能计算能力的提升。这些年来,GPU高性能计算、分布式云计算等计算平台迅猛发展,让大规模的数据挖掘和数据建模成为可能,也为深度学习的飞跃创造了物质基础;
 - 第三个因素是指算法上的创新。随着数据和计算能力的提升,算法本身也有了很大的进展,尤其在深度学习方面,譬如从脑神经学上得到的灵感,在激活函数上进行了稀疏性的处理,等等。
 
基于上述三点,人工智能又迎来了它的第二个春天。人工智能将以更快的速度进入我们的生产和生活中来,成为我们的眼睛,我们的耳朵,帮助我们更快捷地获取信息,辅助我们做出决策。机器学习平台产品也因此而产生,加速迭代过程,助力技术的发展。
平台目标
阿里智能平台,其目的是为了加速整个创新过程,提高工作效率。
基于阿里云的云计算平台,具有处理超大规模数据的能力和分布式的存储能力,同时整个模型支持超大规模的建模以及GPU计算。此外,该平台还具有社区的特点:实验结果可共享、社区团队相互协作
终极目标:打造一站式的人工智能开发、发布与分享平台。通过对数据、计算和数据人的连接,让人工智能变的触手可及,使所有人都能使用人工智能来开展创新。
 
PAI整体框架图

- 最底层是基础设施层,包括CPU和GPU集群;
 - 其上一层是阿里提供的计算框架,包括MaxCompute的MapReduce/SQL/MPI等计算方式; MPI(Message Passing Interface 消息传递接口,是高性能计算领域开发并行应用的标准API)
 - 中间一层是模型算法层,包含数据预处理,特征工程,机器学习算法等基本组件,帮助使用者完成简单的工作; 
- CNN(Convolutional Neural Network 卷积神经网络)、
 - DNN(deep Neural Network 深度神经网络)、
 - RNN(Recurrent Neural Network 循环神经网络)、
 - LSTM(Long Short-Term Memory 长短期记忆网络)
 
 - 平台化产品主要是项目管理、算法模型分享,以及一些特定的需求;
 - 最上层是应用层,阿里内部的搜索、推荐、蚂蚁金服等项目在进行数据挖掘工作时,都是依赖PAI平台产品。
 
目前依托于PAI机器学习平台,提供基本组件,通过拖拽的操作,完成工作流程的整体布局;同时在垂直场景下,提供一些更为专业的组件,例如在文本分析方面,我们提供了一套完整的文本分析的算法组件。
系统特点:
- 参数服务器:其主要思想是不仅仅是进行数据并行,同时将模型分片,将大的模型分为多个子集,每个参数服务器只存一个子集,全部的参数服务器聚合在一起拼凑成一个完整的模型。如下图:
 
- 该系统主要的创新点在于失败重试的功能,在分布式系统上,上百个节点协同工作时,经常会出现一个或几个节点挂掉的情况,如果没有失败重试机制,任务就会有一定的几率失败,需要重新提交任务到集群调度。
 - 失败重试是将每个节点的状态备份到相邻(前后)的节点,当个别节点死掉后,重启一个新的节点,同时从原节点相邻的节点获取所存储的状态,理论上可以实现任务的100%完成。
 - 还有一个功能是异步迭代,无需等待全部节点完成任务,当大部分节点完成任务时,就可以直接更新对应的模型,这样可以不需要等待慢机的结果,从而摆脱慢机的影响,提升效率。
 - 编程接口完全兼容深度学习框架:Tensorflow、Caffe以及MXNet,用户只需要将自己本地编写的代码文件上传至云端就可以执行。
 - Tensorflow、Caffe和MXNet是目前全球主流的深度学习开源框架。Tensorflow开源算法和模型最丰富;Caffe是经典的图形领域框架,使用简单;MXNet分布式性能优异。
 - 对于底层计算资源,PAI2.0提供了强大的云端异构计算资源,包含CPU、GPU、FPGA。在GPU方面,PAI2.0可以灵活实现多卡调度
 
小结:阿里云机器学习平台既支持深度学习,又支持CPU、GPU任务混合调度。接下来发展的方向,是数据智能的方向,一是提供智能化的组件,例如将参数调优的工作也替用户完成;另一个就是开发垂直应用领域需要的算法组件,逐渐形成行业解决方案。
应用案例
- 应用推荐系统,主要是参数服务器在推荐系统内的应用。
 
- 当在淘宝购物时,经查询显示的商品一般都是非常个性化的推荐,它是基于商品的信息和用户的个人信息以及行为信息三者的特征提取。这个过程中形成的特征一般都是很大,在没有参数服务器时,采用的是MPI实现方法,MPI中所有的模型都存在于一个节点上,受限于自身物理内存上限,它只能处理2000万个特征;通过使用参数服务器,我们可以把更大模型(比如说2亿个特征的模型),分散到10个或者是100个参数服务器上,打破了规模的瓶颈,实现了性能上的提升。
 
参考资料:
- https://yq.aliyun.com/articles/57677
 - https://help.aliyun.com/product/30347.html
 - http://tech.it168.com/a2015/0819/1755/000001755737.shtml
 
ML平台_PAI参考的更多相关文章
- ML平台_Angel参考
		
Angel 是腾讯开源基于参数服务器(Parameter Server)理念的机器学习框架(为支持超大维度机器学习模型运算而生).核心设计理念围绕模型,它将高维度的大模型切分到多个参数服务器节点,并通 ...
 - ML平台_Paddle参考
		
PaddlePaddle源自于 2013 年百度深度学习实验室创建的 “Paddle”.当时的深度学习框架大多只支持单 GPU 运算,对于百度这样需要对大规模数据进行处理的机构,这显然远远不够,极大拖 ...
 - ML平台_设计要点
		
如果说机器是人类手的延伸.交通工具是人类腿的延伸,那么人工智能就是人类大脑的延伸,甚至可以帮助人类自我进化,超越自我.人工智能也是计算机领域最前沿和最具神秘色彩的学科,科学家希望制造出代替人类思考的智 ...
 - ML平台_小米深度学习平台的架构与实践
		
(转载:http://www.36dsj.com/archives/85383)机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累.神经网络算法的成熟以及高性能通用GPU的推广,深度学 ...
 - ML平台_微博深度学习平台架构和实践
		
( 转载至: http://www.36dsj.com/archives/98977) 随着人工神经网络算法的成熟.GPU计算能力的提升,深度学习在众多领域都取得了重大突破.本文介绍了微博引入深度学 ...
 - ML平台_饿了么实践
		
(转载至:https://zhuanlan.zhihu.com/p/28592540) 说到机器学习.大数据,大家听到的是 Hadoop 和 Spark 居多,它们跟 TensorFlow 是一个什么 ...
 - <转>ML 相关算法参考
		
转自 国内外网站如果你想搜索比较新颖的机器学习资料或是文章,可以到以下网站中搜索,里面不仅包括了机器学习的内容,还有许多其它相关领域内容,如数据科学和云计算等.InfoWord:http://www. ...
 - How To Build Kubernetes Platform (构建Kubernetes平台方案参考)
		
Architecture Architecture Diagram Non-Prod Environment Prod Environment Cluster Networking Container ...
 - API 开发平台 dreamfactory,参考SAWAGGER,国外厂家,开源,本地与云部署
		
API 开发平台,参考SAWAGGER,国外厂家,本地与云部署:参考 http://swagger.io/commercial-tools/ 1.dreamfactory 梦工厂公司 https: ...
 
随机推荐
- express安装中出现无此命令
			
原来,最新express4.0版本中将命令工具分家出来了(项目地址:https://github.com/expressjs/generator),所以我们还需要安装一个命令工具,命令如下: 安装ex ...
 - c++下基于windows socket的多线程服务器(基于TCP协议)
			
之前用c++实现过基于windows socket的单线程TCP服务器(http://www.cnblogs.com/jzincnblogs/p/5170230.html),今天实现了一个多线程的版本 ...
 - 重启uwsgi脚本备份
			
NAME="identifyImg_uwsgi.init" if [ ! -n "$NAME" ];then echo "no arguments&q ...
 - SQL注入之Sqli-labs系列第二十关(基于头部的cookie  POST报错注入)
			
开始挑战第十八关(Cookie Injection-Error Based- string) 前言: 通常开发人员在开发过程中会特别注意到防止恶意用户进行恶意的注入操作,因此会对传入的参数进行适当的过 ...
 - JAVA中日期和时间的格式化选项
			
一.使用printf方法 import java.util.Date; import java.util.Scanner; public class Test { public static void ...
 - JavaScript循环语句-6---for语句,while语句的应用逻辑
			
JavaScript循环语句 学习目标 1.掌握for语句的语法结构 2.掌握for语句的应用逻辑 for语句 语法: For(语句1:语句2:语句3){ 被执行的代码块: } 语句1:在循环(代码块 ...
 - Markdown显示反引号(`)
			
/********************************************************************** * Markdown显示反引号(`) * 说明: * 在 ...
 - MongDB篇,第一章:数据库知识1
			
MongDB 数据库知识1 程序 = 数据结构 + 算法 数据存储阶段 1,文件管理阶段 (.txt .doc .xls) 优点: 数据可以长期保存:可以存储大量的数据:使用简单 缺点 ...
 - Gym-101653:acific Northwest Regional Contest (2019训练第一场)
			
本套题没有什么数据结构题,图论题,唯一有价值的就是Q题博弈,在最后面,读者可以直接拉到最下面. (还剩下两个,估计每什么价值的题,懒得补了 M .Polyhedra pro:欧拉公式,V-E+F=2: ...
 - NYOJ 737:石子合并(一)(区间dp)
			
737-石子合并(一) 内存限制:64MB 时间限制:1000ms 特判: No 通过数:30 提交数:37 难度:3 题目描述: 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆. ...