AutoML Translation 新手指南

与默认的 Google 神经机器翻译 (NMT) 模型相比,AutoML Translation 可让您构建针对具体领域内容量身定制的自定义模型(无需编写代码)。

想象一下,您的财务报告服务业务有机会扩展到新的国家/地区。为了进入这些市场,需要您将具备高时效性的财务文档实时翻译为该国语言。为此,您可以聘请精通双语的财务人员,或者与专业译者合作。但由于其高度的专业知识以及您对时间的要求,这两种方式都花费不菲。相反,我们的自定义模型可以帮助您以灵活的方式完成自动化翻译任务。

翻译

自行试用

如果您是 Google Cloud 新手,请创建一个账号来评估 Cloud Translation 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 Cloud Translation

为什么说机器学习 (ML) 是解决这类问题的最好工具?

传统编程要求程序员指定计算机要逐步完成的指令。但是,这种基于规则的方法在翻译方面很快便会无法进行下去。这是因为自然语言很复杂,翻译也是一样。机器翻译几乎完全采用统计方法完成,大量的平行语料库取代了由语言专家手动调整专业化规则集的方式。

您需要的系统不仅要普遍适用于各种翻译场景,而且能精准服务于您关注的语言对中特定于您的使用场景和任务的语言领域。在一系列特定规则必然会以指数级扩展的使用场景下,您需要一个能够通过样本学习的系统。幸运的是,机器学习系统可以很好地解决这个问题。

是默认 NMT 模型还是自定义模型适合我?

神经机器翻译 (NMT) 模型涵盖大量语言对,并且非常适合通用文本。自定义模型真正的优势在于解决通用翻译任务和特定领域词汇间的“最终弥合”。AutoML Translation 以通用 NMT 模型为基础,后续会调整模型适应您的训练数据,以便为您关注的特定领域内容提供准确译文。

机器学习涉及哪些内容?

为了取得期望的结果,机器学习需要使用数据来训练算法。算法和训练方法的具体细节因问题领域而异。机器学习有许多不同的子类别,所有子类别均用于解决不同的问题,并具有不同的限制条件。借助 AutoML Translation,您可以执行监管学习,即训练计算机来识别已翻译的句对中的模式。通过监管学习,我们可以训练自定义模型来翻译您所关注的特定领域的内容。

数据准备

为了训练自定义模型,您需要提供源语言和目标语言的匹配句对,也就是您希望翻译的源语言与您想要的目标语言的含义相同的句对。句对的含义越接近,模型的效果就会越好。

评估您的使用场景

在整合数据集时,应始终以使用场景为基础。您可以从以下问题入手:

  • 您想要实现什么样的结果?
  • 为了实现这个结果,您需要翻译哪些类型的句段?这是 NMT 模型可以直接完成的任务吗?
  • 人工翻译是否能够以让您满意的方式翻译这些句段?如果该翻译任务本质上就是含糊不清的,甚至一位精通这两种语言的人也难以提供令人满意的翻译,您可能会发现 NMT 模型及您的自定义模型也会有类似的表现。
  • 哪些类型的样本最能反映您的系统需要翻译的数据类型和范围?

支持 Google 机器学习产品的核心原则是以人为本的机器学习,这种方法强调负责任的 AI 做法,包括公平性。机器学习中的公平性目标旨在了解和防止以不公正或有偏见的方式对待不同种族、收入、性取向、宗教、性别以及带有历史上与歧视和边缘化相关的其他特征的人群的倾向(当其无论何时何地表现在算法系统或算法辅助决策中时)。如需了解详情,请参阅我们的指南;如需查看有关公平意识的说明✽,请参阅下述准则。我们建议您在阅读数据集整合准则的同时,考虑与您的使用场景相关的机器学习的公平性。

寻找数据

确定了所需的数据后,您必须找到一种方法来获取数据。首先,您可以考虑使用组织收集的所有数据。此时您可能会发现,自己已经在收集训练翻译模型所需的数据了。如果没有收集到所需的数据,您可以手动获取或将这项任务外包给第三方提供商。

将数据与您的问题领域进行匹配

训练自定义翻译模型的目的是为您创建一个适用于特定语言领域的模型。请确保您的句对尽可能地覆盖您所在行业或关注领域的词汇、用法和语法惯例。您可以查找包含要完成的翻译任务中涵盖的典型用法的文档,并确保您的双语词组的含义尽可能匹配。当然,有时候不同语言在词汇或语法方面无法完美对应,但是,如果可能的话,请尝试获取您预期会用到的各种语义。您构建自定义模型的基础是一个在通用翻译方面已经做得非常出色的模型,您所要做的只是为自定义模型提供针对您特定使用场景的样本,因此请确保它们与您预期的用法相关并具有代表性。

