魏代猛:下图为华为自研推理框架 Optimus 的架构图
华为机器翻译框架 Optimus 有以下几个特点:
依托于华为 Mindspore 实现高性能的跨平台的训练。利用 Mindspore 的二阶优化,相对于其他框架来说能够有 30% 的训练速度提升。可在传统的 GPU,CPU 上训练,也可以在华为自研的昇腾芯片训练。
高性能跨平台的机器翻译模型推理。Optimus Core 是华为机器翻译实验室和华为 Noah 高性能计算实验室联合打造的高性能跨平台推理组件。通过深入地解构机器翻译算法并且深度融合硬件特性,我们着重打造在 CPU 和 ARM 上的极致推理,并且也能够具备和 GPU 和昇腾芯片上一样的高性能。
跨训练框架的模型适配。通过 Optimus Adapter 可以完成其他训练框架训练的 NMT 模型,自动转换为 Optimus 能够推理的模型,让推理和训练平台解耦,方便快速工程部署。
丰富的 NMT 预训练模型。Optimus 具备多种语种的大规模训练的机器翻译双语和多语言模型。为方便部署,我们还有可以一键部署的语言检测、实体识别、自动质量评价、自动译后编辑等 NMT 周边的预训练模型,方便 NMT 生态快速产品化。
华为机器翻译相比 Google 机器翻译等业界机器翻译团队,起步比较晚。我们的核心问题一直是如何利用深度学习快速发展的阶段,在 NMT 这个领域通过后发优势,做到业界领先。
在早期,我们通过华为 Noah 实验室和国内外高校紧密持续的合作,将 NMT 模型快速赋能到华为机器翻译团队。随后,再通过庞大的人工翻译团队和在 ICT 中积累的 20 年经验,持续打磨 ICT 模型。
我们先后尝试了业界中最新的各种算法和模型,快速迭代,利用大量的高质量问题反馈,持续的提升机器翻译,并且积累了大量的工程和算法经验。最后,我们再将经验推广到其他领域和其他语种,做到语种数量快速扩张。
魏代猛:随着端到端机器翻译架构的引入,机器翻译的调序实现了完全的自动化。
比如机器翻译典型框架 Transformer 的解码过程,是将输入先通过 encoder 编码为一组向量,解码的时候是通过注意力机制,确定输入内容哪些信息影响大,哪些影响小,然后一个词一个词地解码,这些都是自动的过程,不需要其他的算法干预。
而对于长度问题,机器翻译也有一套解决方法。从模型侧看,早期的 RNN 结构,对长句子解码效果不太好,因为它是从左到右的编码的,句子太长了,后面的内容对前面的信息的感知就会差一些。但是 Transformer 很大程度上解决了这个问题。
Transformer 的算法保证了每个词之间的距离都只有 1,很好地解决了编码的问题。编码和解码器之间的信息交流可以通过 Cross Attention 来解决,这对于长句子来说也很关键。
从工程侧来看,我们输入一段长的内容翻译,一般都会经过分句、分词输入到模型。分句的目的就是通过标点符号,将长段落变成一个一个的句子,这减少了每次输入模型的长度。另外通过分词等让句子变成一个一个的词组,对中文来说,也能够减少长度。
关于流畅度,NMT 本身流畅度较佳。再想提升,通常要是通过单语增强来提升,也就是 Back translation。
魏代猛:其实在机器翻译中很少有方言这个概念,方言和官方语言的差别主要是在读音上,在文字上区别其实是可以忽略不计的。方言的问题一般在语音识别中比较突出,因为方言的特殊性,有些字虽然意思相同,但是读音差别却很大。
机器翻译更关注的是内容的差别。比如诗歌翻译,对机器翻译来说就很难。诗一般是高度抽象的,你要理解他的意思就需要很多相关的知识,还有很多的典故。这类问题我们一般可以归结为领域问题,通过领域增强的策略也能够提升效果。
魏代猛:华为内部的 AI 系统在部署维护上有比较完善的体系,资源上我们可以依赖华为云,训练和部署上我们依赖于 ModelArts,他们是华为专门做人工智能训练和部署以及维护的部门。因此,这块对我们来说问题就没有这么突出了。
魏代猛:无论是 Mindspore 和昇腾芯片,其实我们都是学习业界的,是业界已经有的东西。比如 Mindspore 是机器学习训练框架,这种框架业界有 Google 的 TensorFlow,Facebook 的 Torch,国内百度的 PaddlePaddle 等等。
昇腾芯片是大规模矩阵运算依赖的芯片,业界也有很多类似的芯片,做得最好的还是 NVIDIA,我们总体上还是追赶者的角色,尤其是芯片受到限制之后。
既然业界啥都有了,我们为什么还要做呢?我们认为,如果要做到极致的训练和推理,并且独立自主,必须得有自己的训练框架和芯片,而且只有这种软硬结合的策略才能在人工智能发展中构筑强大的竞争力。
而且我们还可以利用后发优势做到超越,比如我们 Mindspore 的二阶优化,就是业界首推的。
魏代猛:多组双语模型和多语言模型,其实从本质上来说没啥大的区别,从模型结构上来看,甚至可以说是一模一样的。
NMT 发展的早期大家都是关注双语模型的,后来 Google 发现仅仅是相同的模型结构,只用在训练的时候对数据做一些标识,就能够完成多语言的效果。
多语言模型相对于多组双语模型来说,有个明显的优势就是,一个模型可以干很多事情。这非常利于工程部署,尤其是对于低调用量的模型。
举个例子来说,我们本来部署了 10 个 GPU 的模型,但调用量却很低,有些 GPU 大部分时间都是没有调用量的或者很少的调用量;如果用一个模型解决多语种的问题,那么我们就可以部署 2 个 GPU 的模型。这两个模型支持了相同数量的语种的同时,提高了利用率,减少资源的空闲。
多语言模型也有它的特点。比如我们训练的语种是 xx2en 的,这类型的多语言模型,一般会对低资源语种增强效果很明显,但是如果是 en2xx 的这种模型,对于高资源的语种影响很大了,一般会有 1-2Bleu 的衰减。为了缓解这类问题,我们可以采用语言独立的适配层,或者增大模型容量等策略。
魏代猛:低资源可以简单地分为领域低资源和语种低资源:领域低资源是指翻译的内容属于某个特定的领域,而这个领域的数据比较少,比如医疗领域的数据总是较少,所以医疗的内容一般翻译的就不会特别准确语种低资源是指,我们要翻译的语种本身就是一个低资源的语种,比如纽因特语,使用这种语种的人目前就比较少,导致语料积累很少
对于领域低资源问题来说,问题很多时候是演变成解决领域的术语或者特有词翻译的问题上,如何准确的翻译这类领域特色内容是解决这类问题的关键,目前我们也尝试了很多的方法,包括通过大的预训练模型增强,术语硬干预和软干预,领域数据积累等等策略,这些都能够较为有效的解决此类问题。
对于语种低资源问题,其实从产品的角度考虑,即使这类模型翻译的质量比较差,但是因为使用人数的关系,导致这类问题影响范围较小,解决优先级很可能比领域低资源要低。
不过语种低资源问题的研究也很多,我们一般使用多语言增强和单语增强来解决这类问题。简单地说,可通过低资源语种相同语系的高资源语种来增强。另一方面,低资源语种的双语虽然少,但是单语相对来说一般都会多很多,通过迭代 BT 等策略,就可以充分地利用低资源语种的单语来提升模型的质量。
魏代猛,华为 2012 实验室 / 机器翻译算法负责人,北京大学机器学习硕士,10 年华为工作经验,从 0 到 1 构建华为机器翻译模型,参与华为机器翻译模型的每个语种训练调优。华为机器翻译模型现已支持近 100 种语言互译,除了有力支撑华为 30 万员工内部办公交流等场景外,还支撑着华为各个产品和服务的机器翻译,包括华为手机、华为音箱、华为手表和 HMS 以及华为云等业务。
参加国际机器翻译比赛 WMT、IWSLT、WAT 等,获得多项第一名,现已发表 20+ 论文和专利。
如果你想了解更多关于人工智能相关的话题,欢迎来参加将于 7 月份在深圳举办的 ArchSummit 全球架构师峰会。本次大会设置了十余个技术专场,其中「AICon 全球人工智能与机器学习技术大会」这个专场将更聚焦在落地案例,机器学习、强化学习、应用层面 NLP、语音等等,点击阅读原文了解详细信息。
现在购票可享 8 折特惠,单人购票立减 1760 元,购票请扫码或咨询:18514549229(微信同电话)
点击下方图片即可阅读
你也「在看」吗?👇