诞生,神化,下凡 | 一部极简 AI 发展史
新闻
作者:彭靖田
译者:
2018-01-11 06:43



大家好,我叫彭靖田,来自才云。首先进行一个简单的自我介绍。我通过信息学竞赛保送到浙江大学竺可桢学院。从大三就开始在这个行业工作了。曾经在加州大学圣地亚哥分校做过访问学者,主要也是研究大数据和深度学习,回国之后主要是在华为的“2012 实验室”做深度学习。同时,我参与了 TensorFlow 早期开源社区。在 0.7 的时候,我开始作贡献,大概到 0.11 的时候成为全球前 40 的贡献者。接着我就在华为继续做 Kubernetes,在 Kubernetes 社区也有一些小的贡献。之前在华为主要做深度学习平台的设计与研发,今年来到咱们  Caicloud 继续做分布式的深度学习平台,它也是基于 Kubernetes 和 TensorFlow 的。


大家如果了解 Caicloud 的都知道, Caicloud 之前写了一本书叫《TensorFlow:实战 Google 深度学习框架》,是从一个 AI 算法工程师的角度去描述 TensorFlow。我跟另外两个博后,一起写了一本《深入解析 TensorFlow 架构设计与实现原理》的书,应该在下个月就会上市了,由人民邮件出版社图灵社区出版,大家如果有买过计算机相关的书,可能会有注意到这个出版社。这本书主要是作为 AI 工程师如何从平台的角度去给大家剖析 TensorFlow 的一些架构设计,跟一些实现原理。


                                                  Agenda: AI Introduction


今天我的主题演讲主要分为四个部分。我首先会向大家介绍一下 AI 是什么,AI 的发展历程大概是怎样的; 然后简单介绍一下 Caicloud 正在做什么;接着我会介绍 Caicloud 的深度学习平台 Clever;最后我会讲一些 AI 落地的解决方案,也就是在 Clever 这个平台上面到底解决了一些什么实际问题。


AI Introduction


下面,我们就直接进入主题:AI。行业内的人可能会是从 ImageNet 开始知道 AI。因为当时图像识别是一个很复杂的工作,准确率一直上不去。直到有人用深度神经网络,用 AlexNet 一下把这个准确率提高了十几个点。AlphaGo 面世之后,可能普通人也就知道 AI 了,AlphaGo 也由此卷起了全球 AI 的浪潮。其实 AlphaGo 并不是一蹴而就的,它也是一点一点发展来的。



                                                 AlphaGo 的 4 个主要发展阶段


这里列出了四个比较主要 AlphaGo 的发展阶段。从最开始的 AlphaGo Fan 开始,当时我还在加州大学的时候就有听到这个,AlphaGo 打赢了欧洲的围棋冠军,大家非常振奋。然后就约了一下李世石,说要再来一场。在这段时间,谷歌的 DeepMind 团队一直在优化这个 AlphaGo,直到 2016 年初的时候, 4:1 对阵李世石,打败了当时棋坛的一个可以说是顶尖的一个选手。

接着,如果大家有了解的话,其实在去年年底的时候,这个 Master,也就是这个所谓的 AlphaGo 2.0,它在网络上以 60:0 的战绩狂扫全球围棋顶尖高手。到了今年年中的时候,其实又出现了一个 AlphaGo Zero,这个 AlphaGo Zero 其实是一个革命性的一个进步,它跟前三个比起来有非常大的不同,因为它完全没有使用人类的任何棋谱。它只是告诉我们这个 AI,这个围棋的规则是什么样子的。AI 就自己跟自己下棋,根据这个规则不断地去下,很快地就打赢了前面三个版本的 AlphaGo。其实可以看到我们下面的硬件,包括这个分数,能够看到这个 AlphaGo 的进步其实是非常快的,并且它的技术也在显著地下降。从 AlphaGo Fan 跟 AlphaGo Lee,看起来这个时候都需要一些分布式的,最早可能谷歌还没有 TPU 的时候,他们是用 176 个 GPU 并行地去训练这个 AlphaGo。


