数据集包含要翻译的内容类型的代表性样本,即源语言和目标语言中的匹配句对。数据集用作训练模型的输入。
构建数据集的主要步骤如下:
项目可以有多个数据集,每个数据集用于训练单独的模型。您可以获取可用数据集列表,并且可以删除不再需要的数据集。
创建数据集
要创建自定义模型,首先需要创建一个空数据集,该数据集最终将保存模型的训练数据。创建数据集时,需要确定模型的源语言和目标语言。 如需详细了解支持的语言和变体,请参阅自定义模型的语言支持。
网页界面
在 AutoML Translation 界面中,您可以创建新数据集并在同一页面将训练项导入其中。
从标题栏右上角的下拉列表中选择您为其启用了 AutoML Translation 的项目。
在数据集标签页上,点击创建数据集。
在创建数据集对话框中,执行以下操作:
- 输入数据集的名称。
从下拉列表中选择源语言和目标语言。选择源语言后,系统就会显示可用的目标语言。
点击创建。系统会打开导入标签页。
REST 和命令行
发送创建数据集请求
下面演示了如何向 project.locations.datasets/create
方法发送 POST
请求。本示例针对通过 Cloud SDK 为项目设置的服务帐号使用访问令牌。
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 Google Cloud Platform 项目 ID
- dataset-name:新数据集的名称
- source-language-code:您要翻译的语言,以 ISO 639-1 代码形式表示,例如“en”
- target-language-code:要翻译为的目标语言,如 ISO 639-1 代码,例如“es”
HTTP 方法和网址:
POST https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/datasets
请求 JSON 正文:
{ "displayName": "dataset-name", "translationDatasetMetadata": { "sourceLanguageCode": "source-language-code", "targetLanguageCode": "target-language-code" } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/project-number/locations/us-central1/operations/operation-id", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-01T22:13:48.155710Z", "updateTime": "2019-10-01T22:13:48.155710Z", "createDatasetDetails": {} } }
获取结果
如需获取请求的结果,您必须向 operations
资源发送 GET
请求。下面演示了如何发送此类请求。
在使用任何请求数据之前,请先进行以下替换:
- operation-name:在对 API 的原始调用的响应中返回的操作名称
HTTP 方法和网址:
GET https://automl.googleapis.com/v1/operation-name
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-01T22:13:48.155710Z", "updateTime": "2019-10-01T22:13:52.321072Z", ... }, "done": true, "response": { "@type": "resource-type", "name": "resource-name" } }
Go
Java
Node.js
Python
在运行此代码示例之前,您必须先安装 Python 客户端库。保存新数据集的全名以用于其他操作(例如,将训练项导入数据集)。
其他语言
C#:请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Translation 参考文档。
PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Translation 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Translation 参考文档。
将训练项导入数据集
创建数据集后,您可以将训练句对导入其中。 如需详细了解如何准备训练数据,请参阅准备训练数据。
网页界面
在 AutoML Translation 界面中,您可以创建新数据集并在同一页面将训练项导入其中(请参阅创建数据集)。要将训练项导入现有数据集,请按以下步骤操作。
创建数据集文件夹之后,您就可以上传数据了。上传要用于训练模型的句对。
在导入标签页上,您可以从本地计算机或 Cloud Storage 上传 TSV 或 TMX 文件。对于本地导入的文件,请在选择文件后点击浏览。系统会显示文件夹列表。选择您要将文件上传到其中的目标文件夹。为了保证数据驻留,必须在 Cloud Storage 上托管此目录。
如果您要上传包含句对的不同文件,请选中使用不同的文件进行训练、验证和测试(高级)复选框。如果数据集中的句对数超过 100000,则建议使用此选项。您最多只能为验证集和测试集分配 10000 个句对;否则,AutoML Translation 会返回错误。
点击继续。
您会返回到数据集页面。您的数据集会在文档导入期间显示一个进行中动画。成功上传数据集后,我们会向您注册程序时使用的电子邮件地址发送一封邮件。
查看数据集。
成功导入数据后,请从数据集标签页选择相应数据集以查看其详细信息。句子 (Sentence) 标签页已启用,并显示了该数据集的名称。系统会列出句对。每个句对都带有“训练”、“验证”或“测试”标识,指示将使用该句对的处理阶段。
REST 和命令行
使用 projects.locations.datasets.importData
方法将训练项导入数据集。
在使用任何请求数据之前,请先进行以下替换:
- dataset-name:创建数据集时由 API 返回的数据集名称
- bucket-name:包含描述数据集的输入 CSV 的 Cloud Storage 存储分区
- csv-file-name:描述您的数据集的 inpug CSV 文件的名称
HTTP 方法和网址:
POST https://automl.googleapis.com/v1/dataset-name:importData
请求 JSON 正文:
{ "inputConfig": { "gcsSource": { "inputUris": "gs://bucket-name/csv-file-name" } } }
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/project-number/locations/us-central1/operations/operation-id", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1beta1.OperationMetadata", "createTime": "2018-04-27T01:28:36.128120Z", "updateTime": "2018-04-27T01:28:36.128150Z", "cancellable": true } }
Go
Java
Node.js
Python
在运行此代码示例之前,您必须先安装 Python 客户端库。 AutoML API 仅支持使用 Google Cloud Storage 存储分区中的 .csv 文件导入数据。dataset_full_id
是数据集的全名,格式为projects/{project-id}/locations/us-central1/datasets/{dataset-id}
input_uris
的值必须是与此项目关联的 Google Cloud Storage 存储分区中 CSV 文件的路径。格式为gs://{project-id}-lcm/{document-name}.csv
其他语言
C#:请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Translation 参考文档。
PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Translation 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Translation 参考文档。
创建并填充数据集后,即可训练模型(请参阅创建和管理模型)。
管理数据集
列出数据集
一个项目可以包含许多数据集。本部分介绍如何检索项目的可用数据集列表。
网页界面
如需使用 AutoML Translation 界面查看可用数据集的列表,请点击左侧导航菜单顶部的数据集链接。
要查看其他项目的数据集,请从标题栏右上角的下拉列表中选择该项目。
REST 和命令行
在使用任何请求数据之前,请先进行以下替换:
- project-id:您的 Google Cloud Platform 项目 ID
HTTP 方法和网址:
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/datasets
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "datasets": [ { "name": "projects/project-number/locations/us-central1/datasets/dataset-id", "displayName": "dataset-display-name", "createTime": "2019-10-01T22:47:38.347689Z", "etag": "AB3BwFpPWn6klFqJ867nz98aXr_JHcfYFQBMYTf7rcO-JMi8Ez4iDSNrRW4Vv501i488", "translationDatasetMetadata": { "sourceLanguageCode": "source-language", "targetLanguageCode": "target-language" } }, ... ] }
Go
Java
Node.js
Python
在运行此代码示例之前,您必须先安装 Python 客户端库。其他语言
C#:请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Translation 参考文档。
PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Translation 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Translation 参考文档。
删除数据集
网页界面
在 AutoML Translation 界面中,点击左侧导航菜单顶部的数据集链接以显示可用数据集的列表。
点击要删除的行最右侧的三点状菜单,然后选择删除。
在确认对话框中点击确认。
REST 和命令行
- 在创建数据集时,将 dataset-name 替换为数据集的完整名称。全名的格式为
projects/{project-id}/locations/us-central1/datasets/{dataset-id}
在使用任何请求数据之前,请先进行以下替换:
- dataset-name:要删除的数据集的名称,格式为
project/project-id/locations/us-central1/datasets/dataset-id
HTTP 方法和网址:
DELETE https://automl.googleapis.com/v1/dataset-name
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/project-number/locations/us-central1/operations/operation-id", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-02T16:43:03.923442Z", "updateTime": "2019-10-02T16:43:03.923442Z", "deleteDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Go
Java
Node.js
PHP
Python
在运行此代码示例之前,您必须先安装 Python 客户端库。dataset_id
是数据集的全名,格式为projects/{project-id}/locations/us-central1/datasets/{dataset-id}
其他语言
C#:请按照客户端库页面上的 C# 设置说明操作,然后访问 .NET 版 AutoML Translation 参考文档。
PHP:请按照客户端库页面上的 PHP 设置说明操作,然后访问 PHP 版 AutoML Translation 参考文档。
Ruby:请按照客户端库页面上的 Ruby 设置说明操作,然后访问 Ruby 版 AutoML Translation 参考文档。
导入问题:
创建数据集时,如果句子对过长或源语言和目标语言完全相同,则 AutoML Translation 可能会丢弃这些句对。
对于过长的句对,我们建议将其分解为大约 200 个字或更小的句对,然后重新创建包含已删除句对的数据集。在处理数据时,AutoML Translation 使用内部流程对输入数据进行令牌化,这可能会增加句子的大小。AutoML Translation 可使用此令牌化数据测量数据大小。因此,200 字的上限是最大长度的估算值。
您可以从数据集中移除在源语言和目标语言中相同的句对。如果您希望这些句子保持未翻译状态,请使用术语表资源构建用于定义 AutoML Translation 处理特定术语方式的自定义字典。