论文阅读——OpenKiwi: An Open Source Framework for Quality Estimation

https://arxiv.org/pdf/1902.08646.pdf

OpenKiwi:一个用于质量评估的开源框架

Github:https://github.com/Unbabel/OpenKiwi

 

OpenKiwi 是一个用于翻译质量评估的开源 Pytorch 框架,支持单词级和句子级质量评估系统的训练和测试,实现了 WMT 2015-18 中一些获奖的质量评估系统。使用 WMT 2018 的两个数据集(英德 SMT 和 NMT)对 OpenKiwi 进行基准测试,在单词级任务上获得了最先进的性能,在句子级任务上获得了接近最先进的性能。

1 Introduction

质量评估 QE 提供了机器翻译和人工翻译之间缺失的一环:目标是在不依据参考译文的情况下评估翻译系统的质量,潜在用途包括:告知终端用户自动翻译内容的可靠性;判断翻译是否可以发布,或者是否需要人工后期编辑;并突出显示需要后期编辑的单词。QE 在过去几年取得了巨大的进展 (Martins et al., 2016, 2017; Kim et al., 2017; Wang et al., 2018),这些系统要么基于复杂的集成或结构,要么预训练或微调不详细,使得研究人员难以复现最先进系统。现有的开源框架如 WCE-LIG (Servan et al., 2015)、QuEST++ (Specia et al., 2015)、Marmot (Logacheva et al., 2016)、DeepQuest (Ive et al., 2018),虽然很有帮助,但目前仍落后于 WMT QE 共享任务中最先进的系统。为了解决上述缺点,本文提出 OpenKiwi,一个新的 QE 开源框架,实现了 WMT 2015-18 共享任务中最好的 QE 系统,使得在相同的框架下进行实验时,可以很容易地组合和修改它们的关键组件。

OpenKiwi 的主要特点:

• 实现了四个 QE 系统:QUETCH (Kreutzer et al., 2015)、NUQE (Martins et al., 2016, 2017)、Predictor-Estimator (Kim et al., 2017; Wang et al., 2018) 和 a stacked ensemble with a linear system (Martins et al., 2016, 2017);

• 易于使用的API:可以作为包导入其他项目或用命令行运行;

• 使用 PyTorch 作为深度学习框架的 Python 实现;

• 在新数据上训练新 QE 模型的能力;

• 能够使用 WMT 2018 的数据运行预训练的 QE 模型;

• 易于使用 YAML 配置文件 或 MLflow 跟踪和重现实验;

• 开源许可 (Affero GPL)。

 

2 Quality Estimation

单词级 QE(图1)的目的是为机器翻译每个单词、单词之间的 gaps(考虑到需要进行插入的上下文)和源句单词(目标句中误译或缺失的词对应于源句中的词)分配质量标签 (OK or BAD)。在过去的几年中,这一任务最精确的系统结合了线性和神经网络模型,使用自动后期编辑作为中间步骤,或者研发了特定的神经网络结构。

句子级 QE 的目的是预测整个句子翻译的质量,例如人工后编辑需要的时间;需复的编辑量是多少,以 HTER 的形式(Human Translation Error Rate,Specia et al., 2018 b)。目前最成功的句子级 QE 方法是基于从词级预测的转换 (Martins et al., 2017) 或多任务学习的联合训练 (Kim et al., 2017; Wang et al., 2018)。

3 Implemented Systems

OpenKiwi 实现了过去几年提出的四种主流 QE 系统。

QUETCH. “QUality Estimation from scraTCH” (Kreutzer et al., 2015) 是一个多层感知机,带有一个隐藏层、tanh 激活函数和一个将单词映射到连续的稠密向量的 lookup-table 层。对于 MT 中的每个位置,围绕该位置的固定大小的窗口,以及源句中相对齐的单词的窗口表示形式,被连接起来作为模型输入。输出层用 softmax 计算每个单词的 OK/BAD 的概率。该模型单独训练以预测源句标签、gap 标签和目标标签。QUETCH是一个非常简单的模型,不依赖于任何类型的外部辅助数据进行训练,只依赖于共享的任务数据集。

 

NuQE. 一个 lookup 层包含目标单词及其与源对齐的单词的嵌入,方式与 QUETCH 相同,这些嵌入被连接并输入到两个连续的前馈层和一个双向 GRU 层。输出包含一个 softmax 层,该层生成最终的 OK/BAD 决策。与 QUETCH 一样,对源句标签、gap 标签和目标标签的训练也是独立进行的。NuQE 也是一个黑盒系统,只使用共享的任务数据训练,没有辅助平行或 roundtrip 往返数据。

 

Predictor-Estimator. 包括两个模块:

• a predictor,给定源句,预测目标句子每个词,和目标句的左、右上下文;

• an estimator,使用 predictor 产生的特征,将每个单词分类为 OK/BAD。

