AutoML Translation 新手指南

简介

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

翻译

自行试用

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

免费试用 Cloud Translation

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

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

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

Translation API 或 AutoML Translation 是否适合我?

Translation API 涵盖了大量的语言对,并且可以很好地翻译通用文本。AutoML Translation 真正的优势在于解决通用翻译任务和特定领域词汇间的“最终弥合”。我们的自定义模型以通用 Translation API 模型为基础,但添加了一个专用的层,可以帮助模型对您关注的特定领域内容进行正确的翻译。

比较 Translation API 与 AutoML Translation

试用 Translation API AutoML 使用入门

AutoML Translation 中的机器学习涉及哪些内容?

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

数据准备

为了使用 AutoML Translation 训练自定义模型,您需要提供源语言和目标语言的匹配句对,也就是您希望翻译的源语言与您想要的目标语言的含义相同的句对。当然,翻译不是一门精确的科学,但是句对的含义越接近,模型的效果就会越好。

评估您的使用场景

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

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

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

获取数据

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

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

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

捕获语言空间的多样性

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

让人工校对参与其中

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

清理杂乱的数据

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

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

AutoML 如何预处理数据

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

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

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

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

在 AutoSplit 模式下,AutoML Translation 会执行一些额外的处理:

  • 数据集上传完成后,它会移除具有相同源语句的句对。
  • 在训练前,它会将您的数据随机拆分为三个数据集,拆分比例为 8:1:1。

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

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

训练集

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

验证集

验证集(有时也称为“开发集”)也用于训练过程。在模型学习期间,框架使用训练集训练一组候选模型,然后利用模型针对验证集的表现选择生成的最佳模型。框架利用模型在验证集的表现来调整模型的超参数,这些超参数是指定模型结构的变量。如果您使用训练集调整超参数,则模型会过度关注您的训练数据。使用在一定程度上的新数据集微调模型结构,意味着您的模型将会有更好的泛化效果。

测试集

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

手动拆分

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

 

准备好要导入的数据

决定好手动拆分或自动拆分数据是否适合您后,您可以使用以下两种方法在 AutoML Translation 中添加数据:

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

评估

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

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

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

BLEU 得分

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

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

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

测试模型

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

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