到了 AlphaGo Lee 的时候,那个时候 TPU 一代出来了,就开始用分布式的架构去训练这个 AlphaGo Lee。一直到 AlphaGo Master 的时候,其实 TPU 二代已经出现了,它只需要一个单机的 TPU 二代就可以去把这个模型很快地训练出来;到 AlphaGo Zero,甚至可以更快地训练出来。那么,AlphaGo Zero 到底是以一个什么样的速度去打败其他 AlphaGo 版本的呢?



                                                      AlphaGo Zero 训练过程

大家可以看到,这是一个围棋里面的一个比分,它只花了三天就已经打败了李世石的那个 AlphaGo。继续训练,训练到我记得是 21 天左右的时候,它就达到了 AlphaGo Master 这么一个水平。大家知道这个 AlphaGo Master 之前是训练了很长时间的,并且吸收了上千万的人类顶尖选手的棋谱,它现在通过 40 天的时间就达到了一个巅峰,可以说是再没有人能够超过它的一个巅峰了。

这里面最值得关注的一点,是我刚才提到的 AlphaGo Zero 是完全没有用任何人类的知识去学习的一个 AI,这个是一个突破性的进步。如果大家有去看论文的话,谷歌在 arxiv 上又推出了一个 AlphaGo Zero,这个是更通用的一个 AI,它使用规则描述问题,通过深度强化学习训练出一个 AI,让这个 AI 能够去处理很多的问题,就包括很多机器人学,自动驾驶等等。



                                                                 AI 发展史


从棋类这个角度来看,AI 其实有很长的发展历史。首先学术界和产业界公认的时间是 1956 年夏天 Dartmouth 会议上面提出了 AI 这个概念,这一年也被称为 AI 的元年。从这以后其实 AI 经历了三起三落,从不同的子领域也能够去发现 AI 的一些变化。从最早大家发现 AI 很强,觉得 AI 好像可以无所不能,提了很多的概念。一开始我们在西洋棋领域打败了对手,可能只花了 10 年不到的时间。


接着到了 1974 年左右的时候,就陷入了一个瓶颈期,当时的那个热潮可是比现在要疯狂得多。 DAPRA 花了很多的钱投给 AI 相关领域的研究,结果一直没有突破,不管是在智能语言处理,还是在图像识别方面。因为那个时候的专家们可能觉得要让 AI 变得跟人一样聪明,就要像人一样去学习,所以花了很多时间去解决听觉问题:怎么让机器听到人听到的声音;怎么让机器像人一样学习。这条思路其实从现在来看,不是那么理智。因为机器跟人本来就是不一样的。


到了 1989 年,CNN 出现了,这个是一个卷积神经网络。到 CNN 的时候,跟大家就比较接近了。这一块其实一下子就有了新的突破。大家看到神经网络其实是一种不错的解决问题的方法。你只需要给神经元,去训练这个神经元,其实并不需要里面到底发生了什么,因为本质上你是需要拟合一个函数,这个函数其实就是从你的输入到输出的一个映射关系而已。这个问题提出来之后,其实用神经网络的方式解决了很多问题。但是这个时候,大家可以用多层感知机。但是在训练的时候发现有一个问题,层数一深,我可能就训练不了,因为层数一深,我的梯队就会乘很多次,乘到后面,可能前面乘的这个梯度就已经很小,根本就训练不了前面这些层的参数了。怎么办呢?经过很长时间,到了 Hinton 提出的预训练这些方法出来之后,大家发现原来深度神经网络也是可以训练的。


甚至到了后面微软提出了 ResNet,我可以跨层,我就不需要再一层一层连接了,而是可以跨层连接,到后面的 DenseNet 我全部都连起来,我所有的层都连起来。后面的发展其实是非常快的。


1997 年 Deep Blue 打败国际象棋选手,也是一个很大的点。因为其实在 1956 年的时候,大家如果知道图灵测试的话,其实图灵测试相关的还有几个问题,我们 AI 到底什么样才能强呢?其中有一个点能够在国际象棋里面打败人类。


所以当时 1997 年的时候,Deep Blue 打败了国际象棋的选手,3.5:2.5 这个比分,是很令人振奋的。当然现在我们看到 Deep Mind 做的 AlphaGo,在围棋这个领域,比国际象棋高了很多个维度,去把人类打败了,这个其实是一个更大的突破。


以上就是 AI 的发展简史,到今年已经是 61 年了,其实是一段漫长的历程。


                                                                      AI 发展三阶段


