新智元报道
来源:Facebook
编辑:QJP
当把中文翻译成法文时,以前最好的多语种模型的方式是把中文翻译成英文,把英文翻译成法文,因为英语的训练数据是最多的。
而Facebook研究院的模型直接根据汉语到法语的数据进行训练,以便更好地保存语义。
在评估机器翻译广泛使用的 BLEU 指标上,它比以英语为中心的系统性能高出10个百分点。
M2M-100共接受了2200种「语言对」的训练,比以往以英语为中心的最优的多语言模型多了10倍。部署 M2M-100将提高数十亿人的翻译质量,尤其是对那些语言资源匮乏的人。
这个新模型是Facebook AI研究院多年来在机器翻译方面的基础工作的新里程碑。
Facebook还分享了如何为100种语言构建一个更加多样化的机器翻译训练数据集和模型的细节如模型、训练和评估的设置等,以帮助其他研究人员复制和推进多语言模型进一步发展。
典型的机器翻译系统需要为每种语言和每个任务建立单独的AI模型,但是这种方法在 Facebook 上并不能有效地扩展。
在 Facebook 上,人们可以通过数十亿条帖子以160多种语言发布内容。先进的多语言系统可以同时处理多种语言,但是依靠英语数据来弥补源语言和目标语言之间的差距会降低准确性。
因此Facebook需要一个多语种机器翻译(MMT)模型,可以翻译任何语言,以更好地服务于社区,因为其中近三分之二使用的语言不是英语。
研究人员使用一种全新的挖掘策略来创建翻译数据,建立了第一个真正的「多对多」数据集,包括100种语言的75亿个句子。
同时使用了几种缩放技术来建立一个包含150亿个参数的通用模型,该模型从相关语言中获取信息,并反映了更加多样化的语言和词法、句法等。
构建多对多 MMT 模型的最大障碍之一是为不涉及英语的任意翻译方向准备大量高质量的句子对(也称为平行句)。因为找到中文到英文,英文到法文的翻译比找到法文到中文的翻译要容易得多。
此外,随着我们支持的语言数量的增加,训练所需的数据量平方级增长。例如,如果我们需要每个方向的10M 句子对,那么我们需要挖掘10种语言的1B 句子对和100种语言的100B 句子对。
作为这项工作的一部分,Facebook创建了一个新的 LASER 2.0和改进的 fastText 语言标识,它提高了挖掘的质量,包括开源的训练和评估脚本。使用的所有的数据挖掘资源都利用了公开可用的数据,并且都是开源的。
即使使用了像 LASER 2.0这样的底层技术,为任意对100种不同语言(或4450种可能的语言对)挖掘大规模训练数据也是需要大量算力的。
为了使这种规模的数据挖掘更易于处理,Facebook首先关注具有最多翻译请求的语言。
它们优先使用了最高质量的数据和最大数据量的数据挖掘方向,并且避免了需要少量翻译的方向,如:冰岛语-尼泊尔语或者僧伽罗语-爪哇语。
接下来,Facebook介绍了一种新的「bridge mining」策略,在这种策略中,根据语言分类、地理和文化相似性将语言分为14个「语言组」。
这样做是因为生活在使用同一种语言的国家的人们倾向于更经常地交流,并且会从高质量的翻译中受益。
例如,一个语言组包括在印度说的语言,如孟加拉语、印度语、马拉地语、尼泊尔语、泰米尔语和乌尔都语。研究人员系统地挖掘了每个群体中所有可能的语言对。
为了连接不同群体的语言,Facebook的人员确定了少量的「桥接语言」,它们通常是每个群体的一到三种主要语言。
在上面的例子中,印度语、孟加拉语和泰米尔语将成为21印度-雅利安语支的桥梁语言。然后为这些桥接语言的所有可能的组合挖掘并行训练数据。
使用这种技术,训练数据集最终得到了75亿个平行句子的数据,相当于2200个方向。
为了补充低资源语言和低翻译质量的并行数据,Facebook还使用了流行的回译方法(back-translation)。
总的来说,通过「桥接策略和反向翻译」相结合,比单独挖掘数据的训练方式提高了1.7 BLEU。
同时研究人员还发现了零样本学习(zero-shot)的设置。
例如,如果一个模型使用法语-英语和德语-瑞典语训练,就可以在法语和瑞典语之间进行zero-shot 翻译。在多对多模型在非英语方向之间进行翻译的情况下,它比以英语为中心的多语言模式要好得多。
多语言翻译面临的一个挑战是,单一模型必须捕获多种不同语言和不同文字的信息。为了解决这个问题,扩展模型的容量并添加特定语言的参数有显著的作用。
扩展模型大小对于资源丰富的语言对特别有帮助,因为它们拥有最多的数据来训练更大的模型容量。
当扩展模型大小到120亿个参数时,所有语言方向的 BLEU 平均提高了1.2个点。扩展模型的大小和特定语言的稀疏参数(32亿)的结合使我们能够创建一个更好的拥有150亿参数的模型。
为了增加模型的大小,Facebook还增加了 Transformer 网络中的层数以及每个层的宽度。结果发现,大型模型收敛速度快,训练数据效率高。
值得注意的是,这个多对多系统是首个利用 「Fairscale」的系统,Fairscale 是专门为支持Pipeline和Tensor并行化而设计的新 PyTorch 库。
作为这项工作的一部分,我们已经看到在预训练语言模型、微调和自监督方面取得了令人难以置信的快速进展。
多年来,AI研究人员一直致力于建立一个通用模型,能够理解不同任务中的所有语言。一个支持所有语言、方言的单一模型将更好地为更多的人服务,使翻译结果保持最新,并为数十亿人创造平等的新体验,这项工作使得更加接近这个目标。
项目地址:
https://github.com/pytorch/fairseq/tree/master/examples/m2m_100