捕获语言空间的多样性

人们很容易认为我们对某个特定领域的描述足够一致,只要有少数翻译人员翻译的少量文本样本,应该足以训练一个适用于其他任何人描述该领域的模型。但我们都是独立的个体,我们每个人写下的文字中都隐藏着自己的个性。包含由大量作者和译者提供的句对的训练数据集更有可能为您提供一个良好的模型,该模型对于翻译来自不同组织的资料非常有用。此外,不要忘了考虑句段长度和结构的多样性;如果一个数据集中的所有句段长度都相同或具有相似的语法结构,则该数据集将无法为 Cloud Translation 提供足够的信息,构建一个能够覆盖所有可能性的良好模型。

让人工校对参与其中

如果可行的话,请确保由精通两种语言的人员验证句对之间匹配良好,而且能够代表可读性良好、含义准确的翻译。即使简单的错误,比如训练数据电子表格中的行没有对齐,也有可能导致翻译结果完全偏离原义。对您而言,重中之重是为 AutoML Translation 提供高质量的数据,这有助于构建适合您业务的模型。

清理杂乱的数据

预处理数据很容易出错,其中一些错误会切实造成自定义模型的混乱。尤其要注意以下可以修复的数据问题:

  • 移除重复的原文句段,尤其是在这些句段具有不同的目标语种译文时。AutoML Translation 仅使用其看到的第一个示例,并在导入时丢弃所有其他对。移除重复内容可确保 AutoML Translation 使用您偏好的翻译。
  • 将原文句段与正确的目标语种句段对齐。
  • 将句段与指定语言匹配;例如,在中文数据集中仅包含中文句段。
  • 对于包含混合语言的目标语种句段,检查未翻译的字词是否有意保留未译,例如产品名称或组织名称。如果在目标语种句段中不小心加入了未翻译的字词,会给训练数据造成干扰,从而影响模型质量。
  • 修正包含排字或语法错误的句段,以免您的模型学习这些错误的用例。
  • 移除不可翻译的内容,例如占位符标记和 HTML 标记。 无法翻译的内容可能会导致出现标点符号错误。
  • 请勿添加将特定实体替换为特定名词的翻译。例如,您可能需要将“总统”更改为特定的总统姓名(如“JFK”或“John F Kennedy”)。模型可能会据此学会将所有“总统”实例更改为“JFK”。您应该移除这些翻译,或将特定名词更改为普通名词。
  • 移除训练集和测试集中存在的重复句段(详细了解训练集和测试集)。
  • 将多个句段拆分为不同的句对。用一个许多训练项有 50 个以上词法单元(单词)的数据集进行训练,会生成质量较低的模型。应尽可能将训练项拆分为单个句子。
  • 应使用一致的大小写。例如,创建标题会影响模型学习的方式,例如区分标题与正文文本的方式。
  • 从 TSV 文件导入数据时,移除 TMX 标记。在某些情况下,您可以将现有翻译记忆库导出到 TSV 文件,其中可能包含 TMX 标记。不过,只有在您从 TMX 文件导入数据时,AutoML Translation 才会清理翻译单元标记,从 TSV 文件导入数据时不会清理这些标记。

AutoML Translation 如何预处理数据

若出现以下情况,AutoML Translation 将停止解析您的数据输入文件:

  • 格式无效
  • 出现不合理的长句对 (10 MB)
  • 文件使用 UTF-8 以外的编码

对于未能检测出的问题,AutoML Translation 会忽略相关错误,例如:

  • TMX 文件中的 <tu> 元素没有源语言或目标语言。
  • 其中一个输入句对为空。

若启用自动数据拆分,AutoML Translation 会执行一些额外的处理:

  • 数据集上传完成后,它会移除具有相同源句段的句对。
  • 在训练前,它会将您的数据随机拆分为三个数据集,拆分比率为 8:1:1(分别对应训练集、验证集和测试集)。

考虑 AutoML Translation 在创建自定义模型时如何使用您的数据集