总结来看, AI 可以分为三个阶段。最开始的时候可能大家都在谈 AI,当时 AI 可能就是比较泛化的,它有很多个概念,它可以有专家系统、可以有规则、可以有统计学习、可以有信息论,各种东西都在里面。大家如果有去看五子棋 AI,那个时候就提出了 Maching Learning 的概念。我们不要人去教它,我们让机器自己去学。这个也是一个突破点,这个就是 Maching Learning 做的事情。一直到后面 Deep Learning 出现了,Deep Learning 做的事情是,之前我可以让它学,但是它可能到了一定的瓶颈期,比如说我的层数越深,它就学不了了。或者说有一些其他的瓶颈,这个我就不再一一列举。


直到 Deep Learning 说我现在深度的神经网络也能学,并且我把 AI 的问题转换成了数据量跟计算量的问题,只要我的数据量够大,只要我的计算量够强,我的计算力够强,最后这个问题都能够被解决。这个就是现在的一个发展阶段。


                                                  华人在 AI 领域的贡献图


其实在这个发展过程当中,华人的贡献是越来越高的。大家可以看到这个图是从 2006 年开始统计的,数据来源是创新工厂,是李开复先生写的一本书。这个我没有仔细地去核对。但是我看了很多的数据源差不多都是这个趋势。可以看到华人从 2010 年开始,甚至说从 2006 年开始,就已经有一个非常大的飞跃。在整个世界上,所有的人工智能领域的研究里面,华人都是有非常重要的贡献的。包括上个月刚刚公布的新闻,又有 9 位华人成为 ACM Fellow 。这都是非常强的一个体现,也说明其实全世界的研究学者们已经开始重视中国的 AI,同时谷歌前两天也刚成立一个谷歌中国 AI 中心。这都是一些从产业界体现出来的一个实际的情况。

 Caicloud Introduction


刚刚讲完了这个 AI 跟 TensorFlow,再看一看我们 Caicloud 到底做一些什么样的事情呢?


                                            Agenda: Caicloud Introduction


首先跟大家介绍一下 Caicloud 是做什么的。Caicloud 其实是一家不算很大的公司,是一家创业公司。我们其实是有很强的一堆人集合在一起,在做一些很酷的事情。


                                                               关于 Caicloud


首先我们的这些核心成员都是来自谷歌、Amazon、CMU 这些学校跟公司,我也是从华为的深度学习团队出来的。很多校友都是 CMU 的,这个也是计算机全球顶尖的学校。


还有一块就是一流合作,如果大家了解容器圈子,就应该会知道 Kubernetes 托管的基金会:CNCF。CNCF 是 Linux Foundation 下面的一个基金会,我们是它的合作会员单位。2015 年,我们是唯一的一个中国会员单位,也只有我们有唯一的授权。我们的产品总体来看有两块:一块是容器云平台,基于 Kubernetes;还有一块就是深度学习平台,基于 TensorFlow 的。


                                                Caicloud:Kubernetes 成就


这是我们公司的一些介绍,我们刚刚在杭州举办了一个 Kubernetes 中国用户大会,这个也是跟 KubeCon 同一个级别的大会。同时,我们也举办了很多的 Meetup 去做一些 Kubernetes 相关的布道,也会去讲一些深度学习的事情,就包括我就在 Meetup 讲了两次 TensorFlow 相关的话题。KubeCon 我们也去过很多回,也有我们的主题演讲。我们有五个 CKA 证书 。我们也是全球首批 Certified Kubernetes 认证的公司。


                                                                  Caicloud 典型客户


这个是一些典型的客户,这些客户待会儿都会在后面 AI 落地的实践里面会有些体现。但是由于我们不适合去直接点名是哪家客户跟我们有这个合作,这边简单地跟大家看一下。


                                                               Caicloud 两大产品


这个是我们两大产品:一个 Clever,一个是 Compass。Clever 就是我今天会去讲的分布式的深度学习平台,它主要是打 AI 这块领域;还有一个是 Compass,它是基于 Kubernetes 做的一个很庞大的,功能很强的一个容器云平台。这一块主要做云市场,我们整个其实是想用云的技术,去加速我们智能化的发展,实际上也是这么做的。其实 Clever 就是在 Compass 上面的一个更强的发展。


