交互式机器翻译模型介绍
交互式机器翻译(Interactive Machine Translation)的输入为源文和译文前缀,输出为后续的译文,可以提高后续译文的翻译质量。当输入译文前缀的最后一个词不完整时,模型会输出当前词及后续译文。本模型基于CSANMT连续语义增强机器翻译模型。
温馨提示
- 使用pipeline推理及在线体验功能的时候,尽量输入单句文本,如果是多句长文本建议人工分句!!!
模型描述
该模型利用输入译文的前缀作为Decoder的输入,使用强制解码Beam Search算法,预测后续译文。当输入译文前缀的最后一个词不完整时,生成一个匹配词典中每个单词前缀的MASK向量,通过这个MASK向量影响影响第一个的预测结果。
期望模型使用方式以及适用范围
该模型适用于的交互式机器翻译场景,输入为源文及译文前缀,输出为的后续译文。
如何使用
在ModelScope框架上,提供输入源文和译文前缀,即可通过简单的Pipeline调用来使用。
使用效果展示
代码范例
# Chinese-to-English
# 温馨提示: 使用pipeline推理及在线体验功能的时候,尽量输入单句文本,如果是多句长文本建议人工分句!!!
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
input_sequence = '声明补充说,沃伦的同事都深感震惊,并且希望他能够投案自首。'
input_prefix = 'The statement ad'
pipeline_ins = pipeline(task=Tasks.translation, model='damo/nlp_imt_translation_zh2en')
# 以 '<PREFIX_SPLIT>' 拼接源文和译文前缀
outputs = pipeline_ins(input_sequence + '<PREFIX_SPLIT>' + input_prefix)
print(outputs['translation']) # 'added that Warren's colleagues were deeply shocked and expected him to turn himself in.'
模型局限性以及可能的偏差
- 模型在通用数据集上训练,部分垂直领域有可能产生一些偏差,请用户自行评测后决定如何使用。
- 当前版本在tensorflow 2.3和1.14环境测试通过,其他环境下可用性待测试。
训练数据及流程
参考CSANMT连续语义增强机器翻译模型训练数据及流程。
模型训练
# Chinese-to-English
from modelscope.trainers.nlp import CsanmtTranslationTrainer
trainer = CsanmtTranslationTrainer(model="damo/nlp_imt_translation_zh2en")
trainer.train()
数据评估及结果
参考CSANMT连续语义增强机器翻译数据评估结果。
论文引用
如果你觉得这个该模型对有所帮助,请考虑引用下面的相关的论文:
@inproceedings{wei-etal-2022-learning,
title = {Learning to Generalize to More: Continuous Semantic Augmentation for Neural Machine Translation},
author = {Xiangpeng Wei and Heng Yu and Yue Hu and Rongxiang Weng and Weihua Luo and Rong Jin},
booktitle = {Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics, ACL 2022},
year = {2022},
}
评论