Predictor 使用一个双向 LSTM 编码源句,两个单向 LSTM 按从左到右 (LSTM-L2R) 和从右到左 (LSTM-R2L) 的顺序生成目标句。对于每个目标句 token ti,其左、右上下文的表征被连接起来,并在最后的 softmax 层之前的注意力模块中作为 query。Estimator 的输入是:对于每个目标 token ti,softmax 的前一层(生成 ti 前),和 LSTM-L2R、LSTM-R2L 第 i 个隐藏状态的连接(生成 ti 之后)。并使用一个能够预测句子级 HTER 分数的多任务训练。总的来说,这个系统能够预测句子级分数和单词级标签(MT 单词、gaps 和源句单词)——源句单词标签是通过反向训练一个预测器生成的。

 

Stacked Ensemble. 上述系统可以通过 feature-based linear system 的 stacked 集成,feature 包括单词的 lexical 和 pos tags,它们的上下文、对齐的单词及其上下文,以及语言模型提供的句法特性和共享任务组织者提供的特征。该系统仅用于为 MT 单词生成单词级标签。

 

4 Design, Implementation and Usage

OpenKiwi 可以轻松地添加和运行新模型,不需要过多地关注输入数据处理、输出生成和评估,这意味着可以主要关注增加或更换 torch 模块上。如果需要新的 flags 或选项,只需添加到 CLI 解析模块中。

Design. 作为一个通用的架构示例,训练步骤如下:

• 每个输入数据,比如源文本和 MT 文本,被定义为一个 Field,包含数据分词、词汇表构建、映射方法、以及词向量的信息;

• 数据集包含输入和输出 fields 集合,生成批处理样本;

• 训练模型,计算损失,反向传播,对验证集进行评估,并按要求保存 snapshots;

• 保存留最佳模型和验证集上的预测概率。

QE 任务很少需要修改上述流程,只需要更改配置参数或模型的类。

 

Implementation. OpenKiwi 支持 Python 3.5 及以上版本,由于可再现性很重要,使用 Poetry 进行依赖项管理。为了降低引入新代码的风险,还实现了一组测试,目前提供了接近80%的代码覆盖率。OpenKiwi 支持 MLflow 的跟踪实验,允许比较不同的运行和搜索特定的指标和参数。

 

Usage. 训练一个 OpenKiwi 模型运行命令:

        $ python kiwi train --config config.yml

config.yml 是一个配置文件,包含训练和模型选项。

也可以通过 pip install OpenKiwi 安装,上面的命令改为:

        $ kiwi train --config config.yml

在 Python 项目中使用 OpenKiwi 进行训练和预测:

图2为 QE 预测的示例。

 

5 Benchmark Experiments

Datasets. 使用 WMT 2018 QE 任务的 En-De 数据集对 OpenKiwi 进行基准测试:

• 两个质量评估数据集,每个句子三元组包含一个源句 SRC、机器翻译 MT 和后编辑 PE。大的数据集包含26273个训练和1000个验证三元组,MT 由基于短语的统计机器翻译 SMT 生成;小的数据集包含13442个训练和1000个验证三元组,MT 由 NMT 生成。这些数据还包含单词级质量标签和句子级分数(使用 TERCOM 从 PE 中获得)。

• 一个包含526368个人工生成的句子三元组语料库,通过交叉熵过滤一个更大的单语语料库,然后使用 round-trip 翻译和最终的分层抽样步骤获得。

• 一个包含3396364个 in-domain 句子的平行数据集,用于 predictor-estimator 模型的预训练。

 

Systems. 使用 Automatic Post-Editing (APE-QE) 作为质量评估的一个中间步骤,在模仿人类后编辑,其输出可作为 pseudo-post-editions 伪PE用于生成单词级/句子级质量标签。由于 OpenKiwi 的重点不是实现一个序列到序列的模型,直接使用外部模型 OpenNMT-py (Klein et al., 2017) 训练两个独立的翻译模型:

• SRC → PE:先对提供的 in-domain 语料库进行训练,然后使用共享任务数据进行微调。

• MT → PE:人工生成的句子三元组和上采样20倍的共享任务数据的拼接。

 

Experiments. 表1表明,对于单个系统,predictor-estimator 性能最好,除了预测 source 和 gaps 单词级标签,而 APE-QE 在这两方面更胜一筹;总的来说,这些系统的集成版本表现最好,stack 的架构对预测单词级 MT 标签非常有效,证实了 Martins et al. (2017) 的发现。

表2报告了官方测试集的数据,将 OpenKiwi 与 WMT 2018 中最好的系统、和另一个开源工具 deepQuest 进行了比较,总的来说,OpenKiwi 在所有单词级和句子级任务中都比 deepQuest 表现得更好,并且在所有单词级任务中都取得了最好的结果。

 

6 Conclusions

OpenKiwi,一个 PyTorch实现的 QE 开源框架,支持使用新数据对单词级和句子级 QE 系统进行训练,在单词级和句子级上都优于其他开源工具,取得了最先进的单词级 QE 结果。自 OpenKiwi 发布以来,被 WMT 2019 QE 任务采用作为基准,且当年所有获奖的单词级、句子级和文档级系统都使用 OpenKiwi 作为其构建基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值