Distributed Deep Learning Platform - Clever


Clever 到底是什么呢?Clever 其实要做的事情很简单,它想做五件事情。


                                                                 Clever 概览

  • 第一:打造一个智慧大脑,去做一些普惠 AI 的事情,这个其实也确实做了很多这样的尝试,我们跟各行各业都有这样的一些合作。
  • 第二:提升业务的智能水平。我们很多的传统业务,包括发票识别、人脸检测、图象识别、各样各种的识别,其实传统都是人工去做的。其实我们可以用 AI+ 的方式去做。
  • 第三-五:深度赋能传统企业,不断激活产品创新,助力企业科技转型,包括之前看到那些 500 强的企业,其实它们都有很多这样的诉求,但是它们内部的团队可能搞不定。包括我们最近跟新零售的一个合作,他们之前找了一家大公司,搞了两三个月,最后我们一个小兄弟过去一周就搞定,马上就把单子签下来了,所以说其实在这个领域里面是看能力说话的。

Clever 主要有五大 Feature。首先它是一个分布式的深度学习平台。具体来看, 它有几块主要大的功能:

  • 一块是模型训练,这个分布式的模型训练,其实很多时候你自己,比如说个人开发者,或者是一个实验院所,或者一个小公司很难去搭一套大规模的集群,你也很难去管理这个集群。我们现在能够提供这样大规模的分布式训练,并且能够去做这个持续集成的训练,因为你的模型是需要不断迭代的。
  • 一块是模型服务,我们能够把这个训练好的模型变成一个模型服务,托管在平台上面,并且能够实现一个在线更新。
  • 另一块就是集群级别的 GPU 调度,包括像 Kubernetes 社区我们有很多的同事在做贡献。最近发布的 1.9 有我们的许多贡献。所以说我们其实是走在社区前面的。像这个社区的 GPU 调度,包括后面的 Device Plugin,其实我们都在深度参与社区,一起和上游设计与实现。其实在我们平台上能更先地体会到这些特性。
  • 还有一块就是我们 AI 应用库,这个是由我们实际的 AI 场景里边,最后再落到平台上面呈现出来的一些应用库。


                                                             Clever: Framework


这个是 Clever 的 Framework,大家可以看到,其实下面就是我们的 Compass。因为 Compass 其实是提供了一个 PaaS 平台,通过容器云的技术,让我们能够做很多的事情。


最下面是我们的 Infras, 其实我们自己是支持私有云、公有云、混合云的。私有云最简单,在 VM 上面我们可以部署;你如果是裸金属环境,我们也能部署,但是我们并不推荐在 OpenStack 上面去跑 Kubernetes,因为两层虚拟化带来的损失其实非常大的。我们也跟微软云、腾讯云有合作;跟亚马逊、阿里巴巴也进行相关的一些联合部署等等。 

Compass 有几大功能,最强的是 Resource Management,它可以管理 CPU,Memory,GPU 等资源。上游对 GPU 的支持暂时还不够好。GPU 和 Storage,我们现在都正在往社区推 。包括刚刚提到 1.9 发布的一些特性,还有一些特性 1.10 已经进去了,后面会陆续发布的。如果在容器中使用  GPU,你会发现 Kubernetes 其实只能认识它是 GPU,别的什么都做不了,它不能知道我是 Nvidia的,还是 AMD 的;它不能知道我是一个 K80,还是 1080Ti;它也不知道 GPU 的使用情况,比如说我用了多少显存,这些信息都没有,但是这就是我们现在要做的一个点,这也是未来的一个发展方向。


Clever 其实现在有一个很清楚的分层,最上面是我们对接的解决方案。这些解决方案其实就分了很多的行业,电子商务、零售、时尚业、金融、安防、能源行业我们都有去涉足,有些小的案例就不去展开了。

 这些案例上面落地下来的这些应用库是非常丰富的,我们能看到,最简单的有人脸识别,我们还能做情感识别。比如说我们在一些场景里面,我们有摄像头需要去关注用户到底是开心的,还是不开心的,去做一些更细的推进,这个都能做到。包括一些行人检测,我们在路上可能有很多的人,有的人可能有碰瓷,或者有的人不小心撞到了什么,或者违规了什么,这个其实很多时候是不太好去做检测的,你如果只去看那个视频的话是很麻烦的。


