交互式机器翻译(Interactive Machine Translation)的输入为源文和译文前缀,输出为后续的译文,可以提高后续译文的翻译质量。当输入译文前缀的最后一个词不完整时,模型会输出当前词及后续译文。本模型基于CSANMT连续语义增强机器翻译模型。
该模型利用输入译文的前缀作为Decoder的输入,使用强制解码Beam Search算法,预测后续译文。当输入译文前缀的最后一个词不完整时,生成一个匹配词典中每个单词前缀的MASK向量,通过这个MASK向量影响影响第一个的预测结果。
该模型适用于的交互式机器翻译场景,输入为源文及译文前缀,输出为的后续译文。
在ModelScope框架上,提供输入源文和译文前缀,即可通过简单的Pipeline调用来使用。
# English-to-Chinese
# 温馨提示: 使用pipeline推理及在线体验功能的时候,尽量输入单句文本,如果是多句长文本建议人工分句!!!
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
input_sequence = 'Elon Musk, co-founder and chief executive officer of Tesla Motors.'
input_prefix = '特斯拉汽车公司'
pipeline_ins = pipeline(task=Tasks.translation, model='damo/nlp_imt_translation_en2zh')
# 以 '<PREFIX_SPLIT>' 拼接源文和译文前缀
outputs = pipeline_ins(input_sequence + '<PREFIX_SPLIT>' + input_prefix)
print(outputs['translation']) # '公司联合创始人兼首席执行官埃隆 · 马斯克。'
参考CSANMT连续语义增强机器翻译模型训练数据。
参考CSANMT连续语义增强机器翻译数据评估结果。
# English-to-Chinese
from modelscope.trainers.nlp import CsanmtTranslationTrainer
trainer = CsanmtTranslationTrainer(model="damo/nlp_imt_translation_en2zh")
trainer.train()
如果你觉得这个该模型对有所帮助,请考虑引用下面的相关的论文:
@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},
}