您的数据集将包含训练集、验证集和测试集。如果您未指定如何拆分数据(请参阅准备训练数据)并且您的数据集包含不到 10 万句对,则 AutoML Translation 会自动将内容文档的 80% 用于训练,10% 用于验证,另外 10% 用于测试。如果您的数据集中的句对数超过 10 万个,则需要自行对数据进行拆分。

训练集

您的绝大部分数据都应该划分到训练集中。训练集包含您的模型在训练期间“看到”的数据:它用于学习模型的参数,即神经网络节点之间连接的权重。

验证集

验证集(有时也称为“开发集”)也用于训练过程。在模型学习期间,框架会使用训练集训练一组候选模型,然后利用模型在验证集上的表现选择生成的最佳模型。系统会基于该表现调整模型的超参数,这些超参数是用来指定模型结构的变量。如果您使用训练集调整超参数,则模型会过度关注您的训练数据。建议使用有一定新颖性的数据集来微调模型结构,让您的模型实现更好的通用性。

测试集

测试集完全不参与训练过程。当模型完成全部训练后,我们会将测试集用作一项新挑战来测试模型。通过模型在测试集上的表现,您可以充分了解模型在使用真实数据时的表现。

手动拆分

AutoML Translation 可以将您的数据拆分成训练集、验证集和测试集;如果您想对流程施加更多控制,或者想选择不同的拆分比例,或者想在模型训练生命周期的某个阶段添加需要的特定样本,则可以手动拆分数据。

 

准备要导入的数据

决定好手动拆分或自动拆分数据后,您可以选择以下两种方法之一添加数据:

  • 您可以用包含源句段和目标句段的制表符分隔值 (TSV) 文件来导入数据,每行包含一个句对。
  • 您可以用 TMX 文件来导入数据,这是一种为自动翻译模型工具提供句对的标准格式(详细了解支持的 TMX 格式)。如果 TMX 文件包含无效的 XML 标记,AutoML 会忽相应句对。如果 TMX 文件不符合正确的 XML 和 TMX 格式,例如缺少结束标记或 <tmx> 元素,则 AutoML 将不会处理相应句对。如果 Cloud Translation 跳过 1024 个以上无效的 <tu> 元素,它就会结束处理并返回错误。

评估

模型训练完成后,您将收到模型性能总结。 点击训练标签页可查看详细的分析数据。

在评估模型前,需要注意哪些事项?

调试模型主要是调试数据,而非模型本身。如果在推送到生产环境前后,模型在您评估其性能时有出乎意料的表现,则您应返回并检查数据,以查找能够改进的地方。

BLEU 得分

BLEU 得分是衡量机器翻译系统质量的标准方法。AutoML Translation 使用根据您提供的测试数据计算得出的 BLEU 得分作为其主要评估指标。(详细了解 BLEU 得分。)

为 Cloud Translation API 提供支持的 Google NMT 模型适用于一般场景。如果您在寻找适合自己领域的专业翻译,它可能不是最佳解决方案。在与您的训练集相关的领域中,经过训练的自定义模型通常比 NMT 模型表现更好。

使用自己的数据集训练自定义模型后,训练标签页中将显示自定义模型和 Google NMT 模型的 BLEU 得分。训练标签页还会显示自定义模型的 BLEU 得分性能增益。BLEU 得分越高,您的模型为与训练数据相似的句段提供的翻译质量也越高。如果 BLEU 得分在 30-40 范围内,则该模型被视为能够提供质量良好的翻译。

测试模型

即使 BLEU 得分还不错,自行检查模型以确保其性能符合预期也是一种很好的做法。如果您的训练数据和测试数据来自同一个错误的样本集,则即使翻译完全偏离原义,其得分也可能非常高!在预测标签页上添加一些样本作为输入,并将自定义模型的结果与 Google NMT 基本模型的结果进行比较。您可能会注意到自己的模型与基本模型生成的预测相同,特别是对于短句段或在训练集较小的情况下。这并不奇怪,因为基本模型在众多使用场景中的性能已经非常出色了。在这种情况下,可尝试使用更长或更复杂的句段。但是,如果您的模型返回的所有句段都与基本模型的预测相同,则可能表示数据存在问题。

如果您特别担心模型会出现某个错误(例如,语言对中经常令人工译者也感到困惑的特性,或可能导致收入或声誉严重受损的翻译错误),请确保您的测试集或测试过程充分涵盖相关案例,以便在日常任务中放心地使用模型。

后续步骤

  • 如需创建自己的数据集和自定义模型,请参阅准备训练数据,了解如何准备数据。