准备训练数据
Cloud Translation 使用源语言和目标语言中匹配的句段对来训练自定义模型。它会将每一对句段视为一个独立的训练项,而不是假定两个单独句段对之间有任何关联。
用于训练自定义模型的句段对必须采用制表符分隔值 (.tsv
) 或 Translation Memory
eXchange (.tmx
)
格式。您可以使用 Google Cloud 控制台导入各个 .tsv 或 .tmx 文件。
系统始终会对导入的所有句段对执行重复数据删除操作。如果某个句段对的源句段与另一个句段对的源句段匹配,则该句段对为另一个句段对的重复句段对。Cloud Translation 不允许导入内容相同的文件。
如需查看支持的语言对列表,请参阅自定义模型的语言支持。
数据拆分
AutoML Translation 在创建自定义模型时,会将您提供的句段对用于不同的目的:
- 训练 -用于训练模型的句段对。为此目的分配大部分数据。
- 验证 - 用于验证训练期间模型返回的结果的句段对。
- 测试 - 用于生成模型最终评估指标的句段对。表示模型在生产环境中的表现。
通过为训练集、验证集和测试集分别上传文件,您就可以控制 AutoML Translation 用于各种用途的句段对。如果您没有明确指定用于这三种用途的文件,则 AutoML Translation 会自动将您的句段对分为三个数据集。 AutoML Translation 会将大约 80% 的数据用于训练,10% 用于验证,另外 10% 用于测试。AutoML Translation 将句段对随机分配给三个集合。验证集和测试集最多可以有 1 万个句段对。超过 1 万个句段对后,句段对会被推送到训练集。
如果您要对同一个数据集执行多次数据导入,则可以为某一次导入操作手动指定数据分割,并为另一次导入操作使用自动分割功能。每次导入数据并删除文件后,AutoML Translation 始终会根据手动分割情况重新均衡数据。
数据要求
您的训练数据必须符合以下要求:
- 如果您允许 AutoML Translation 自动分割数据,则必须提交至少 1000 个句段对来训练自定义模型。
- 如果您手动分割数据,则必须为
TRAIN
集提供至少三个句段对,并且VALIDATION
和TEST
集必须至少有 100 个句段对。 - 您必须为
TRAIN
集提供至少三个句段对,并且VALIDATION
和TEST
集必须至少有 100 个句段对。 - 您最多只能为每个
VALIDATION
和TEST
集提供 1 万个句段对。 - 您的数据集中的句段对数量不能超过 1500 万个。
数据建议
以下建议可以帮您提高模型的质量:
- 对于
TRAIN
,使用至少 5000 个句段对;为VALIDATION
使用 500 个句段对,为TEST
使用至少 500 个句段对。也就是说,尽量使用更多数据。为TRAIN
集提供更多数据有助于模型学习模式,而为VALIDATION
和TEST
集合提供更多数据则有助于验证模型是否可以泛化为您的领域中更为广泛的场景。 - 句段长度应尽量保持在不超过 200 字。AutoML Translation 可能会删除大于此值的句段对。如需了解详情,请参阅导入问题。
- 按照概览的数据准备部分中的“清理杂乱的数据”所述,解决常见的源数据问题。
制表符分隔值 (TSV)
AutoML Translation 支持制表符分隔文件,其中每行都具有以下格式:
Source segment
制表符Translated segment
例如:
It's a beautiful day.\tEs ist ein schöner Tag. Tomorrow it will rain.\tMorgen wird es regnen.
TSV 文件中的所有文本都必须是纯文本。如果文本包含 HTML 标记或其他标记,则 AutoML Translation 会将标记视为纯文本。在上面的示例中,源语言为英语,目标语言为德语。
请勿添加包含语言代码的标题行来标识源语言和目标语言。您可以在训练模型时指定源语言代码和目标语言代码。
TMX 格式
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>
并忽略其余元素。
如果一个 <tu>
元素没有匹配的 <tuv>
元素对,则 AutoML Translation 会跳过无效的 <tu>
元素。
AutoML Translation 在处理 <seg>
元素之前,会先剥离其周围的标记。如果一个 <tuv>
元素包含多个 <seg>
元素,则 AutoML Translation 会将其中的文本连接成一个元素,并在它们之间留一个空格。
如果文件包含上述标记以外的 XML 标记,AutoML Translation 将予以忽略。
如果文件不符合正确的 XML 和 TMX 格式,例如缺少结束标记或 <tmx>
元素,则 AutoML Translation 将取消处理。如果 AutoML Translation 跳过 1024 个以上无效的 <tu>
元素,那么系统也会取消处理。