准备训练数据

AutoML Translation 使用源语言和目标语言中匹配的句对来训练自定义模型。它会将每一对句子视为一个独立的训练项,而不是假定两个单独句对之间有任何关联。

用于训练自定义模型的句对必须采用制表符分隔值 (.tsv) 或 Translation Memory eXchange (.tmx) 格式。您可以将多个 .tsv 和 .tmx 文件批量转换为逗号分隔值 (.csv) 文件。您可以使用 Google Cloud 控制台导入各个 .tsv 或 .tmx 文件。如果您使用 AutoML API,则只能使用.csv 文件。

AutoML Translation 始终会对所有导入的句对进行去重复处理。如果某个句对的源句子与另一个句对的源句子匹配,则该句对为另一个句对的重复句对。此外,AutoML Translation 不允许导入具有相同内容的文件。

如需查看支持的语言对列表,请参阅自定义模型的语言支持

数据拆分

AutoML Translation 使用您提供的句对来训练、验证和测试自定义模型。

  • TRAIN - 使用 sentence pairs 训练模型。
  • VALIDATION - 使用 sentence pairs验证训练期间模型返回的结果。
  • TEST - 使用 sentence pairs验证模型训练完成后模型的结果。

通过为训练集、验证集和测试集分别上传文件,您就可以控制 AutoML Translation 用于各种目的的句对。如果您没有明确指定用于这三个目的的文件,则 AutoML Translation 会自动将您的句对分为三个数据集。 AutoML Translation 会将大约 80% 的数据用于训练,10% 用于验证,另外 10% 用于测试。AutoML Translation 会将数据随机拆分为三个集合。验证集和测试集最多可以有 10000 个句对。超过 10000 个句对后,句对会被推送到训练集。

如果您要对同一个数据集执行多次数据导入,则可以为某一次导入操作手动指定数据分割,并为另一次导入操作使用自动分割功能。每次导入数据并删除文件后,AutoML Translation 始终会根据手动分割情况重新均衡数据。

数据要求

您的训练数据必须符合以下要求:

  • 如果您允许 AutoML Translation 自动分割数据,则必须提交至少 1000 个句对来训练自定义模型。
  • 如果您手动分割数据,则必须为 TRAIN 集提供至少三个句对,并且 VALIDATIONTEST 集必须至少有 100 个句对。
  • 您最多只能为每个 VALIDATION 集或 TEST 集提供 10000 个句对。
  • 您的数据集中的句对数量不能超过 1500 万个。

数据建议

以下建议可以帮您提高训练数据集的质量:

  • 对于 TRAIN,使用至少 5000 个句对,此外为 VALIDATION 至少使用 500 个句对,为 TEST 至少使用 500 个句对。也就是说,尽量使用更多数据。为 TRAIN 集提供更多数据有助于模型学习模式,而为 VALIDATIONTEST 集合提供更多数据则有助于验证模型是否可以泛化为您的领域中更为广泛的场景。
  • 句子长度应尽量保持在不超过 200 字。AutoML Translation 可能会删除大于此值的句对。如需了解详情,请参阅导入问题
  • 解决常见的数据问题。如需了解详情,请参阅数据准备新手指南中的“清理杂乱的数据”部分。

制表符分隔值 (.tsv)

AutoML Translation 支持制表符分隔文件,其中每行都具有以下格式:

  • Source sentence 制表符 Translated sentence

例如:

It's a beautiful day.\tEs ist ein schöner Tag.
Tomorrow it will rain.\tMorgen wird es regnen.

.tsv 文件中的所有文本都必须是纯文本。如果文本包含 HTML 标记或其他标记,则 AutoML Translation 会将标记视为纯文本。

以制表符分隔的源数据不包含用于标识源语言和目标语言的语言代码。您可在描述要训练的模型时标识源语言代码和目标语言代码。AutoML Translation 将第一个句段解释为源语言,将第二个句段解释为目标语言。在上面的示例中,源语言为英语,目标语言为德语。

Translation Memory eXchange (.tmx)

Translation Memory eXchange (TMX) 是一种用于提供源翻译句子和目标翻译句子的标准 XML 格式。AutoML Translation 支持基于 TMX 版本 1.4 格式的输入文件。此示例说明了所需的结构:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE tmx SYSTEM "tmx14.dtd">
<tmx version="1.4">
  <header segtype="sentence" o-tmf="UTF-8"
  adminlang="en" srclang="en" datatype="PlainText"/>
  <body>
    <tu>
      <tuv xml:lang="en">
        <seg>It's a beautiful day.</seg>
      </tuv>
      <tuv xml:lang="de">
        <seg>Es ist ein schöner Tag.</seg>
      </tuv>
    </tu>
    <tu>
      <tuv xml:lang="en">
        <seg>Tomorrow it will rain.</seg>
      </tuv>
      <tuv xml:lang="de">
        <seg>Morgen wird es regnen.</seg>
      </tuv>
    </tu>
  </body>
</tmx>

在格式正确的 .tmx 文件中,<header> 元素必须使用 srclang 特性标识源语言,并且每个 <tuv> 元素都必须使用 xml:lang 特性标识所含文本的语言。

所有 <tu> 元素必须包含一对具有相同源语言和目标语言的 <tuv> 元素。如果一个 <tu> 元素包含两个以上 <tuv> 元素,则 AutoML Translation 只会处理与源语言和目标语言匹配的第一对 <tuv>,并忽略其余 <tuv> 元素。如果一个 <tu> 元素没有匹配的 <tuv> 元素对,则 AutoML Translation 会跳过无效的 <tu> 元素。

AutoML Translation 在处理 <seg> 元素之前会剥离其周围的标记。如果 <tuv> 元素包含多个 <seg> 元素,则 AutoML Translation 会将其中的文本连接成一个元素,并在它们之间留一个空格。

如果文件包含上述标记以外的 XML 标记,则 AutoML Translation 将忽略它们。

如果文件不符合正确的 XML 和 TMX 格式,例如缺少结束标记或 <tmx> 元素,则 AutoML Translation 将取消处理。如果 AutoML Translation 跳过 1024 个以上无效的 <tu> 元素,它也会取消处理。

逗号分隔值 (.csv)

要使用 AutoML API 上传句对,您需要创建一个逗号分隔值 (.csv) 文件,以标识要使用的 .tsv 和 .tmx 文件,该文件还可以指示哪些句对用于训练、验证和测试。您可以为 .csv 文件指定任何文件名,但必须使用 UTF-8 编码,并且必须以 .csv 扩展名结束。在此文件中,每行对应一个您要上传的 .tsv 或 .tmx 文件,并且每行包含以下两列:

  • 要将此文件中的句对分配到哪个集合。这是可选字段,可使用以下值之一:

    • TRAIN
    • VALIDATION
    • TEST
    • 已取消分配

      如果将数据集指定为 UNASSIGNED,则 AutoML Translation 会自动对其进行拆分,以确保有足够的训练、验证和测试内容。

  • 包含句对的 .tsv 或 .tmx 文档的完整路径。

例如,您的 .csv 文件中可能包含以下内容:

TRAIN,gs://my-project-vcm/csv/en-fr-train.tsv
VALIDATION,gs://my-project-vcm/csv/en-fr-validation.tsv
TEST,gs://my-project-vcm/csv/en-fr-test.tsv