早一段时间,网易有道首席科学家段亦涛向机器之心介绍了有道翻译所采用的模型,他们同样经历了从Seq2Seq到Transformer的演变。其实早在2008年,有道就推出机器翻译服务,当时采用的是流行的 SMT(统计机器翻译)技术。从2年前开始研发到2017年4月,网易有道的"神经网络翻译" (NMT) 技术正式上线,因此迈入了Seq2Seq模型。到了今年,网易有道进一步采用Transformer作为基础架构,并研发出第三代高效翻译系统。
与有道翻译的发展类似,其实自DL崛起以来,基于编码器解码器框架的神经机器翻译系统取得了很大的进步与应用。最开始我们基于循环神经网络构建神经机器翻译的标准模型,后来我们考虑使用卷积神经网络提升并行训练效果,而去年谷歌研究团队更是提出不使用 CNN 和 RNN 抽取特征的 Transformer。尽管 Transformer 在解码速度和位置编码等方面有一些缺点,但它仍然是当前效果最好的神经机器翻译基本架构。
下面机器之心主要针对有道神经机器翻译模型提了一些问题:
机器之心:因为有道NMT的主要架构采用的是Transformer,那么它相比于以前采用的RNN在性能、速度和计算力上有什么样的显著提升?
有道翻译:RNN模型隐层状态的计算是分步进行的,每一步状态更新需要依赖于上一步的状态输出,这会导致编码长度为N的句子时需要N步计算,不能并行化计算,而且因为梯度消失和梯度爆炸的问题,RNN对长序列的建模效果较差。Transformer相比于RNN而言,每个位置状态的更新都是独立的,所以它是可以并行进行的,Transformer只需要一步就可以连接句子的所有位置,它对于长句的建模效果也会更好。我们从RNN 升级为 Transformer,单模型BLEU(翻译通用评价指标)提升了2~3个点,与RNN相比,Transformer模型对漏词和重复翻译这些问题都得到了较好的改善。训练速度也有明显提升。在推理方面,Transformer 相比于我们之前的 RNN 模型计算量上没有减少,而且由于模型的特点,导致在RNN中使用的一些预计算等空间换时间的方法不再奏效,给上线带来了很大的挑战。我们通过一些优化还是将推理速度做到了和之前RNN基本一致的状态,上线了完整的Transformer模型。
机器之心:因为现在很多NMT应用都采用的是Transformer架构,那么有道NMT会在哪些方面对模型有提升,主要的优势是什么?
有道翻译:我们对于Transformer架构的提升可以分几个方面,包括对单语数据的利用,模型结构的调整,训练方法的改进等。在对单语数据的利用上,我们尝试了back translation及dual learning等一些策略;模型结构调整上我们使用了relative position提升对相对位置的建模;我们还通过对抗训练和scheduled sampling提升了模型对输入和输出端噪声的鲁棒性,在训练中通过会同时引入多个监督目标来优化模型。我们也利用了迁移学习来提升多语种的翻译效果。最新的BLEU值对比数据是11月底的,我们的效果在之前的基础上又有了一个提升。
机器之心:在数据方面,有道NMT所采用的训练集来源都是哪些方面,会采用一些提升训练样本质量的方法吗?
有道翻译:有道从2008年上线第一个版本的统计机器翻译引擎之初,就持续抓取和清洗互联网上的平行语料,这是一个持续积累和建设的过程。除此之外,我们也会使用一些开源的数据集、使用一些特定领域或者语种的语料,甚至会使用众包方式人工标注一些数据。另外,我们也发现,语料的规模并不是最重要的,所以我们在数据的清洗、领域的分布和用户需求的分析及适配上也做了很多的工作。NMT模型对噪声数据是比较敏感的,所以除了我们训练模型加一些对抗噪声外,在处理语料的时候也会从多个方面提升样本的质量,包括利用有道词典,对齐信息等来过滤语料。
机器之心:在训练方面,有道NMT会不会采用集成方法提升翻译效果,或者其它技术润色译文?
有道翻译:我们在Transformer模型上也实验了model average和ensemble的方法,model average在我们的实验中效果一般,ensemble有一定的提升。除此之外,在部分特定领域下,我们开发了干预机制,可以将术语按照提供的术语表正确翻译出来。
值得注意的是,今年9月份,网易有道发布了有道翻译王2.0 Pro。与第一代产品有道翻译蛋相比,翻译王增设了英日韩三大常用外语与中文的离线互译功能,在线语音互译的语言包也从 27 种拓展为 43 种,覆盖 191 个国家和地区。同时,翻译王结合了OCR 识别技术,支持 7 种语言离线拍照翻译、21 种语言在线拍照翻译,是目前市面上拍照翻译支持语种最多的翻译机。
有道翻译王能支持离线翻译,这势必需要将NMT模型嵌入到终端中,这会产生非常多的工程化问题,这也是影响实际用户体验的重要因素。为此,有道翻译针对这些困难做了一个简要的概述:
机器之心:因为翻译王能实现离线翻译,而NMT模型又非常巨大,那么有道会采用一些模型压缩方法或优化方法加速NMT模型在翻译王上面的推断吗?
有道翻译:将深度学习技术落地在移动端离线状态下应用挑战很大,我们做了很多工作。实际上不止是离线翻译NMT,还包括离线的语音识别、OCR等。一方面,我们通过裁减词表、简化网络结构、共享参数、量化等方法压缩模型,另外一方面我们在实际计算过程中优化搜索剪枝算法,针对平台做了大量的指令优化。考虑到终端设备的软件硬件限制,在服务加载速度,内存使用管理上我们也做了较多的优化。
机器之心:将NMT模型部署到翻译王这样的边缘设备很多时候遇到的都是工程化问题,有道在开发深度模型时采用的是TensorFlow还是内部的DL框架?
有道翻译:虽然目前有很多开源离线框架,如TensorFlow Lite,Caffe2等,可以较为方便的做离线工程化。但是具体到我们的模型,这些通用框架效率还是太低了。有道有自研的离线框架,能够根据模型的特点做一些优化处理,包括模型的压缩、层间合并,使用芯片支持的向量操作指令集,调整指令执行顺序和逻辑结构,提高cache命中率、提高内存使用效率等。我们在这方面下了非常多的功夫,目前我们的离线框架已经相对比较成熟,能够支持cpu、gpu、dsp、npu等各种硬件平台,在cpu (或arm) 上比caffe2要快4倍以上。我们在端侧的工程化都是基于自己内部的离线框架做的。