本篇文章4858字,读完约12分钟
编者按:本文是百度首席科学家吴恩达在2016年gtc中国大会上的发言的汇编。在今年的中国gtc上,吴恩达分享的话题是什么是神经网络,以及为什么gpu非常适合训练神经网络。
大家好,现在人们都说人工智能是一种新的电能。电已经改变了许多不同的行业,我认为人工智能现在将会给许多行业带来同样的巨大变化。如今,人工智能的大部分计算都依赖于gpu。今天,我想和你分享为什么,以及人工智能将如何影响你的工作。
我们在人工智能领域非常幸运,因为我们很早就不知道深度学习有多重要。当时,黄仁勋在人工智能方面做了大量的工作,并制作了这个gpu平台,这使得百度等公司取得了很多成绩。
两周前,百度发布了许多技术为每个人提供服务,其中许多使用机器学习和深度学习,特别是基于gpu的培训学习。最后,我们经常将深度学习与大脑中的神经元进行比较。我希望介绍更多的技术问题,什么是神经网络,为什么我们认为gpu非常适合训练这些神经网络。
我们所做的99%的深度学习工作可以与乘法不同的矩阵或乘法矩阵和向量相比较。从第一天开始,gpu在矩阵乘法方面就非常高效,所以整个领域都使用gpu平台来做他们的工作。
目前,人工智能的所有经济价值基本上都来自于一种叫做监督学习的模型。什么是监督学习?输出你输入的任何东西。如果你想做人脸识别,你要训练人脸识别系统。首先,有一些数据集,比如一张脸和一张非脸。我们通过乘以不同的矩阵来训练神经网络。这就是我们如何进行人脸识别。许多深度学习的经济价值在于找到非常聪明的方法来使用监督学习。有很多例子,比如想要识别垃圾邮件;如果你有足够的数据,你也可以训练一个模型来预测当你在百度上看到大量关于用户和广告的信息时,用户是否会点击广告。因此,有必要寻找一种非常智能的监督学习模型,这也带来了很大的经济价值。我们现在做了很多基础研究,包括监督学习、强化学习和许多其他研究。我希望在接下来的几年里它能在其他领域得到实施。这种有监督的学习模式足以给你目前的许多工作带来变化。
事实上,我所谈到的这些技术的所有细节在20年前就已经存在了,那么为什么深度学习现在才真正发展起来呢?有几个主要趋势:首先,深度学习近年来刚刚发展起来的原因是规模。我喜欢打个比方。构建人工智能就像构建一枚火箭。火箭到底是什么?要制造火箭,你首先需要一个大发动机,然后是大量的火箭燃料,两者都非常大。如果发动机很大,但燃料很少,火箭就飞不远。如果发动机很小并且有很多燃料,火箭就有可能根本无法起飞。一个非常好的火箭只有在发动机很大并且有大量燃料的时候才能制造出来。神经网络就像火箭发动机。现在我们可以建立这种神经网络,因为它的规模和图形处理器的发展。上面提到的火箭燃料是今天许多互联网公司获得的数据。
算法的创新也很重要。对我们来说,首先要建立一个很好的网络,然后有足够的数据,这是一个基础。在过去的几年里,我看到了一些趋势,那就是规模。大约十年前,我们都通过普通的cpu进行了深度学习训练。当时,大约有100万个连接,进展非常缓慢。2008年,我们写了第一篇关于cuda上神经网络训练的文章,这是斯坦福大学当时进行的一项研究,有10倍的变化。
2001年,我领导了一个谷歌团队。我们使用cpu计算来进一步实现规模,使用了大量的cpu。然而,我们很快意识到,使用大量cpu的云计算并不能真正促进深度学习的发展。当时在斯坦福,后来在百度,我们意识到使用高性能计算来实现高性能计算。最近,超级计算机的使用可以进一步促进深度学习算法的进步,所以最先进的深度学习系统已经开始使用高性能算法。训练一个语音识别模型需要我们20万亿次,而我们需要花费100万美元来训练一个模型。我们的一名研究人员需要100美元的数据和4兆字节的数据来训练一个模型。
百度是世界上第一家建立gpu集群进行深度学习的公司。我们不仅训练,而且实际操作。我们早期的投资是乐观的,认为gpu可以帮助我们在这个领域获得领先的能力,促进人工智能能力的发展。
接下来,我想和大家分享一个例子来解释为什么深度学习改变了很多百度人工智能应用。过去,语音识别系统分为许多阶段。首先,输入一个音频,掌握音频的特征,获得音素,并有一个语言模型,然后转录它。2011年,百度建立了语音识别系统。我们认为做语音识别花了我们几十年的时间,但是我们仍然用神经网络代替了整个工作。我们发现有一个很大的神经网络,相当于一个火箭发动机,而端到端的学习方法可以帮助我们训练出最好的语音识别系统。
上个月,我们与斯坦福大学和华盛顿大学合作,发现如果你想用手机输入某些信息,使用语音识别可以比使用键盘快3倍,而这些结果都取决于我们的dsp系统。
我们谈到了规模的重要性,包括计算的规模和数据的规模,并对这些深度学习系统进行了培训。在这里,我想给大家介绍一个简单的方法。如果它能提高机器学习系统的性能,当然有点太简单了,但是当我的团队问我如何改进他们的机器学习系统时,我会先告诉他们这个简单的方法。
首先,问他们,他们目前在培训数据方面做得好吗?如果没有,我会告诉他们你的神经网络需要有更大的规模,这意味着火箭发动机应该更强更大。然后你继续在这方面提高,直到你能在训练数据中表现良好。之后,你会被问及你在测试数据中是否表现良好。如果没有,我会告诉他们有更多的数据,这意味着更多的火箭燃料。在这方面继续改进,直到它在测量数据中表现良好。这是一个非常简单的公式,现实世界会更加复杂,这太简单了。然而,这样一个简单的方法将极大地帮助我们提高系统的性能,并且我相信它可以帮助每个人提高机器学习系统的性能。
在过去的几年中,许多性能的提高在于计算和数据规模的提高。计算规模提高的原因在于gpu计算的出现,它实际上要复杂得多。如果你想知道具体的细节以及如何提高机器学习的性能,你可以参考我写的一本书,并从这个网站上获得一本免费的书。
我之前谈到了gpu的培训,我也看到了它对百度和其他很多公司都很有帮助。另一个趋势是使用gpu不仅是为了培训,也是为了提供在线服务。由hpc训练的庞大的神经网络,我们发现我们有一个问题,我们怎么能把这么大的神经网络放在服务器上提供在线服务呢?
如果我们看一下提供在线服务的传统架构,即cpu服务器的传统架构,这个架构是这样的。例如,这是一个有几个线程的中央处理器服务器。如果用户有一些数据,他给出一个4乘1的向量,比如一些语音数据。你把这个交给一个线程进行计算,然后输出。当第二个用户到来时,他仍然使用第二个线程来帮助他进行计算,第三和第四个线程是相同的。这是一种相对传统的提供在线服务的cpu架构。因为我们在超级计算中训练非常大的神经网络,并使用许多图形处理器,我们发现很难在传统的中央处理器中部署这些非常大的模型,因为这种体系结构不适合。
百度是第一家宣布gpu投入商业运作的大公司,也就是说,推理和提供服务,而不仅仅是培训。我们有一种特殊的技术叫做批量调度。我们将数据放在数据中心。如果一个用户出现了,当他有一些数据输入的时候,我们会暂时让这个数据等一会儿,然后等几个用户出现,每个人都有自己的数据,并把他们做成一批。我们把这些向量堆在一起,把它们变成一个矩阵,这个矩阵是第一个、第二个、第三个和第四个,变成一个4乘4的矩阵。同时,它被交给gpu处理器进行处理,GPU处理器同时处理这四个用户的数据,并且这些结果将同时出来。gpu具有很强的并行处理能力,可以非常高效地执行并行处理。得到结果后,我们将它们分开,分别提供给四个用户。
我们发现,这使我们能够拥有更大的模型规模,并以更低的成本为更多的用户提供服务。昨天,我们在百度的数据中心,数据中心的负责人。在百度,我们看到了一个趋势,越来越多的gpu和高性能计算被用于数据中心。因此,我们的团队正在重新设计数据中心,以更好地利用高密度计算模式,我们的团队正在重新设计电源和散热,以便我们能够将更高密度的计算站带入我们的数据中心进行培训和推理。你们中的一些人可能在数据中心工作,这里有很多工作要做,以重新设计数据中心的架构,从而使用这些高密度图形处理器。
在我谈到深度学习之前,首先是计算的规模和数据的规模。我在过去几年中看到的第二个趋势是,深度学习现在可以产生更复杂的输出。我的意思是,五年前,大多数机器学习只输出整数,比如垃圾邮件分类。如果您输入一封电子邮件,输入是0或1,不管它是否是垃圾邮件,图片是相同的,输出是一个整数。现在它已经改变了,越来越多的深度学习可以输出非常复杂的结果,比如一个句子或者一个图像。我们的dsp批处理系统输入音频剪辑,并可以输出英语或汉语句子。图片描述是我们可以输入图片,输出是图片描述来描述这张图片是一辆黄色的汽车在路上行驶。所以现在神经网络可以输出复杂的东西,比如句子和一些图片,而不仅仅是整数。包括翻译,你可以输入英语句子,然后输出汉语句子,或者纠正语法。也许你输入语法错误的文本,输出语法正确的句子。这一重要趋势也可以非常智能地使用,并且可以在人工智能和深度学习中获得更大的价值挖掘。
当然,我们也知道人工智能现在的主要局限在于学习方式,即监督学习需要大量的标记数据。在未来,我希望我们可以在无监督学习上有所突破,但是目前,我们可以通过有监督学习来改造很多行业,实现大发展。
刚才我们谈到了规模的重要性,我们需要用大量的数据来训练大量的模型。规模非常重要,所以我们需要用大量数据来训练大型模型。还有一个原因,
为什么人工智能的发展需要计算?让我们看看刚才神经网络的简单例子。我们需要花费大量的时间和实验来发现这些神经网络的结构。我可能已经在这个领域工作了25年。现在我不知道什么样的网络适合我开始一个新的问题。研究人员需要做大量的实验和十几个或数百个模型来找到一个好的模型来完成这项任务。训练数据太多,语音识别系统有5万个小时的数据,所以进行这样的训练可能需要3个月,所以研究人员的时间利用率不是很高。另一个原因是百度花了大量的精力来优化开发者的效率,因为你正在做这个模型,你不知道什么样的模型,你必须做大量的实验来找出什么是可行的。我们发现,投资计算机系统来加速实验和试错的过程,可以让研究人员更有效率,给他们更多时间更快地发明新想法。
因此,在这方面,我们强调,首先,我们是一个投资计算平台,一个基于gpu的高性能计算平台。其次,我们在开发易于使用的深度学习工具方面投入了大量资金。我们已经打开了自己的深度学习平台,叫做paddlepaddle,很容易使用。我们可以很容易地尝试深度学习模式,找出哪种模式最适合您的应用。Paddlepaddle支持使用多个GPU。现在我们不是在一个图形处理器上计算,但是我们可以一次用32个、64个和128个图形处理器进行实验。
我对人工智能的未来寄予厚望,对人工智能的未来充满信心。我希望在几年内,我们可以用人工智能来陪伴机器人,并实现个性化的个人教育、音乐创作和机器人医生。这些产品和技术可以给许多行业带来巨大的变化,给人类带来巨大的价值。这些项目中有许多处于研究阶段。在人工智能时代,如果你听我们谈论未来,有时未来很快就会到来。
我想给你看一个例子。我们正在做一个百度医学大脑项目,目前还在研究阶段。请看看这个视频。如果你输入一个问题,你的宝宝发烧了,出了很多疹子,百度医学脑会理解你的问题,问你很多关于你的情况的问题。如果你回答问题很慢,它可以识别你的情况,并输出一些关于你的情况的信息和建议。这个软件当然不能代替医生。如果病人想使用这些信息,他们应该先和医生讨论一下,这项技术还处于研究阶段。我希望这项技术在将来能给病人和医生带来很多非常有用的信息。
我认为我们很幸运有这么好的gpu平台,并且在这个平台上开发了很多ai应用。我很兴奋能在百度开发人工智能工具,这不仅对我们有帮助,对很多行业也有帮助。我希望开发一些基于我们硬件的人工智能工具来帮助每个人。谢谢大家!