深度学习教材自动翻译系统技术解析

本文详细介绍基于某中心翻译服务构建的自动机器翻译与同步系统,该系统通过并行数据定制化翻译输出,将深度学习教材翻译成多语言版本,显著减少人工翻译工作量并提升翻译质量。

自动机器翻译与同步系统在深度学习教材翻译中的应用

系统概述

Dive into Deep Learning(D2L.ai)是一个开源教科书项目,通过交互式Jupyter笔记本、自包含代码和真实案例使深度学习技术更易理解。该项目已被全球400多所大学采用。

为处理多语言翻译需求,开发了基于某中心翻译服务的自动机器翻译与同步(AMTS)系统,旨在将人工翻译工作量减少80%。AMTS系统可应用于所有语言翻译,每个语言特定的子管道都基于语言特征和译者偏好具有独特功能。

框架架构

并行数据准备

系统使用某中心翻译的主动定制翻译(ACT)功能,通过提供定制化的并行数据示例来实时自定义翻译输出。并行数据包含源语言文本示例和目标语言期望翻译的集合。

AMTS框架包含多个子管道,每个子管道处理一种语言翻译,多个翻译子管道可以并行处理。

子管道处理流程

  1. 准备并行数据:并行数据由文本示例对列表组成,包含源语言和目标语言。系统首先准备两种语言数据集,然后将它们组合成一对一配对。

  2. 通过批处理作业翻译:使用某中心翻译API调用CreateParallelData从某中心简单存储服务导入输入文件,并在某中心翻译中创建并行数据资源。然后使用其异步批处理操作批量翻译源语言文档,翻译后的文档存储在某中心简单存储服务中。

并行数据准备与创建

在并行数据准备步骤中,从源文档和专业人工翻译产生的翻译文本构建并行数据集。软件模块从两个文档中提取文本(忽略代码和图片块),将它们配对并存储在CSV文件中。

当并行数据文件创建完成后,将其上传到某中心简单存储服务存储桶中的文件夹,并使用CreateParallelData在某中心翻译中启动创建作业。

使用并行数据进行异步批处理翻译

创建并行数据资源后,子管道的下一步是使用某中心翻译StartTextTranslationJob API调用启动批量异步翻译。子管道将源文件上传到某中心简单存储服务存储桶文件夹中。

一个批处理作业可以处理多个源文档的翻译,输出文件将放在另一个某中心简单存储服务存储桶文件夹中。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
src_lang = "en" 
tgt_lang =  "zh"
src_fdr = "input-short-test-en2zh"

pd_name = "d2l-parallel-data_v2"

response = translate_client.start_text_translation_job(
            JobName='D2L1',
            InputDataConfig={
                'S3Uri': 's3://'+S3_BUCKET+'/'+src_fdr+'/',
                'ContentType': 'text/html'
            },
            OutputDataConfig={
                'S3Uri': 's3://'+S3_BUCKET+'/output/',
            },
            DataAccessRoleArn=ROLE_ARN,
            SourceLanguageCode=src_lang,
            TargetLanguageCodes=[tgt_lang, ],
            ParallelDataNames=pd_name
)

使用并行数据获得更好的翻译效果

为评估每个子管道中的翻译性能,从D2L英文版本中选择了五篇文章,通过英中子管道将其翻译成中文,然后计算每个翻译文档的BLEU分数。

将AMTS生成的结果与使用传统方法(无并行数据)翻译相同文档的结果进行比较。传统方法通过TranslateText API调用实现:

1
2
3
4
5
6
7
8
9
src_lang = "en" 
tgt_lang =  "zh"    
    
 response = translate_client.translate_text(
         Text = text, 
         TerminologyNames = [],
         SourceLanguageCode = src_lang, 
         TargetLanguageCode = tgt_lang
)

英中和中英翻译结果比较显示,使用并行数据的翻译相比传统方法有所改进。

微调并行数据以提高翻译质量

为了进一步提高翻译质量,以更细粒度的方式构建并行数据对。不是从源文档和参考文档中提取并行段落并进行配对,而是将每个段落进一步拆分为多个句子,并使用句子对作为训练示例。

测试了段落对和句子对两种方法,发现更细粒度的数据(句子对)比较粗粒度的数据(段落对)产生更好的翻译质量。

将并行数据使用扩展到通用机器翻译

为了将并行数据的可用性扩展到通用机器翻译,需要从大量翻译文档中构建并行数据集。为了最大化翻译准确性,并行数据集应具有与要翻译文档相同的上下文和主题。

在英西子管道中测试了这种方法,并行数据对是使用关键词"机器学习"从网络爬取的英西文章构建的。

结论与最佳实践

AMTS管道利用某中心翻译服务提供流畅的翻译,非正式定性评估表明翻译文本阅读自然且大多语法正确。

使用并行数据的ACT功能提高了AMTS子管道中的翻译质量,比使用传统某中心翻译实时翻译服务性能更好。

并行数据对越细粒度,翻译性能越好,建议将并行数据构建为句子对而非段落对。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计