百度深度学习研究院“杰出科学家”徐伟和大家交流自己的研究成果
大会现场,百度深度学习研究院“杰出科学家”徐伟先生就新一代深度学习框架助力人工智能发展和大家交流他自己的研究成果。
以下为现场实录全文:
各位领导,各位专家、各位朋友你们好今天非常有幸给大家分享百度在人工智能,软件基础设施做的一些工作。人工智能发展的异常火热,这两个图就是美国(英文)AI(英文)的报告里面给的两组数据,这个数据里面表示过去20多年,AI创业公司的数量,这20多年,AI的创业公司的数量有了非常大的增长,2000年到现在有14倍这么多的增长。右边那幅图是风投,风险投资的数量,我们看到最近20多年有了非常大的增长。2000年到现在,风险投资的数量也增长了6倍。
这是美国的状况,中国发展的状况更为火热,大家也了解到人工智能相关方面的人才在就业市场里面非常火热,还有各大公司提出他们在人工智能方向发展的计划。比如百度说要All in AI,还有腾讯提出的AI in all,阿里建立了达摩院来积极地发展人工智能。
再就是去年7月份的时候国务院对整个国家的人工智能发展也作出规划。提出我们在2030年要把中国建设成为理论和技术以及产业方面在人工智能都成为世界先进的国家。我们看到人工智能,我们已经开始进入这么一个人工智能的时代,进入这个时代最根本的原因就是说,就是人工智能在一些特定的应用场景,它的效果有了非常非常大的提升,在最近的几年。
提升的几个基本动力:一个就是计算能力在过去几十年有非常大的增长。再一个点就是随着计算机的增长还有互联网产业,各行各业计算机技术的广泛使用,我们也积累了大量的数据。具备这样大量数据的情况下,还有非常重要的一点就是深度学习的使用。因为我们使用的深度学习和以前传统的机器学习相比有一个重要的特点,就是传统的机器学习随着数据量的增大它的性能准确度什么之类的会逐渐达到饱和的阶段。深度学习不同的就是随着数据量的增大,因为它的模型可以变得更加复杂,可以更有效的从很大量的数据里面提取数据里面蕴藏的丰富的信息,从而在应用里面能够不断地提升它的准确度、提升效果。
除了这三点之外,还有非常重要的一点,软件的角度来讲,我们最近几年看到在深度学习方面有非常多的开源软件框架的出现,就为开发者还有研究者来使用和开发深度学习模式大大降低了门槛,从而涌现出非常多的人工智能的应用和技术。我们刚才说到,在特定的人工智能领域有了非常好的技术,这是我印象特别深的例子,百度去年参加了江苏卫视做的《最强大脑》的节目,在这个节目当中有一个比赛,通过父母的照片能够在几十个女生里面能够把他的女儿找出来。
大家可以看,左边是父母的照片,右边是几十个女生中的其中六个女生,你们是否可以从他们父母的照片能够看出哪个女生是他的女儿,大家可以记住他的答案。你们有没有认出来的,我们从这个例子可以看出来,通过深度学习的使用,我们在日常特定的领域,所谓的特定领域就是指的我们能够比较方便的提供数据标签的一些应用领域,人工机器已经可以做的非常非常好了。
因此我们的机器在能力的提升过程中,我们也逐渐看到人工智能开始进入我们传统行业里面去,做一些我们意想不到的事情。这里给大家分享一小段视频给大家介绍一下。(播放视频)
这里我们看到像人工智能可以进入到我们生产、生活中非常细微的方面,能够提升我们的是各个生产环节的生产效率。刚才视频里面提到用的PaddlePaddle,这是我们百度开发的一款深度学习的框架,它的用途是用来让工程师还有研究人员可以用它来描述他们深度学习的模型,对深度学习模型结合数据进行训练,最后把这个模型应用到实际的生态环境里面去。
今天给大家介绍一下PaddlePaddle三个方面的一些工作吧。首先就是PaddlePaddle,我们是一个开源的软件,可能相对于别的深度学习方面的框架的软件相比,PaddlePaddle相对是开源的比较晚的,到目前为止开源的时间大概16个月左右。这幅图可以看到PaddlePaddle和其他开源软件相比,他们同样的时期使用的时候,就是Paddle16个月的时候和TensorFlow,还有其他的比如说MXNet、Caffe,开源16个月的时候活跃度的比较。在Github,这是开源软件的社区,这个就是表示了在上面开发的力度。同期的TensorFlow,还有其他的开源软件相比,这里面红色的这条就是PaddlePaddle它的开发者力度已经远高于那个,即使拿到现在来看,PaddlePaddle的开发的活跃度也是仅次于现在谷歌开发的开发的深度学习的TensorFlow。
这个是问题讨论的活跃度,可以达到TensorFlow同期的水平,它现在也是仅次于它在Github上面的讨论活跃度来看。PaddlePaddle在深度的开源软件里面,是唯一一家中国公司做出的深度学习的开源软件。
我们做深度学习PaddlePaddle这个开源软件,一个很重要的出发点就是说,我们希望它不仅能够支持深度学习,像现在的模型,还有现在的算法,也希望它能够支持我们现在还没有出现过未来可能出现的深度学习的模型和算法。怎么才能做到这一点呢?我们提出来,要能够做到这一点就是最根本像编程语言一样有比较丰富的表达能力。最近我们开发了PaddlePaddle新的版本叫PaddlePaddle(英文),可以像高级语言一样的描述,来书写深度学习的模型。
在深度学习模型的训练里面有一个非常重要的概念就是要对训练做一些批处理,这样才能充分利用硬件的计算能力。像这里的这个东西描述的一个模型,它有一个特点,就是这个里面有一些动态的结构,包括(英文)的结构,这样的动态的模型要他比较高效率的进行计算利用TensorFlow,它是非常非常难以高效地实现的。我们使用PaddlePaddle它可以非常容易地描述具有这种动态结构的深度学习的模型。
我们可以看到,和现有的其他深度学习的框架相比,(英文)是比较简单编程的框架,还有TensorFlow,如果你用的非常好可能比较高效,但是像我们刚才说的动态的模型结构,要把它的高效通过TensorFlow实现是比较繁琐的事情,但是相比之下PaddlePaddle可以非常高效的实现非常先进的深度学习的模型,同时非常灵活,非常应用。
另外PaddlePaddle还依托于深度学习技术与应用国家工程实验室,像我们学校里面开发一些百度的实验室里面的一些预算资源。这个实验室是百度和清华大学还有北航,还有其他研究机构一块成立的这么一个国家工程实验室,目的就是说希望能够推动深度学习在中国进一步的发展。我们通过这个实验室开放的计算资源叫PaddlePaddleCloud,它能够提供到一个这样非常直观的编成的界面,它可以在网页上,把你的模型描述出来,能够非常交互式的调试和书写模型,同时在你的应用提交到实验室内部训练的Cloud的训练,同时可以实时的观察到这个结果。
深度学习还有非常重要的一点,就是良好的深度学习的框架需要非常有效的处理非常大的数据。因此它要能够很好的进行多栖的进行训练。相比其他的深度学习框架,它的深度学习的训练任务,集训里面提交之后训练任务所占的资源数不能够动态调控的。这样导致的问题就是在一个集训里面,它很难对集训的使用率能够充分的利用。比如说它集训繁忙的时候,现在的任务可能就因为前面的任务不能调整它的规模,现在的任务就需要做长期的等待。如果集训属于比较前置的时候,一个新人的任务也不能做到充分的能够把所有的闲置的资源都用到,因为他不能预期接下来是不是有新的任务提交进来,因此这样就会导致集训使用率比较低,同时有一些任务繁忙的时候对任务有等待的状况,对体验也非常不好。
因此我们开发了,我们叫做Elastic Deep Learning能力的这样一个技术,它可以动态地根据集训的反馈程度能够动态地调整训练任务的规模,从而能够在一个集训里面更有效的利用它的资源。这里稍微展示一下,通过EDL能力以后使用的效果。左边这幅图就是说,我们在一个集训里面不断地提交深度学习任务,但是深度学习的任务到一定的时候比较多了,这个时候如果我们开始实现的话,就没有开启EDL的功能。这张图就是左上面的图展示这个集训需要等待的任务数,它没有开启EDL,随着这个集训的负载比较繁忙,在这个等待状况会出现比较高的数量。如果我们开启EDL这样的功能,提交以后就能够自动把这个任务占用的资源缩小,能够将新的东西可以很快地执行。
另外就是当有周期性的,流量周期性的任务和深度学习的训练能够混合,这样的话比如说网络服务,比如说白天比较繁忙,晚上比较空闲的时候我们也能够把这个空闲的资源用来做深度学习的训练。
深度学习目前发展趋势就是在不同硬件的场所都要进行使用,包括训练,CPU、GPU,甚至FPGA这样的环境进行训练。部署的时候传统的服务端、移动端进行训练。根据这样的发展趋势我们PaddlePaddle也根据不同的训练环境、部署环境进行开发,同时和相应的公司进行合作,针对这些不同的使用环境进行优化。还有深度学习,人工智能发展非常快有一个算法、数据,还有技术、应用的迭代。最开始的算法设计,底下的初始数据得到最初的模型,通过应用的打磨收集到更多的数据,反过来让我们算法和模型变得更好。未来让广大的开发者最快把人工智能的闭环能够构造出来,我们也开放了一系列在百度内部,通过我们实践打磨出来的工业级的应用的模型,停留在我们官方的Github上面的我们的开源的社区里面,通过这些开源的模型,这些开发者可以使用,这些开源的模型也进行了详细的中英文的文档,还有中文的数据,英文的数据,可以方便开发者来使用,谢谢大家!