写点什么

华为翻译:要独立自主地做好人工智能,必须软硬结合

  • 2022-04-28
  • 本文字数:3502 字

    阅读完需:约 11 分钟

华为翻译:要独立自主地做好人工智能,必须软硬结合

构建一个通用的翻译系统,帮助每个人获取信息并更好地相互联系,是机器翻译(MT)领域的终极目标。随着出海全球化的发展,MT 已经成了很多企业的必需品。但是,MT 领域需要消除一些基本的限制,才能使这样的未来成为现实。为此,ArchSummit架构师峰会邀请了华为 2012 实验室机器翻译算法负责人魏代猛老师,来分享华为翻译方面的经验。


InfoQ:能否介绍一下华为自研推理框架 Optimus?


魏代猛:下图为华为自研推理框架 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 模型。


我们先后尝试了业界中最新的各种算法和模型,快速迭代,利用大量的高质量问题反馈,持续的提升机器翻译,并且积累了大量的工程和算法经验。最后,我们再将经验推广到其他领域和其他语种,做到语种数量快速扩张。


InfoQ:华为是如何解决在长距离调序、译文流畅度等技术难题的?


魏代猛:随着端到端机器翻译架构的引入,机器翻译的调序实现了完全的自动化。


比如机器翻译典型框架 Transformer 的解码过程,是将输入先通过 encoder 编码为一组向量,解码的时候是通过注意力机制,确定输入内容哪些信息影响大,哪些影响小,然后一个词一个词地解码,这些都是自动的过程,不需要其他的算法干预。


而对于长度问题,机器翻译也有一套解决方法。从模型侧看,早期的 RNN 结构,对长句子解码效果不太好,因为它是从左到右的编码的,句子太长了,后面的内容对前面的信息的感知就会差一些。但是 Transformer 很大程度上解决了这个问题。


Transformer 的算法保证了每个词之间的距离都只有 1,很好地解决了编码的问题。编码和解码器之间的信息交流可以通过 Cross Attention 来解决,这对于长句子来说也很关键。


从工程侧来看,我们输入一段长的内容翻译,一般都会经过分句、分词输入到模型。分句的目的就是通过标点符号,将长段落变成一个一个的句子,这减少了每次输入模型的长度。另外通过分词等让句子变成一个一个的词组,对中文来说,也能够减少长度。


关于流畅度,NMT 本身流畅度较佳。再想提升,通常要是通过单语增强来提升,也就是 Back translation。


InfoQ:方言翻译和官方语言翻译有什么区别吗?在这个过程中,您有什么经验能和大家分享吗?


魏代猛:其实在机器翻译中很少有方言这个概念,方言和官方语言的差别主要是在读音上,在文字上区别其实是可以忽略不计的。方言的问题一般在语音识别中比较突出,因为方言的特殊性,有些字虽然意思相同,但是读音差别却很大。


机器翻译更关注的是内容的差别。比如诗歌翻译,对机器翻译来说就很难。诗一般是高度抽象的,你要理解他的意思就需要很多相关的知识,还有很多的典故。这类问题我们一般可以归结为领域问题,通过领域增强的策略也能够提升效果。


InfoQ:随着语言数量增多,您的小组是如何解决模型数量多、系统部署和维护成本高等一系列技术与产业难题的?


魏代猛:华为内部的 AI 系统在部署维护上有比较完善的体系,资源上我们可以依赖华为云,训练和部署上我们依赖于 ModelArts,他们是华为专门做人工智能训练和部署以及维护的部门。因此,这块对我们来说问题就没有这么突出了。


InfoQ:华为机器翻译模型使用华为自研机器学习框架 Mindspore + 华为的昇腾芯片,该芯片有什么作用,业内有什么替代品吗?


魏代猛:无论是 Mindspore 和昇腾芯片,其实我们都是学习业界的,是业界已经有的东西。比如 Mindspore 是机器学习训练框架,这种框架业界有 Google 的 TensorFlow,Facebook 的 Torch,国内百度的 PaddlePaddle 等等。


昇腾芯片是大规模矩阵运算依赖的芯片,业界也有很多类似的芯片,做得最好的还是 NVIDIA,我们总体上还是追赶者的角色,尤其是芯片受到限制之后。


既然业界啥都有了,我们为什么还要做呢?我们认为,如果要做到极致的训练和推理,并且独立自主,必须得有自己的训练框架和芯片,而且只有这种软硬结合的策略才能在人工智能发展中构筑强大的竞争力


而且我们还可以利用后发优势做到超越,比如我们 Mindspore 的二阶优化,就是业界首推的。


InfoQ:您怎么看多组双语模型和多语言翻译模型?


魏代猛:多组双语模型和多语言模型,其实从本质上来说没啥大的区别,从模型结构上来看,甚至可以说是一模一样的。


NMT 发展的早期大家都是关注双语模型的,后来 Google 发现仅仅是相同的模型结构,只用在训练的时候对数据做一些标识,就能够完成多语言的效果。


多语言模型相对于多组双语模型来说,有个明显的优势就是,一个模型可以干很多事情。这非常利于工程部署,尤其是对于低调用量的模型。


举个例子来说,我们本来部署了 10 个 GPU 的模型,但调用量却很低,有些 GPU 大部分时间都是没有调用量的或者很少的调用量;如果用一个模型解决多语种的问题,那么我们就可以部署 2 个 GPU 的模型。这两个模型支持了相同数量的语种的同时,提高了利用率,减少资源的空闲。


多语言模型也有它的特点。比如我们训练的语种是 xx2en 的,这类型的多语言模型,一般会对低资源语种增强效果很明显,但是如果是 en2xx 的这种模型,对于高资源的语种影响很大了,一般会有 1-2Bleu 的衰减。为了缓解这类问题,我们可以采用语言独立的适配层,或者增大模型容量等策略。


