华为AI芯片+微软研发=第一款移动端离线推理神经网络
机器之心原创
作者:邱陆陆
10 月下旬,华为的 NPU AI 专用处理单元和 HiAI 移动计算平台亮相华为上海发布会,引起了诸多关注。在发布会上,余承东通过微软为华为开发的 Microsoft Translator 的 AI 离线翻译功能介绍了人工智能专用芯片 NPU 与 HiAI 移动计算平台。随后,我们与微软全球技术院士黄学东进行了对话,仔细聊了聊这款包含了世界上第一个能够在智能设备上进行离线推理的自然语言处理神经网络的应用的诞生始末。
Microsoft Translator 是一款部署在 iOS 和 Android 平台上的应用,支持包括英文、中文等在内的超过 60 种语言的互译。
其翻译模式按照输入类别可以分为三种,分别是文本翻译(text)、图像翻译(photo)和语音翻译(voice)。其中图像翻译是借助 OCR 技术,读取出图片内的文本然后进行翻译,语音翻译则借助了语音识别技术。
按照翻译所用的模型类别,则可以分为在线的 NMT 模式和离线的 SMT 模式。
NMT 指神经机器翻译,是以神经网络为基础,以句子为单位进行整体翻译的方法,是当下的最佳模型(state-of-the-art model),然而神经网络模型通常规模庞大,需要大量计算资源,因此只能部署在云端。
SMT 以词和短语为单位进行翻译,是 NMT 出现前的上一代最佳模型,主要依赖于对大量语料进行统计找出规律,SMT 模型相比于 NMT 模型规模较小,能够保存在本地,以 Microsoft Translator 的 iOS 版本为例,一个简体中文离线包的大小是 205MB。
而为华为特别开发的这一款 Microsoft Translator 的特别之处就在于,其文本翻译和图像翻译模式均采用了离线的神经机器翻译模型。
这一原先仅仅能通过微软 Cognitive Services API 调用的,部署在微软云上的神经机器翻译系统,采用了惯用的多层 LSTM 编码器、注意力(attention)算法和解码器组成的系统。
图:LSTM 编码器 + 注意力模型 + 解码器系统演示
这类复杂的神经网络通常带有数以百万计的参数,每次解码过程需要进行大量的运算,通常都会以云端的 CPU 或 GPU 进行。例如,谷歌翻译利用 GPU 进行推理,有道翻译利用 CPU 进行。而开发一款神经机器翻译系统最大的障碍之一就是推理速度。谷歌和有道的工程师都曾表示,开发的初期阶段,模型虽然准确率很高,但翻译一句话需要 10 秒钟甚至更多。这使得系统完全达不到「可用」的标准。工程师们投入了大量的精力对模型做不影响效果前提下的修改和简化,才让部署在云端处理器上的系统变得可用。而这一次,微软的工程师直接将这个原本难倒了大型 CPU 和 GPU 的模型放在了移动端芯片里。
微软将模型中最耗费计算资源的 LSTM 编码器用深层前馈神经网络(deep feed-forward neural network)替代,转换为大量低运算难度的可并行计算,充分利用华为 NPU 能够进行大规模并行计算的特点,让 NPU 在神经网络的每一层中同时计算神经元的原始输出和经过 ReLU 激活函数的非线性输出,由于 NPU 有充足的高速存储空间,这些计算可以免受 CPU 与 NPU 间数据交换的延迟,直接并行得到结果。
图:替代后的翻译模型
搭载于最新的 Mate 10 系列上的麒麟 970 芯片及其内置的 AI 专用处理单元 NPU,是华为第一次在移动设备的层面上把机器学习硬件计算加速能力叠加进芯片中去,也让 Mate 10 成为全世界的消费者拿到的第一款有专用于进行人工智能方面计算的处理单元的手机。
黄学东表示,从手机 CPU 到 NPU 有接近 300% 的计算加速,正是这个加速让神经网络在终端设备上的离线推理越过了阈值,从不可能变成可能。
以前在 CPU 时代,离线操作就要承受巨大的性能损失,而在线服务就无法脱离开对网络的依赖。尤其是翻译这样一项服务,很多应用场景都并没有稳定的网络支持,是需要有强大的离线功能存在的。而华为手机的用户大多为商务人士,很多应用场景都在国外,网络条件并不能得到保障,离线功能可以说是必不可少。
因此微软的工程师联合华为的工程师,对现有的神经翻译模型进行了层数、模型结构、工程实现方法等多方面优化,能够在大幅减小所需运算量的情况下让离线模型效果可以媲美在线模型,「大家应该感觉不出来二者的差距」,黄学东说。同时也研究了如何更好地同时使用 NPU 与 CPU :利用 NPU 完成推理工作,利用 CPU 辅助程序所需的其他操作。
而选择了神经机器翻译作「第一个吃螃蟹的 AI」,则主要是出于两个考量,一是翻译是一个痛点十分明确的需求,二是神经机器翻译模型的简化和提速相比于语音模型更容易。
黄学东十分看好神经网络处理单元在移动端的前景:「未来会有更多手机有神经网络处理单元,例如苹果 iPhone X 需要做面部识别解锁,就一定需要手机具有离线运行深度神经网络的能力。另外 iPhone X 的照相功能中的三维打光,也需要进行大量的计算。未来这样的需求会越来越多,因此专门的处理单元是很必要的。」
而对于微软来说,下一步可能会研发在线与离线相结合的混合系统,能够在网络条件好的时候自动调用性能更好的在线模型,在网络条件不足以支持的时候进行离线推理。这对于微软以 Cognitive Service 为代表的云服务是一个很自然的拓展,增加了终端的适用性。
同时微软的 PowerPoint 实时翻译功能也能够在华为手机上使用,能在演讲中、课堂上提供实时的帮助。演讲者在台上进行演讲的同时,PowerPoint 的自动翻译插件会识别语音、转换为文本,并可以进行超过 60 种语言的同传。台下的每个人都可以在自己的手机上获得自己需要的语言的翻译。」
「我们最终的目标是去掉语言障碍。」黄学东说,「We want to bring people together. 当年我带着美式英文的底子去爱丁堡大学留学,很是为教授的苏格兰口音英语吃了一些苦头。如果现在的爱丁堡大学的教授下载了 Presentation Translator,而每一位留学生的手里有一部华为 Mate 10 手机,他们就不必经受我当年的痛苦了。希望通过这次与华为合作,能够帮助更多用户打破语言障碍。」
最后,让我们通过一组截图感受一下 NPU 与神经网络的强大之处。以下全部截图来自华为 Mate 10 Pro。
主屏界面:
可以看到有文本、图像、语音和对话四种翻译模式,用图标代替文字说明也体现了「消除语言障碍」的目标。
文本翻译模式英翻中:
我们选择了一段机器之心对 Christopher Manning 的专访文章的开篇:
「Deep Learning waves have lapped at the shores of computational linguistics for several years now. but 2015 seems like the year when the full force of the tsunami hit the major Natural Language Processing(NLP) conferences.」Two years ago, Christopher Manning began his speech on ACL2015 this way.
复制完文档内容后,打开 Microsoft Translator,可以看到屏幕右侧有黏贴快捷方式。
黏贴后不到一秒翻译完成,效果如下:
你可以用全屏模式展示给他人:
或双击复制内容:
或用其他方式分享:
图像翻译模式中翻英:
这里主要测试 OCR 模型的识别能力、准确度,以及翻译速度与精度。
我们截取了一段本文中的内容:
应用在不到一秒的时间里完成了 OCR 文本识别和翻译两项工作。
可以看出,该系统准确翻译了自然语言处理(natural language processing),神经网络(neural network)等专有名词,并能够主动调整句式,将「包括英文、中文在内的超过 60 种语言的互译」翻译为「translation of more than 60 languages, including English, Chinese, etc.」。
图像识别英翻中:
我们采用了两张 Christopher Manning 的演讲幻灯片作为样本:
可以看到幻灯片右下角,连人眼很难看清的标识版权的蝇头小字都被 OCR 捕捉到。
它也能自动区分哪些是专有名词与缩写,采用原文而不翻译。
目前看来,华为 Mate 10 系列上搭载的第一款移动端神经网络应用的效果很棒,相信随着开发者的跟进,我们很快就会看到人工智能芯片驱动的更多 AI 新应用。