在最新报道发出后的第二天,「机器之心」受邀来到谷歌中国和来自 Google Brain 的软件工程师陈智峰聊了聊人机翻译、GNMT 和谷歌的技术创新等问题。神经网络引擎-
以下为采访对话,「机器之心」略有删改:
机器之心:神经网络翻译系统(NMT)将整个输入的句子视作翻译的基本单元,相比于之前基于短语的翻译系统,除了所需的工程设计更少这个优点外,句子意思理解的精确度有多大的提升?
陈智峰:我们过去的方法有很多翻译出来给人看,会发现有很多错误。机器会给这些翻译结果打个分,而我们新的系统作出的翻译所得的分会很高。我们在翻译结果的正确率在一些分数上会提高大概 . 分到 分,这是非常巨大的进步。比如,刚才我的同事讨论在微信上最近有些人开始测试「小偷偷偷偷东西」这个句子,相比过去的模型,这个翻译会非常非常正确。
机器之心:GNMT 有利用外部对准模型(External Alignment Model)对罕见词进行处理吗?神经网络引擎
陈智峰:我们这个模型是没有 External Alignment Model 的,其他一些地方需要使用到外部对准模型来帮助神经网络模型来达到同样的效果,我们这个模型是不需要外面帮助的,整个训练和整个模型就是端对端的模型,它的迅速速度非常简单,你对照着中文句子,对照着英文句子就可以告诉我们,当中几乎没有任何其他的帮助就能够学习到这样的。
机器之心:那在罕见词的处理上是用了什么方法呢?神经网络引擎
陈智峰:我们有两种方法,你可以把中文一个句子分成一个词一个词,比如说「我们今天见面」,你可以把它分成三个词,我们、今天、见面,你也可以把它分成六个字,传统的方法还有很多其他的类似系统里面大多数都是把它分成词来进行建模和训练的。英文也有同样的规律,比如说这个英文里是两个词,我们现在用的方法是把中文词全部打成字,然后把英文单词全部打成像词根一样的部分,比如说英文词语言、图像它的前缀都是一样的,所以说我们把这些前缀作为一个单元进行翻译,而不是像过去那样三个词分别翻译。
机器之心:我们都知道人在阅读时有一种能力是可以忽略文字排序错乱的问题,机器面临这种情况如何像人类一样高效处理这些内容?
陈智峰:不受顺序的影响我觉得是一个程度,比如说你随便打出一个中文的十个字的句子,你任意打乱的话很有可能是错误表达的,但如果你随机调整两个的话是可以跳过一些错误拼写出来的字。现在的模型也能做到,因为整个模型是统计模型,就是你看到前面几个字,然后猜下一个字是什么,有些字的可能性大一些,有些可能性低一点,也可能它会说下一个字就应该是一个空格,这样的话它就会跳过去。神经网络引擎
我们做过一些测试。中文里经常会有一些标点符号,比如前面是双引号,写了句子以后会发现最后忘了加引号,你可以很清楚地看到这个模型会意识到这个地方你是想写一个双引号的,但你没有写。这些现在都能在一定程度上避免这些错误。
机器之心:你觉得 GNMT 在技术上的新突破以及未来的发展是否会完全取代人工翻译?
陈智峰:我觉得完全替换,或者说在任何情况下替换人的翻译还是有一定难度的。现在的机器翻译都是基于已经出现过的语言现象,但是整个人类不停地在发展,比如说网络上经常出现不同的新的语言现象,比如说有些短语、有些常用语,也是不停地在变化的。所以说机器是很难发明新的规则来表达你现在的意义,最终还是要靠人来创造出新的表达方式。
就是机器从人那边学习到怎么表达这个意思更加贴近时代,比如说同样一个英文词一百万,在英国和美国 年前是不一样的。还有对于同样的单词,如果是英国长大的人搬到美国,他会自己调整适应度。也就是说英语环境变化了,它的意思发生了微妙的变化,而你要让一个机器翻译的系统能够捕捉到这样细微的变化还是很难的。神经网络引擎
机器之心:在结构化比较高的文章中,比如论文、科技文献上的处理是不是会更接近一些?可以取代一些?
陈智峰:对,那些我觉得可能,比如说翻译一些医学的文章,就是这个领域非常非常固定的,有些很成文的规则表达的东西,我觉得将来会非常依赖于机器翻译来处理各个语言之间的信息交流,帮助会很大,而且精确度也会很快提高。神经网络引擎
机器之心:从你们一些产品的实验中,就是从更大的范围来看,您觉得有哪些领域是现在特别适合机器翻译来做,或者机器翻译的水平和人的水平最接近的?哪些领域是目前不太适合机器翻译来做的?
陈智峰:比如说在时事新闻方面,因为很多时事新闻写作都是有套路的,比如说美国总统今天怎么样,中国国家主席怎么样,这些模式比较固定的情况机器翻译就能够做得比较好,而且读新闻的人不太注重时事新闻的写作文笔,更注重的是信息的传达,所以说在一些修辞方面或者情感的传达方面要求比较弱。神经网络引擎
机器翻译就能够很快地帮助你获得信息,这是主要机器翻译目前对人类的帮助。目前来讲我觉得在人与人之间的自然沟通上,机器翻译还是有很大的工作需要做,才能达到真正能够让你感觉到跟你说话的人是一个真的人,而不是一个机器,这还需要很多年的努力。
机器之心:在科幻小说《银河系漫游指南》里,有一个种叫「巴别鱼」的生物能实时翻译任何语言,你觉得 Google 实现这样的水平还需要多久?(也就是说在更高层次上与自然语言处理上,实现两种语言对话的实时翻译,预计这种情景能多久实现?中间有着什么样的技术难题?)
陈智峰:很难预测,但我觉得从目前来看如果是要达到信息交互的过程还是很有可能的,但是要达到让你感觉是跟你家人说话的亲切感还是有很大的距离的,尤其是如果你要实时地和另一个人交互。我觉得现在要做到实时翻译还是有一些距离的,尤其是实时的语言翻译还是有一些距离的,但是三年五年可能会有一些突破。神经网络引擎
机器之心:除了在机器翻译上,你们现在在其他语言和产品(例如 Allo)上这项技术应用的进展如何?神经网络引擎
陈智峰:GNMT 是非常针对机器翻译这个产品做的,但是它的顶层研究,就是模型本身是非常广的,可以使用到很多领域里的,每一个产品都在这个基础模型上做一些开发的。举例来讲大家都有 iPhone,但是每个公司做的每个项目上的 APP 不一样。
机器之心:现在 seqseq+attention 的模型已经在 NMT 及其他众多 NLP 任务上取得了非常好的效果,本次发布的 paper 中提到用了更多层的网络得到了更好的效果,请问是否还可以不断地增加网络层数来提升效果?
陈智峰:现在所谓你的层数增加,大家会普遍认为你的模型的能力就相对增强,但是在现有的技术条件下盲目地增加深度的话也有缺点。你的层次增加了,在应用时候的速度会变慢,因为它的计算量会增加,所以在现实当中都是有不同的考虑的。
机器之心:seqseq+attention 的模型在效果方面是否达到了上限,从而需要更新的模型来解决问题?如果有的话,Google 最近在研究什么新的模型?神经网络引擎-
陈智峰:我觉得在机器翻译这个问题上,就是在基本的模型上还有很多扩展的余地,就是说你可以把这个模型变得更大,程序增加,它的模型架构是基本上一样的,但是在这方面你可以进一步推展。当然,这个领域变化很快,每年都会有不同的细分结构、模型结构出来,我们会不停地取长补短,就是有没有可能更快地提供更好的翻译服务。
机器之心:我有注意到现在移动版和网页版的 Google Translate 的汉英翻译已经在 % 使用 GNMT 机器翻译了,为什么会率先在汉英 翻译上去应用呢?现在是有什么技术难点或者考虑吗?神经网络引擎
陈智峰:有两个基本考虑,第一个考虑是在所有的 Google Translate 领域中,中文翻英文和英文翻中文的确是很大的一部分。用户很多,这也是在很多翻译任务当中相对较难的一部分,因为这是两个非常不同的语言,所以从传统上来讲这是一个比较难的。另外一点,在整个项目开发过程中有很多中国同事参与,有很多能懂中文也能懂英文的人在第一个系统的时候可以帮助调试,这会有很大帮助,所以这是主要的考虑。
机器之心:不同语言的语料规模差别很大,英文中的语料非常多,但中文语料就显得非常少。请问,能够将 NMT 的研究成果应用在不同语言语料构建上,从而提升其他语言 NLP 研究水平?
陈智峰:其实中文语料也是很多的,在我们的数据库里中文语料是英文语料的一半,但是这两个语言的语料库中我们掌握的语料是非常非常巨大的,世界上有很多其他语言没有足够的数据,所以这也是一个研究难点,就是怎么通过其他的语言来帮助翻译一些小语种,也是我们正在努力的方向。因为 Google 不光是要服务英文、中文,它的目的是让世界上所有的国家、所有的人都能够获得同样的服务,所以说我们非常致力于全世界有 多种语言,我们希望这 多种语言我们都能够做到很快翻译。
机器之心:刚才提到 Google Brain 和 Translate 这次的合作,我想知道在 GNMT 这次的技术研发包括产品的应用上,两个团队之间的分工是怎么样的?神经网络引擎
陈智峰:我们主要是在初期建模的工作上做的工作比较多,在怎么使用最新的那些 GPU上,我们早期工作做的比较多。在 Google Translate 里面,他们负责很多怎么获得数据的工作,有些数据的有关情况需不需要调试,还有最后怎么把这个模型应用到产品里去,他们也做了巨大的工作,这是主要的工作。神经网络引擎
其实 Google 很多技术开发都是这个模式的,不同的团队之间都会有很强的合作,因为 Google Brain 更多的是一个注重于神经网络、人工智能方面研发的团队,而 Google Translate 主要负责的是翻译这个产品,当然他们也有研究团队。所以各个团队不同,他们花了很多的时间,那么多年,就是需要采集数据,比如说我们训练的时候可以完全用他们已有的训练数据,每个团队的目标不一样,但是合作非常流畅,没有任何问题。
机器之心:你们的新论文描述了让 NMT 在非常大型的数据集上工作的许多挑战,你觉得当前最大的技术难点在哪里?在翻译速度和准确度的提高上你们又做了哪些创新?神经网络引擎
陈智峰:这个项目在三年前,也就是 、 年的时候 Google Brain 就想做了,当时从硬件和软件上都无法支持训练这个模型,在过去两三年中 Google Brain 开发了 TensorFlow,使得训练类似的模型可以充分利用分布式计算,利用很多很多不同的硬件类型。另外,如果你这两三年没有一些专门的硬件加速器的话也是很难在短时间内完成这个训练。而过去两三年 Google 在机器学习、在人工智能方面的巨大投入,使得类似的操作才变得可行。当然,我们也做了很多,对于具体的训练在我们现有的硬件资源上做了很多优化,这也是一方面的努力。
机器之心:您说这个短时间是短到什么程度?是多久训练一次?
陈智峰:一般来说我们训练一个语言现在需要五天到六天的时间,差不多需要将近一百个 GPU 的加速器才能做完,差不多一星期才能处理一个方向的语言模型。但是 Google 有大概一万个语言的模型需要训练,当然我们有巨大的资源投入,也在不停地改进算法,所以说都在努力。神经网络引擎
机器之心:这次我们这个系统昨天晚上的新闻发出来以后,很多人拿一些有趣的句子去测试,我想了解一下你们内部也有很多中国人,有这种有趣的句子测试它吗?
陈智峰:上市之前我们每个同事都绞尽脑汁想出一些办法考考我们这个系统,大家都觉得不太容易考倒它,所以最后决定我们可以拿出来给用户用一下。当然,肯定不是一百分,但是我们还是相对满意的。
因为 Google 以前有那么多年积累下来的难题,用户在使用Google翻译时,可能当时觉得翻译得不好,他们就会有记录,然后发给我们。我们会把那些东西放进新的系统看看这次做得好不好,比如说把中国的一些歌词拿出来放进去看看翻译出来的结果会不会比原来好,其实那种测试主要是防止它说出一些不太好的话。我们都做了很多测试,所以我们觉得还是有信心的。神经网络引擎-