阿里云机器学习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个参数服务器上,打破了规模的瓶颈,实现了性能上的提升。

参考资料


ML平台_PAI参考的更多相关文章

  1. ML平台_Angel参考

    Angel 是腾讯开源基于参数服务器(Parameter Server)理念的机器学习框架(为支持超大维度机器学习模型运算而生).核心设计理念围绕模型,它将高维度的大模型切分到多个参数服务器节点,并通 ...

  2. ML平台_Paddle参考

    PaddlePaddle源自于 2013 年百度深度学习实验室创建的 “Paddle”.当时的深度学习框架大多只支持单 GPU 运算,对于百度这样需要对大规模数据进行处理的机构,这显然远远不够,极大拖 ...

  3. ML平台_设计要点

    如果说机器是人类手的延伸.交通工具是人类腿的延伸,那么人工智能就是人类大脑的延伸,甚至可以帮助人类自我进化,超越自我.人工智能也是计算机领域最前沿和最具神秘色彩的学科,科学家希望制造出代替人类思考的智 ...

  4. ML平台_小米深度学习平台的架构与实践

    (转载:http://www.36dsj.com/archives/85383)机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累.神经网络算法的成熟以及高性能通用GPU的推广,深度学 ...

  5. ML平台_微博深度学习平台架构和实践

    ( 转载至: http://www.36dsj.com/archives/98977)  随着人工神经网络算法的成熟.GPU计算能力的提升,深度学习在众多领域都取得了重大突破.本文介绍了微博引入深度学 ...

  6. ML平台_饿了么实践

    (转载至:https://zhuanlan.zhihu.com/p/28592540) 说到机器学习.大数据,大家听到的是 Hadoop 和 Spark 居多,它们跟 TensorFlow 是一个什么 ...

  7. <转>ML 相关算法参考

    转自 国内外网站如果你想搜索比较新颖的机器学习资料或是文章,可以到以下网站中搜索,里面不仅包括了机器学习的内容,还有许多其它相关领域内容,如数据科学和云计算等.InfoWord:http://www. ...

  8. How To Build Kubernetes Platform (构建Kubernetes平台方案参考)

    Architecture Architecture Diagram Non-Prod Environment Prod Environment Cluster Networking Container ...

  9. API 开发平台 dreamfactory,参考SAWAGGER,国外厂家,开源,本地与云部署

    API 开发平台,参考SAWAGGER,国外厂家,本地与云部署:参考  http://swagger.io/commercial-tools/ 1.dreamfactory 梦工厂公司  https: ...

随机推荐

  1. python day03作业

  2. foreman源NO_PUBKEY 6F8600B9563278F6

    /etc/apt/sources.list.d/foreman.list # foreman deb http://deb.theforeman.org xenial stable 一条命令解决 ap ...

  3. 2016 多校联赛7 Elegant Construction

    Being an ACMer requires knowledge in many fields, because problems in this contest may use physics, ...

  4. Oracle自我补充之trunc()函数使用介绍

    oracle trunc函数使用介绍 核心提示:oracle trunc函数使用介绍 1.TRUNC(for dates) TRUNC函数为指定元素而截去的日期值. 其具体的语法格式如下: TRUNC ...

  5. nodejs的express框架

    介绍: Express是由路由和中间件构成一个的nodejs的一种web应用框架; 功能: 可以设置中间件来响应 HTTP 请求. 定义了路由表用于执行不同的 HTTP 请求动作. 可以通过向模板传递 ...

  6. 田螺便利店——联想笔记本进入不了BIOS的解决方法

    当计算机遇到问题时,很多情况下需要进入BIOS进行解决.但很多新出的联想笔记本电脑在开机时,无论怎么疯狂的按F2,Fn+F2,F12或者Del,都无法进入BIOS,十分气人.       这种现象出现 ...

  7. java-源文件中可以有多个类,但是最多只能有一个public修饰

    1.如果源文件中有多个类,那么只能有一个类是public类:如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同,扩展名是.java. 2.如果源文件中没有public类,那么源文 ...

  8. django-dailyfresh

    Hold on ,learn by myself! redis nosql - 不支持sql语法 - 存储数据都是KV形式 - Mongodb - Redis - Hbase hadoop - Cas ...

  9. src-d engine 强大的git 历史分析工具

    src-d engine 包含了Babelfish ,同时可以看作是Babelfish 的升级版本,我们可以使用sql 进行代码分析 备注: 注意运行的时候需要容器支持 使用 安装docker   参 ...

  10. 原生js实现ajax用于简单的签到或登录

    <script> function createStandardXHR() {     try {         return new window.XMLHttpRequest(); ...