创建标记作业 (API) - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建标记作业 (API)

要使用 Amazon SageMaker API 创建标记作业,您可以使用 CreateLabelingJob 操作。有关为内置任务类型创建标记作业的具体说明,请参阅该任务类型页面。要了解如何创建流式处理标记作业(这是持久运行的标记作业),请参阅Create a Streaming Labeling Job

要使用 CreateLabelingJob 操作,您需要以下内容:

  • UiTemplateS3Uri 中的工作人员任务模板 (HumanTaskUiArn) 或人工任务 UI ARN (Amazon S3)。

    • 对于 3D 点云标记作业,请为任务类型使用 HumanTaskUiArn 中列出的 ARN。

    • 如果您使用的是 3D 点云任务以外的内置任务类型,则可以将工作人员说明添加到其中一个预构建的模板中,并将此模板(使用 .html 或 .liquid 扩展名)保存在 S3 存储桶中。在任务类型页面上查找预构建模板。

    • 如果使用自定义标记工作流,您可以创建一个自定义模板,并将该模板保存在 S3 存储桶中。要了解如何构建自定义工作人员模板,请参阅步骤 2:创建您的自定义标记任务模板。有关可用于自定义模板的自定义 HTML 元素,请参阅Crowd HTML 元素参考。有关各种标记任务的演示模板存储库,请参阅 Amazon SageMaker Ground Truth 示例任务 UIs

  • 至少一个存储输入和输出数据的 S3 存储桶。

  • 一个输入清单文件,用于指定输入数据。有关创建输入清单的信息,请参阅输入数据

  • 标签类别配置文件。每个标签类别名称必须是唯一的。

    对于图像分类和文本分类(单标签和多标签),您必须指定至少两个标签类别。对于所有其他任务类型,要求的标签类别的最小数量为 1。

    对于 3D 点云和视频帧任务类型,请使用 中的格式使用标签类别和帧属性创建标签类别配置文件

    对于所有其他内置任务类型和自定义任务,标签类别配置文件必须是以下格式的 JSON 文件。通过将 label_1label_2...label_n 替换为标签类别,确定要使用的标签。

    { "document-version": "2018-11-28" "labels": [ {"label": "label_1"}, {"label": "label_2"}, ... {"label": "label_n"} ] }
  • 附加了 AWS Identity and Access ManagementAmazonSageMakerGroundTruthExecutionIAM 托管 IAM 策略并具有访问您的 S3 存储桶的权限的 ) 角色。要了解有关此策略的更多信息,请参阅授予常规权限以开始使用 Ground Truth。如果您需要更精细的权限,请参阅分配使用 IAM 的 Ground Truth 权限

    如果您的输入或输出存储桶名称不包含 sagemaker,则可以将类似于以下内容的策略附加到传递给 CreateLabelingJob 操作的角色。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my_output_bucket/*" ] } ] }
  • 用于处理输入和输出数据的注释前和注释后(或注释-合并)AWS Lambda 函数 Amazon 资源名称 (ARN)。

  • 工作团队 ARN。当您订阅供应商人力或创建私有工作团队时,您将收到工作团队 ARN。如果您要为视频帧或点云任务类型创建标记作业,则无法使用 Amazon Mechanical Turk 人力。对于所有其他任务类型,要使用 Mechanical Turk 人力,请使用以下 ARN。Replace 区域 与用于创建标记作业的 AWS 区域。

    arn:aws:sagemaker:region:394669845002:workteam/public-crowd/default

    如果您使用 Amazon Mechanical Turk 人力,请使用 中的 ContentClassifiers 参数CreateLabelingJob声明您的内容不含个人身份信息和成人内容。

    Ground Truth 如果您使用 Mechanical Turk 人力,则 要求您的输入数据不含个人身份信息 (PII)。如果您使用 Mechanical Turk 并且未使用 FreeOfPersonallyIdentifiableInformation 标志指定您的输入数据是免费的 PII,则标记作业将失败。

    使用 FreeOfAdultContent 标记声明您的输入数据不包含成人内容SageMaker。如果 Amazon Mechanical Turk 工作线程包含成人内容,则 可能会限制可以查看您的任务的 Amazon Mechanical Turk 工作线程。

    要了解有关工作团队和人力的更多信息,请参阅创建和管理人力

  • (可选)对于某些任务类型,您可以让多个工作人员标记单个数据对象(为 NumberOfHumanWorkersPerDataObject 参数输入大于 1 的数字)。有关注释合并的更多信息,请参阅合并注释

以下是一个 AWS Python 开发工具包 (Boto3) 请求示例,该请求在 美国东部(弗吉尼亚北部) 区域中为内置任务类型创建标记作业。

适用于 Python (Boto3) 的 AWS 软件开发工具包

以下是使用私有人力为 区域中的内置任务类型创建标记作业的 AWS Python 开发工具包 (Boto3 请求美国东部(弗吉尼亚北部)的示例。替换所有 red-italized text 替换为您的标记作业资源和规范。

response = client.create_labeling_job( LabelingJobName="example-labeling-job", LabelAttributeName="label", InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': "s3://bucket/path/manifest-with-input-data.json" } }, 'DataAttributes': { 'ContentClassifiers': [ "FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent", ] } }, OutputConfig={ 'S3OutputPath': "s3://bucket/path/file-to-store-output-data", 'KmsKeyId': "string" }, RoleArn="arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri="s3://bucket/path/label-categories.json", StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': "arn:aws:sagemaker:region:*:workteam/private-crowd/*", 'UiConfig': { 'UiTemplateS3Uri': "s3://bucket/path/custom-worker-task-template.html" }, 'PreHumanTaskLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", 'TaskKeywords': [ "Images", "Classification", "Multi-label" ], 'TaskTitle': "Multi-label image classification task", 'TaskDescription': "Select all labels that apply to the images shown", 'NumberOfHumanWorkersPerDataObject': 1, 'TaskTimeLimitInSeconds': 3600, 'TaskAvailabilityLifetimeInSeconds': 21600, 'MaxConcurrentTaskCount': 1000, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:ACS-" }, Tags=[ { 'Key': "string", 'Value': "string" }, ] )
AWS CLI

以下是使用 AWS美国东部(弗吉尼亚北部) 人力为 Amazon Mechanical Turk 区域中的内置任务类型创建标记作业的 CLI 请求的示例。有关更多信息,请参阅 中的 https://docs.amazonaws.cn/cli/latest/reference/sagemaker/create-labeling-job.html AWS CLI Command Referencestart-human-loop。替换所有 red-italized text 替换为您的标记作业资源和规范。

$ aws --region us-east-1 sagemaker create-labeling-job \ --labeling-job-name "example-labeling-job" \ --label-attribute-name "label" \ --role-arn "arn:aws:iam::account-id:role/role-name" \ --input-config '{ "DataAttributes": { "ContentClassifiers": [ "FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent" ] }, "DataSource": { "S3DataSource": { "ManifestS3Uri": "s3://bucket/path/manifest-with-input-data.json" } } }' \ --output-config '{ "KmsKeyId": "", "S3OutputPath": "s3://bucket/path/file-to-store-output-data" }' \ --human-task-config '{ "AnnotationConsolidationConfig": { "AnnotationConsolidationLambdaArn": "arn:aws:lambda:us-east-1:432418664414:function:ACS-" }, "TaskAvailabilityLifetimeInSeconds": 21600, "TaskTimeLimitInSeconds": 3600, "NumberOfHumanWorkersPerDataObject": 1, "PreHumanTaskLambdaArn": "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", "WorkteamArn": "arn:aws:sagemaker:us-east-1:394669845002:workteam/public-crowd/default", "PublicWorkforceTaskPrice": { "AmountInUsd": { "Dollars": 0, "TenthFractionsOfACent": 6, "Cents": 3 } }, "TaskDescription": "Select all labels that apply to the images shown", "MaxConcurrentTaskCount": 1000, "TaskTitle": "Multi-label image classification task",, "TaskKeywords": [ "Images", "Classification", "Multi-label" ], "UiConfig": { "UiTemplateS3Uri": "s3://bucket/path/custom-worker-task-template.html" } }'

有关此操作的更多信息,请参阅 CreateLabelingJob。有关如何使用其他特定于语言SDKs的信息,请参阅主题中的另CreateLabelingJobs请参阅。