Seal:大规模分布式统计机器翻译离线模型训练方法与系统
随着日益频繁的跨国人文和学术交流,对机器翻译提出了迫切的需求。然而在大规模平行语料数据集下,传统单机统计机器翻译系统模型训练耗时过长,严重制约了统计机器翻译的模型深入研究及其应用推广。因此,研究大规模分布式机器翻译系统具有很高的研究意义和实用价值。我们基于分布式并行计算平台Spark研究并实现了一个完整、高效的大规模分布式统计机器翻译离线模型训练系统Seal,为机器翻译模型的研究和实际应用提供有利支撑。
图 2-1 Seal系统整体架构
图2-1为大规模分布式统计机器翻译离线模型训练原型系统Seal的整体架构组成图。图中最上层为Seal中的三个分布式模型训练模块(词对齐模型、翻译模型和语言模型)。中间两层分别为分布式数据并行化计算平台Spark和分布式文件系统HDFS,其中Spark为整个系统提供计算支持,HDFS为整个系统提供数据存储和参数同步,在每个节点上安装单机词对齐模型训练工具。
3.1 词对齐模型
词对齐训练前需要对语料预处理(包括词聚类和按指定分块阈值分割预料)。如图3-1是分布式词对齐模型调用框架图。需要预先设定词对齐模型的训练参数,如模型迭代训练序列等。每轮E-Step在语料分块所在机器调用MGIZA++获取当前词对齐模型参数。每轮M-step统一正则更新上一步生成的模型参数。如此反复执行以上两步迭代地完成指定的模型训练序列。
图3-1 分布式词对齐模型训练调用架构图
词对齐模型优化:按照分块阈值来划分训练数据时,分块阈值大小设定对词对齐模型的训练耗时起着非常重要的作用。我们通过对分块阈值进行多次实验分析,发现在较大规模的平行语料(大于 GB)中将分块阈值设定为128 MB,而在较小规模的语料中,为保证并发度将分块阈值设定为64 MB(或32MB)。
3.2 翻译模型
Seal中实现了三种翻译模型的并行化训练(短语翻译模型,层次短语翻译模型和基于句法的翻译模型),翻译模型并行化训练的整体流程,包括词翻译概率计算,翻译规则抽取和翻译规则聚合,翻译概率估计和词汇权重估计。
- 词翻译概率计算。翻译规则词汇权重估计阶段需要使用词翻译概率表。词翻译概率的计算使用并行化的最大似然估计算法。
- 翻译规则的抽取和两阶段聚合。抽取出的翻译规则中,同一翻译规则对一般具有不同的词对齐关系。即同一翻译规则对保存所有的词对齐信息和同一翻译规则对只保存出现频数最高的词对齐关系Seal中采用第二种策略:同一翻译规则对只保留出现频数最高的词对齐信息。
- 翻译概率估计与翻译规则词汇权重计算。翻译规则参数翻译规则词汇权重估计依赖词翻译概率表。先将词翻译表广播到每个节点;然后使用词汇化权重公式来估计词汇权重概率;最后生成包含翻译规则对、翻译概率以及词汇化权重等信息组成的翻译规则表。
翻译模型之间的不同点:
- 抽取的翻译规则不同。层次短语模型相比短语模型不仅增加文法规则,还扩充了规则集。句法模型中增加了规则的句法依赖信息和对句法状态估计。
- 二阶段规则压缩效果不同,表3-1为对比短语翻译模型和层次短语翻译模型两阶段压缩效果。
表3-1 短语和层次短语两阶段压缩效果对比
翻译模型优化:
- 数值化语料。首先按照词出现的频率进行排序,之后再对词赋予编码,然后利用词编码信息对语料进行数值化。最后在完成整个模型的训练之后,再利用词编码信息对翻译规则进行还原处理。
- 根据模型训练流程中需要多次估计模型参数的特点,优化使用join算子的并行化最大似然估计算法。使用两种方法优化基于join算子的并行化最大似然估计算法。一是广播小表到每个计算节点,在分布式大表中获取广播的小表来避免全局join;二是对两个待join的分布式大表使用相同partitioner,使得它们内部数据预先满足相同的划分规则,从而避免执行过程中的数据shuffle。
- 数据倾斜优化。一是适当提高模型训练并发度(或重分区);二是两阶段聚合方法,即添加随机前缀来扩展key,使其可以均匀地分布到计算节点。然后在每个节点进行局部聚合,最后去掉前缀进行全局聚合。
3.3 语言模型
这里介绍N-gram语言模型的分布式训练流程。如图3-2所示为分布式N-gram语言模型的训练的流程图。模型构建流程分为三个主要部分。词典构建,图中标识的1-2。生成N-gram,图中标识的3-4。将平滑方法应用到语言模型中,图中标识的5-6。本文中对语言模型的平滑使用四种平滑方法,分别是Good Turing(简称GT)、Kneser-Ney平滑(简称KN)、Modified Kneser-Ney平滑(简称MKN)和Stupid BackOff平滑(简称GSB)。
图3-2 分布式N-gram语言模型训练流程图
语言模型优化: 语言模型与翻译模型在并行化训练时存在类似特点:需要多次使用并行化最大似然估计算法和容易出现数据倾斜。语言模型中平滑概率的计算依赖\(w^{i}_{i-n+1}\)和\(w^{i-1}_{i-n+1}\)(\(n\geq2\)),它们前面两个词是相同的,因此在自定义的partitioner中使用前两个词的哈希值来设计分区函数,来提高后续参数概率估计阶段的计算效率。
实验数据集选用包含八百万中-英双语平行句对的LDC和包含一千五百万的中-英双语平行句对的联合国平行语料库。本文在实验中使用12个计算节点和1个主节点组成的分布式环境。
表4-1 计算节点软硬件环境信
同时为对比在大规模数据集下本文提出的系统Seal与现有分布式统计机器翻译模型离线模型训练工具的并行训练性能差异,这里为Seal中每个并行化模型选用相应的对比对象。
- 词对齐模型。本文选用分布式词对齐模型训练工具Chaski作为性能对比对象,选用单机词对齐训练工具作为参考。
- 翻译模型。以短语翻译模型为例。选用Chaski和基于MapReduce框架的MR-phrase作为对比对象;单机短语翻译模型训练系统选用Moses。
- 语言模型。分布式语言模型选用基于MapReduce框架实现的语言模型MR-LM,选用单机语言模型训练工具KenLM作为参考。
4.1 词对齐模型
图4-1为经过分块阈值优化后的Seal和Chaski在LDC和UNPC词对齐模型并行化性能对比,另外单机词对齐模型训练工具只测试到500万规模。图中坐标横轴为不同的数据规模,坐标纵轴为模型训练耗费时间。实验中Seal与Chaski设置同样的分块阈值,Seal的并行训练性能相较Chaski平均提高5倍左右,相较单机词对齐模型训练系统平均提高40倍以上。总体上,并行化词对齐模型训练工具Seal相较Chaski有更好的并行训练性能和数据规模可扩展性。
图4-1 分布式词对齐并行训练性能对比
4.2 翻译模型
图4-2为分布式短语翻译模型Seal-phrase和MR-phrase和Chaski的并行模型训练耗时对比,同时也和单机短语翻译模型训练工具Moses进行对比。短语模型Seal-phrase的并行性能相较Chaski平均提高6-7倍,相较MR-phrase平均提高8倍左右,相比单机短语翻译模型训练工具训练性能平均提高100倍以上。从图中看出随着数据规模增加,Seal-phrase相较现有的分布式工具拥有更好的并行训练性能和数据规模扩展性。
图4-2 分布式短语翻译模型并行训练性能对比
4.3 语言模型
图4-3为Seal-LM-MKN和MR-LM-MKN语言模型并行训练性能对比,也和单机语言模型工具KenLM对比。图中坐标横轴为不同的数据规模,坐标纵轴为模型生成耗费时间。Seal-LM-MKN相较MR-LM-MKN并行训练性能平均提高8倍左右,相较KenLM的训练耗时平均提高20~100倍左右。总体上,Seal-LM相比MR-LM具有更好的并行训练性能和数据规模可扩展性。
图4-3 MKN语言模型并行训练性能对比
4.4 整体对比
这里将统计机器翻译中离线模型训练的整个流程作为一个整体分别与单机系统和组合的现有分布式系统进行性能对比分析,数据集选用LDC数据集。表4-2为Seal中整个离线模型训练为整体在不同数据规模下的性能对比,可以看出Seal相比组合分布式系统能够平均实现4-5倍的加速比,相比现有的单机翻译系统平均能达到22-37倍的加速比。
表4-2 离线模型整体性能对比
最后,为证明Seal中对离线模型的并行训练不会很大程度改变最终的翻译质量,本文在WMT(Workshop Machine Translation)上的五个测试集进行了验证,表4-3是测试结果,其中包含了五个测试集合上英语到法语和法语到英语测自动评价指标,可以看出Seal中对模型并行化后并不会很大程度上改变翻译精度。
表4-3 WMT英法两个方向的BLEU测试指标
大规模分布式统计机器翻译离线模型训练方法与系统Seal,实验结果表明,Seal的并行化训练性能优于现有的分布式和单机统计机器翻译模型训练工具,同时还具有更好的可扩展性。同时Seal为今后机器翻译模型的研究和实际应用提供有利支撑。