InfoQ:低资源翻译仍然是 MT 的 "最后一公里 "问题,也是该子领域目前公开的最大的挑战,华为在这方面有什么思考吗?


魏代猛:低资源可以简单地分为领域低资源和语种低资源:


  • 领域低资源是指翻译的内容属于某个特定的领域,而这个领域的数据比较少,比如医疗领域的数据总是较少,所以医疗的内容一般翻译的就不会特别准确

  • 语种低资源是指,我们要翻译的语种本身就是一个低资源的语种,比如纽因特语,使用这种语种的人目前就比较少,导致语料积累很少


对于领域低资源问题来说,问题很多时候是演变成解决领域的术语或者特有词翻译的问题上,如何准确的翻译这类领域特色内容是解决这类问题的关键,目前我们也尝试了很多的方法,包括通过大的预训练模型增强,术语硬干预和软干预,领域数据积累等等策略,这些都能够较为有效的解决此类问题。


对于语种低资源问题,其实从产品的角度考虑,即使这类模型翻译的质量比较差,但是因为使用人数的关系,导致这类问题影响范围较小,解决优先级很可能比领域低资源要低。


不过语种低资源问题的研究也很多,我们一般使用多语言增强和单语增强来解决这类问题。简单地说,可由通过低资源语种相同语系的高资源语种来增强。另一方面,低资源语种的双语虽然少,但是单语相对来说一般都会多很多,通过迭代 BT 等策略,就可以充分地利用低资源语种的单语来提升模型的质量。


嘉宾介绍:魏代猛,华为 2012 实验室/机器翻译算法负责人,北京大学机器学习硕士,10 年华为工作经验,从 0 到 1 构建华为机器翻译模型,参与华为机器翻译模型的每个语种训练调优。华为机器翻译模型现已支持近 100 种语言互译,除了有力支撑华为 30 万员工内部办公交流等场景外,还支撑着华为各个产品和服务的机器翻译,包括华为手机、华为音箱、华为手表和 HMS 以及华为云等业务。

 

活动推荐:如果你想了解更多关于人工智能相关的话题,欢迎来参加将于 7 月份在深圳举办的ArchSummit全球架构师峰会。本次大会设置了十余个技术专场,其中【AICon 全球人工智能与机器学习技术大会】这个专场将更聚焦在落地案例,机器学习、强化学习、应用层面 NLP、语音等等,点击阅读原文了解详细信息。


现在购票可享 8 折特惠,单人购票立减 1760 元,购票请扫码或咨询:18514549229(微信同电话)



2022-04-28 10:434521

评论

发布
暂无评论
发现更多内容

云原生年度技术盘点出炉!乘风破浪正当时

阿里巴巴云原生

阿里云 云原生 年度盘点

MyBatis3源码解析(2)数据库连接

Java mybatis

MyBatis3源码解析(5)查询结果处理

Java mybatis

MyBatis Demo 编写(1)基础功能搭建

Java mybatis

【高并发】深入解析Callable接口

冰河

Java 并发编程 多线程 高并发 异步编程

SchedulerX 如何帮助用户解决分布式任务调度难题?

阿里巴巴云原生

阿里云 云原生 公有云 SchedulerX

服务网格 ASM 年终总结:最终用户如何使用服务网格?

阿里巴巴云原生

阿里云 云原生 服务网格 容器服务

MyBatis Demo 编写(2)结果映射转换处理

Java mybatis

设计模式【15】--从审批流中学习责任链模式

秦怀杂货店

Java 设计模式

年度盘点|2021 年阿里云可观测实践回顾

阿里巴巴云原生

阿里云 云原生 可观测 Arms Arms 告警运维中心

Linux系统编程-进程间通信(共享内存)

DS小龙哥

Linux 共享内存 2月月更

一个cpp协程库的前世今生(二十六)共享栈

SkyFire

c++ cocpp

MyBatis3源码解析(8)MyBatis与Spring的结合

Java mybatis

架构训练营模块二作业

苍狼

作业 模块二 架构训练营5期

网络安全之小程序抓包渗透测试流程

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

MyBatis3源码解析(6)TypeHandler使用

Java mybatis

MyBatis3源码解析(7)TypeHandler注册与获取

Java mybatis

Mybatis3 源码解析系列

Java mybatis

【架构师训练营】模块七作业

樰巳-堕~Horry

架构实战营 「架构实战营」

性能分析之用户登录TPS低以及CPU被打满问题分析

zuozewei

性能分析 2月月更

如何实现一个人管理1000个主播?

优秀

低代码 直播带货, 主播

MyBatis3源码解析(4)参数解析

Java mybatis

MySQL RC事务隔离级别的实现

JavaEdge

2月月更

《MySQL入门很轻松》第4章:数据表的创建修改删除

乌龟哥哥

数据库 2月月更

如何做“健康码”的性能压测

阿里巴巴云原生

云原生 压测 健康码

人人都是 Serverless 架构师 | 弹幕应用开发实战

阿里巴巴云原生

阿里云 Serverless 架构 云原生

创新推出 | Serverless 调试大杀器:端云联调

阿里巴巴云原生

阿里云 Serverless 云原生 端云联调

Kubernetes集群统一日志管理方案(Elasticsearch+Filebeat+Kibana+Metricbeat)搭建教程

山河已无恙

Kubernetes 2月月更

AI生明月,万里共文心

脑极体

Apache RocketMQ + Hudi 快速构建 Lakehouse

阿里巴巴云原生

阿里云 开源 云原生 消息队列

MyBatis3源码解析(3)查询语句执行

Java mybatis

华为翻译:要独立自主地做好人工智能,必须软硬结合_语言 & 开发_李慧文_InfoQ精选文章