脑波项目与实时AI
当前,人工智能有了很大的发展,而这很大程度上归功于深度学习技术的发展。人们逐渐认识到,当你有了深度学习算法、模型,并构建了深度神经网络时,需要足够多的数据去训练这个网络。只有加入更多的数据,才会让深度神经网络变的更大、更好。通过使用深度学习,我们在很多传统的AI领域取得了长足的进展,比如机器翻译、语音识别、计算机视觉等等。同时,深度学习也可以逐步替换这些领域发展多年的专用算法。
这些巨大的发展和变革,促使我思考它们对半导体和芯片架构的影响。于是,我们开始重点布局针对AI、机器学习、特别是深度学习的定制化硬件架构,这也就是脑波项目(Project Brainwave)产生的主要背景。
在脑波项目里,我们提出了一种深度神经网络处理器,也有人称之为神经处理单元,或者NPU(Neural Processing Unit)。对于像必应搜索这样的应用来说,他们需要很强的计算能力,因为只有不断学习和训练,才能向用户提供更优的搜索结果。因此,我们将大的深度神经网络利用FPGA进行加速,并在很短的时间内返回结果。目前,这种计算架构已经在全球范围内运行了一段时间。在2018年的微软开发者大会上,我们正式发布了脑波项目在Azure云服务上的预览版。我们也为一些用户提供带有FPGA的板卡,使他们可以使用自己公司的服务器,从Azure上获取AI模型并运行。
对于脑波项目来说,另外一个非常重要的问题在于神经网络的推断。目前的很多技术使用的是一种叫做批处理的方法。比如说,你需要将很多个不同的请求收集到一起,然后打包发送到NPU进行处理,然后一次性得到所有的答案。
对于这种情形,我经常把它比喻成你在银行里排队,你排在第二个,但总共有100个人排队。出纳员将所有人的信息收集起来,并询问每个人想要办什么业务,然后取钱存钱,再把钱和收据发给每个人。这样每个人的业务都在同一时刻完成,而这就是所谓的批处理。
对于批处理应用来说,可以达到很好的吞吐量,但是往往会有很高的延时。这就是我们为什么在尝试推动实时AI的发展。