甚至包括之前出的携程的事情,我们也能去判定,或者说提前去做一个预警,告诉相关的人员,让他们提前去做一些预防的工作,不要等这些悲剧发生了才知道。还有一些事情,做智慧网点、智慧银行,这一块也是我们跟某大行去合作做的一个事情;以及一块无人超市我们也有参与,还有 OCR,这个是一个很成熟的应用场景。 

在这个平台上面到底有哪些 Framework 是我们支持的呢?首先 HadoopSpark 这套大数据系统我们肯定是要对接的,这个是没有问题,我们能够去对接 HadoopSpark 系统,也能把你的大数据导到我们平台上面来。还有一块就是 jupyter Notebook,这个是很多 AI 算法工程师喜欢的一个交互式的开发环境,这个我们肯定也是支持的。同时在 jupyter Notebook 上面,你可以用很多的框架,比如说 TensorFlow,Keras 等,我们都是支持的。 

最下面的 Backend 是什么意思呢?就是说 TensorFlow 它本身其实只是一个 lib,其他的库其实基本都是 lib。 我们通过 lib 写好的程序直接丢到 Kubernetes 上面其实是跑不起来的,你得去写很多 Yaml 文件,甚至你还得专门对接 Kubernetes 的特定资源。这个是其实比较复杂的事情,对于一个 AI 算法工程师来说,你让他再去学一些容器云的东西,就会很麻烦。

 那么我们做了一件什么事情呢? 我们跟谷歌一起做了一个项目——Kubeflow,它的目标是更好地在 Kubernetes 上面运行 ML workload。这个项目现在是一个很早期的阶段,主要的参与者就是 Caicloud、谷歌、红帽、微软,还有一些个人开发者 。但在我们内部已经有很多的积累了,我们也会不断地回馈给社区。 


其实大家如果有关注 Caicloud 的话,今年 3 月份的时候我们就已经有一个分布式的深度学习平台——TaaS。那个时候我们就已经支持现在 Kubeflow 想要做的事情了,只是说我们那个时候没有大肆地去宣传。


这就是 Clever 的整个架构,从下面的基础设施到容器云平台,再到我们的 Clever, 我们有很强的后端去补填 Kubernetes 和 TensorFlow 的 gap。

 Best Practice of AI on Clever


我们到底是做了一些什么样的 AI Solution 呢?



                                     Agenda: Best Practice of AI on Clever


这是一些最佳实践给大家看一下。



                                        Clever 最佳实践:AI + Bank + Clever

这个是我们在某银行里面去布的一个,你可以认为我们在摄像头上面去做了一些模型的算法。对于一个银行来说,其实有很多的东西可以采集数据,比如说这边有很多的摄像头,那边有屏幕,那边有广告屏,那边理财产品,未来都会变成没有人的,这个就是一个愿景,当然现在也在逐渐地去做了。


未来的银行可能就是没有任何人的银行,你只需要跟摄像头和屏幕去交互就好了。我们的屏幕是会有一个,你可以认为是一个虚拟的人去跟你进行对话,我们摄像头能够采集到你是不是我们的客户,你是老客户,还是新客户,或者是 VIP 客户;它也能够采集到你的表情,你是开心的,还是失落的,还是沮丧的,还是怎么样的,我们能够根据这个情绪去做一些判断,这个事情是能够做到的事情。

然后我们还能够采集人流量。比如说可能这一块的人多一点,这一块屏幕上就去投一些更能够让人感兴趣的东西,或者去投一些更多的推荐,这些都是我们想要去做的一些事情,并且已经在慢慢地去做了,已经有一些网点落地了,也有些相关领导去视察了。


                                      Clever 最佳实践:AI + Bank + Clever


这就是一个热点图,我们能够在刚刚那个图里面,从立体去看哪些地方的人多,哪些地方的人少。人多的地方我们就能去做一些更多的推荐,或者一些更多的事情。这个当然要跟实际的商业场景对起来。人少的地方,我们可能做一些更亲密的交互,让他能够去更好地享受到我们的服务。


                                         Clever 最佳实践:AI + Bank + Clever


实际上整个一个大的智慧网点里面,或者一个无人银行,智慧银行里面有很多的屏幕,理财中心也好,人流识别也好,运营商的这些数据导进来也好,都有很多的事情可以做。



                                        Clever 最佳实践:AI + Fashion + Clever


