Chinaunix首页 | 论坛 | 博客
  • 博客访问: 389859
  • 博文数量: 273
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1430
  • 用 户 组: 普通用户
  • 注册时间: 2018-02-02 15:57
文章分类

全部博文(273)

文章存档

2018年(273)

我的朋友

分类: 大数据

2018-06-25 15:25:54

背景

首先对三个场景进行介绍,第一个是尿不湿和啤酒的销售故事,沃尔玛超市把啤酒和尿不湿摆放在起进行销售,发现啤酒的销量会随尿不湿销量增加,这是最原始的大数据分析;第二个场景是阿法狗和韩国职业围棋选手的比赛,最终阿法狗战胜了职业围棋选手,成为第一个战胜围棋世界冠军的人工智能机器人;第三个场景是现在的我们进入地铁和火车站的时候,不仅可以刷票,还可以进行人脸的识别。这三个过程代表了整个人工智能的发展史,第一个过程是大数据的初始,我们获取数据并对这些数据进行分析;第二个场景就代表机器学习人工智能达到了一个顶峰;第三个场景说明我们已经把机器学习人工智能这个技术运用到我们的生活中了。
同时市场调查显示,从2015 -2016年AI类的市场收入增长了9%。BIL类软件类的市场只增长了4.4%。在被调查两千多家公司里,11%的企业已经部署AI类方案,53%的企业计划在未来五年部署AI方案,AI在未来的市场变得越来越大。
机器学习的一个最重要的场景就是电商里的推荐。在电商里,推荐是一个常用的技术。除此,还有很多领域用到深度学习。在医疗领域,通过影像资料来分析病症是非常常用的。但是有些病症不能借助影像资料进行分析,如阿莫斯海默症状,如果我们通过影像资料看到小脑萎缩,说明这个人已经得了这个病。现在我们需要借助资料去预测这个人有多大的概率会得这个病。另一个领域是天气,中央气象台会根据各种数据进行天气的预测。我们现在除了中央气象台还有很多的做天气的APP。这些APP不是根据大数据做的,它是根据机器学习或人工智能的技术来做。

工欲善其事,必先利其器

计算和存储是做人工智能的两个必备条件,计算和存储是整个实现过程成本最高的。机器学习还需要大量的人才,这些人才必须会信息论、微积分、矩阵论、编程、概率论等方面的知识。同时机器学习是一个工程,整个流程需要对数据进行预处理,对特征进行提取、还需要用算法对模型进行训练。

1


如上图所示阿里云机器学习,阿里云AI平台借用阿里现有的高性能的云端计算降低存储和计算的能力,应用阿里现有的优化之后的算法和框架,以工具打包的形式运用到产品中可降低用户使用机器学习的门槛。
机器学习的流程中有20%进行数据处理,15%进行样本生成,5%用作模型评估,15%进行特征提取,40%用来模型训练,5%进行模型应用。如何将整个的流程串联在一起,这就需要机器学习PAI的一些功能。第一个是整体的架构,借助阿里云底层的MAC层提供CPU/GPU的计算能力,在上一层框架上抽象出MPA,再往上面一层有封装好的算法,分类算法、回归算法和序列算法等。最上面一层是用户用来开发自己的一些应用,如天气、交通、银行等。这个平台提供了大量的算法,有数据处理、特征工程、统计分析,还有一些常用的机器学习算法和一些深度学习框架。同时还提供了一些可视化实验环境,因为实验过程是一个流程,提供了可视化实验环境就可以把整个流程展示出来。我们只要把整个过程的数据,算法、评估、预测相关的一些组件设置一些参数,整个流程就可以跑起来。

我们与众不同

深度学习里的开源需要用到阿里云上的机器学习PAI,用户不能自己搭建平台。这里要和开源不一样,还要和开源有一定的兼容性。不一样的地方体现在阿里的电商平台推荐,阿里的商品和用户数据量非常的大,普通的算法很难满足这个需求。在做电商推荐时遇到了很多的挑战。我们对开源算法做了优化来解决这些问题。高效的分布式通信减小网络上的消耗是其中一个优化点。我们需要采用分布式通信又不影响作业,我们要做到当某个节点发生失败时,通知另一台计算机启动作业,从失败的节点把数据下载下来从新运行作业,保证整个作业的长时间运行。
首先PAI是一个孵化的产品,必须支持多族谱,不能只为某一个人进行服务,需要对所有集团内部、所有互联网提供服务。用户可以同时在平台上提供作业,这样需要这些作业在运行的过程中做到安全的隔离,隔离上最重要的是网络上的隔离。
在通讯上采用Ring AllReduce进行优化,Ring AllReduce在HBC是一个非常高效的方案。百度硅谷的实验室把Ring AllReduce方案移植到GPU的通信里,Ring AllReduce非常的简单,它的原理是当第一轮数据在做通信的时候,每一个节点都在往下一个节点做数据传输。这样数据有序的传给下一个节点,而且数据的通信量不会随着节点的增加而增加。实现Ring AllReduce有很多种方案,阿里是基于Rendzvous接口来做的。Rendzvous是gRPC、RDMA、NCCL底层的一个接口,基于底层实现来实现Ring AllReduce之后,我们只需要在代码里做一个声明即可。


阅读(958) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~