论文部分内容阅读
随着信息技术的快速发展和全球学术、人文的广泛交流,一方面用于机器翻译的平行语料数据集呈现出爆炸性增长的趋势,另一方面实际生活中对机器翻译服务的应用场景也日益增多。统计机器翻译的翻译质量很大程度上取决与平行语料数据集的大小。然而随着语料数据集的增加,传统单机机器翻译系统的模型训练耗时急剧增长,这严重制约了统计机器翻译模型的深入研究及其应用推广。因此,研究大规模分布式统计机器翻译系统具有很大的研究意义和实用价值。现有的分布式统计机器翻译工具存在模型并行训练性能和可扩展性不足的缺陷,并且难以支持完整的机器翻译离线模型训练流程。事实上,设计实现高效的分布式统计机器翻译离线模型的训练流程存在诸多困难。首先,统计机器翻译中繁多、复杂的任务对计算资源的需求各不相同,这使得在有限的硬件资源下设计高效的并行化算法具有一定的挑战性。其次,模型训练过程中产生的大量I/O和网络通信开销,会严重影响模型的并行化效率。最后,若对原始训练数据集或数据集分区中数据倾斜问题的处理不当,容易拖慢整个模型的训练流程。针对上述难点问题,本文在分析现有研究工作的不足和并行化统计机器翻译模型难点的基础上,基于广为使用的分布式数据并行计算平台研究并实现了一个完整、高效、弹性可扩展的大规模分布式统计机器翻译离线模型训练系统,为机器翻译的模型研究和应用服务提供了有利支撑。本文主要研究工作内容与贡献点如下:(1)针对耗时较长的离线模型训练部分,分析和研究了每个模型或算法的处理流程,完成在大规模场景下的并行化模型训练方法与算法的实现。其中,词对齐模型部分包括预处理和相应的词对齐模型的并行化训练,翻译模型包含三种翻译模型的并行化训练,语言模型支持四种概率平滑算法进行并行化训练。(2)系统负载均衡和网络通信优化。在词对齐模型中设置合理的分块阈值,在保证并行效率的前提下,降低I/O操作和节点间网络通信带来的开销。在翻译模型训练中对原始数据进行数值化处理,降低中间数据集的规模,以及系统负载和网络通信量,从而提高模型整体训练效率。(3)按照训练流程中需要多次模型参数的特点,研究实现了使用join算子的并行化最大似然估计优化算法。主要有两种优化策略,一是广播小表到分布式大表,避免全局join;二是对两个待join的分布式大表使用相同的partitioner,使得它们内部数据预先满足相同的划分规则,从而避免执行过程中的数据shuffle。(4)针对模型训练中存在的数据倾斜问题,研究实现了两种优化策略。一是适当提高模型训练并发度(或重分区);二是使用两阶段聚合策略,首先对初始key添加随机前缀,使其均匀地分布到各个计算节点。然后在每个节点进行局部聚合,最后去掉前缀进行全局聚合。(5)最后,基于广为使用的分布式数据并行计算平台Spark设计实现了上述大规模分布式统计机器翻译离线模型训练的原型系统Seal,并在大规模数据集下进行了性能评估与分析。实验结果表明,Seal的并行训练性能优于现有的单机和分布式统计机器翻译离线模型训练工具,同时还具有更好的可扩展性。