还有就是 AI 跟时尚业的一个合作,AI+Fashion 是做什么呢?我们其实做时尚业很多时候就是要设计衣服、裤子。设计衣服、裤子本质上我有一堆设计师,我这个设计师参考一些牛逼的设计师是怎么做的,比如巴黎时装秀上面他们是怎么设计衣服的,从里面取一些灵感,或者说一些顶级时尚公司,他们是怎么做这个设计,让这些资源转化成我们的一些淘品牌也好,我们的一些本地品牌也好等等。这些其实是设计师在做这个事情,他们需要去看海量的图片,去找到一些流行的趋势到底是什么。


这个时候就有一个问题,图片非常多。现在是一个信息爆炸的时代,这么多图片,你请 500 个设计师可能都不一定能看出多少东西来了。这个时候我们能做什么呢?我们可以通过一些深度学习的算法模型去把这些图片先分类,或者说先把一些标签给它打好。比如说这个是今年的流行款;这个是今年的什么纹理,什么火腿纹,什么宫廷纹,各种纹,或者是其他材料的,我们全部给你分类分好。这个时候,设计师可能能够更好地去解决这个问题。  


                                      Clever 最佳实践:AI + Fashion + Clever

首先我们在我们自己这边去做试验,我们能够上传很多的图片,他能够去识别出这个图片里面各种各样的物体,比如说上衣、裤子、鞋子,他们其实已经在内部上线了,能够去做更细的识别。比如说它不仅可以识别出这是上衣,还能识别上衣的花纹和材质,于是就会有很多的分类标签出来。这个分类标签最后能够回馈到实际的平台上面,再根据一些没有标签的图片再去给它打标签,不断地去丰富这个数据库。


                                         Clever 最佳实践:AI + Parking + Clever


AI+ 停车场的试验,这个也是我们很简单就能够去做的一件事情,但是可能很多人没有去尝试。我们其实一开始是没有去尝试。我们的模型一开始也不知道哪里是停车位,于是我们就根据这个地方到底平时停车多,还是少来做识别。比如说以 24 小时为一个比例的话,某些区域基本一个小时就不会有车停在这儿,但可能有的区域一直都会有车,或者很长一段时间都有车。


首先我们通过视频能够把这些停车位给识别出来:哪些是停车位,哪些是过道。接下来我们可以根据视频判断停车位上是否有车,也能够识别出它到底停在什么样级别的车位上,甚至是停了多长时间,这个都能很精确地测出来;甚至它就直接扣到你这个支付宝账户里面去,就跟收水费电费一样。后来这些事情,其实完全都可以做到无人化。


                                  Clever 最佳实践:AI + Security + Clever


还有一块是做安防的事情。这一块我们做了非常强的一个研究,但是我们并没有去发 paper。像这种密集的,比如说大型聚会的场景里面,我们能够做到非常高精度的人头识别,至少你能看出他是一个人头,还是一个什么样的东西。比如说现在这个可能清晰度比较差,我就只能看出是人头。但如果比如说我们的公安,或者是一些其他的大会主办方能提供更高清,或高分辨率图片的话,我们还能够跟对应的数据库对接出来,识别出来它到底是哪个人。


                                       Clever 最佳实践:AI + OCR + Clever


OCR 已经是比较成熟的一块应用了。AI + OCR,很多人可能有身份证的自动输入跟人脸图象比较,我们要去做这个验证,这个是可以做的。我们也不需要像很多现在给你画个框,必须把脸凑到那个框里面才能生效。我们可以不用这样做,我们只要你扫到脸了,我们就能给你识别出来。

 自动化审核。我们很多人在企业里面,每个月都要报销,发票很多,很烦。现在你可能每个月去填一下单子,写好是什么。现在我们能做到什么?你把这个单子往那一放,一扫,我就能够提取出来你是哪个公司,税号是多少,是什么样的。因为其实发票本身是有一些规则的。比如说增值税发票的那一项是什么样的东西,然后把它填好。生成一个数据结构,这个数据结构再导到我们系统里面,就可以做自动化的审核了。 

这个就是今天分享的一些主要内容,谢谢。 

386 comCount 0