本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
要使用 Amazon SageMaker API 创建贴标任务,请使用CreateLabelingJob
操作。有关为内置任务类型创建标注作业的具体说明,请参阅该任务类型页面。要了解如何创建流式标注作业(这是持续运行的标注作业),请参阅创建流式标签任务。
要使用 CreateLabelingJob
操作,您需要以下内容:
-
Amazon S3 中的工作人员任务模板 (
UiTemplateS3Uri
) 或人工任务 UI ARN (HumanTaskUiArn
)。-
对于 3D 点云作业、视频对象检测和跟踪作业以及 NER 作业,请将
HumanTaskUiArn
中列出的 ARN 用于您的任务类型。 -
如果您使用的是 3D 点云任务以外的内置任务类型,则可以将工作人员说明添加到其中一个预构建的模板中,并将此模板(使用 .html 或 .liquid 扩展名)保存在 S3 存储桶中。在任务类型页面上查找预构建模板。
-
如果使用自定义标注工作流,您可以创建一个自定义模板,并将该模板保存在 S3 存储桶中。要了解如何构建自定义工作人员模板,请参阅创建自定义工作人员任务模板。有关可用于自定义模板的自定义 HTML 元素,请参阅Crowd HTML 元素参考。有关各种标签任务的演示模板存储库,请参阅 Amazon G SageMaker round Truth 示例任务 UIs
。
-
-
一个输入清单文件,用于指定 Amazon S3 中的输入数据。在
ManifestS3Uri
中指定输入清单文件的位置。有关创建输入清单的信息,请参阅输入数据。如果您创建流式标注作业,则这是可选的。要了解如何创建流式标注作业,请参阅创建流式标签任务。 -
存储输出数据的 Amazon S3 存储桶。您可以在
S3OutputPath
中指定此存储桶并选择指定前缀。 -
标签类别配置文件。每个标签类别名称必须唯一。使用
LabelCategoryConfigS3Uri
参数指定此文件在 Amazon S3 中的位置。此文件的格式和标签类别取决于您使用的任务类型:-
对于图像分类和文本分类(单标签和多标签),必须至少指定两个标签类别。对于所有其他任务类型,所需的标签类别的最小数量为 1。
-
对于命名实体识别任务,必须在此文件中提供工作人员说明。有关详细信息和示例,请参阅在标签类别配置文件中提供工作人员说明。
-
对于 3D 点云和视频帧任务类型,请使用 带有标签类别和框架属性参考的标注类别配置文件 中的格式。
-
对于所有其他内置任务类型和自定义任务,标签类别配置文件必须是以下格式的 JSON 文件。通过将
label_1
、label_2
、...
、label_n
替换为标签类别,确定要使用的标签。{ "document-version": "2018-11-28", "labels": [ {"label": "
label_1
"}, {"label": "label_2
"}, ... {"label": "label_n
"} ] }
-
-
附带AmazonSageMakerGroundTruthExecution
托管 IAM 策略并有权访问您的 S3 存储桶的 AWS Identity and Access Management (IAM) 角色。在 RoleArn
中指定此角色。要了解有关此策略的更多信息,请参阅在 Ground Truth 中使用 IAM 托管策略。如果您需要更精细的权限,请参阅分配 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)。
-
Lambda 函数是在每个 AWS 区域中为内置任务类型预定义的。要查找您所在地区的预注释 Lambda ARN,请参阅。PreHumanTaskLambdaArn要查找您所在地区的注释合并 Lambda ARN,请参阅。AnnotationConsolidationLambdaArn
-
对于自定义标注工作流,必须提供自定义的注释前和注释后 Lambda ARN。要了解如何创建这些 Lambda 函数,请参阅在自定义标签工作流程中处理数据 AWS Lambda。
-
-
您在
WorkteamArn
中指定的工作团队 ARN。当您订阅供应商人力或创建私有工作团队时,您会收到工作团队 ARN。如果您正在为视频帧或点云任务类型创建标注作业,则无法使用工作 Amazon Mechanical Turk 人员。对于所有其他任务类型,要使用 Mechanical Turk 人力,请使用以下 ARN。
替换为您用于创建标注任务的 AWS 区域。region
arn:aws:sagemaker:
region
:394669845002:workteam/public-crowd/default如果您使用 Amazon Mechanical Turk 人力,请在
InputConfig
的DataAttributes
中使用ContentClassifiers
参数以声明您的内容不包含个人身份信息或成人内容。如果您使用 Mechanical Turk 人力,Ground Truth 要求您的输入数据不包含个人身份信息 (PII)。如果您使用 Mechanical Turk,但没有使用
FreeOfPersonallyIdentifiableInformation
标志指定输入数据不含 PII,那么您的标注作业将失败。使用该FreeOfAdultContent
标志声明您的输入数据不包含成人内容。 SageMaker 如果你的任务包含成人内容,人工智能可能会限制可以查看你的任务的 Amazon Mechanical Turk 工作人员。要了解有关工作团队和人力的更多信息,请参阅人力。
-
如果您使用的是 Mechanical Turk 人力,则必须在
PublicWorkforceTaskPrice
中指定工作人员执行单项任务的价格。 -
要配置任务,必须分别使用
TaskDescription
和TaskTitle
提供任务描述和标题。您可以选择提供时间限制,以控制工作人员执行单个任务的时间 (TaskTimeLimitInSeconds
) 以及工作人员门户中为工作人员保留任务的时间 (TaskAvailabilityLifetimeInSeconds
)。 -
(可选)对于某些任务类型,您可以让多个工作人员标注单个数据对象(为
NumberOfHumanWorkersPerDataObject
参数输入大于 1 的数字)。有关注释合并的更多信息,请参阅注释整合。 -
(可选)要创建自动数据标注任务,请指定LabelingJobAlgorithmSpecificationArn中 ARNs列出的任务之一
LabelingJobAlgorithmsConfig
。此 ARN 标识自动数据标注作业中使用的算法。与此 ARN 关联的任务类型必须与您指定的PreHumanTaskLambdaArn
和AnnotationConsolidationLambdaArn
的任务类型匹配。以下任务类型支持自动数据标注:图像分类、边界框、语义分割和文本分类。自动数据标注允许的最小对象数量为 1250 个,我们强烈建议至少提供 5000 个对象。要了解有关自动数据标注作业的更多信息,请参阅自动数据标注。 -
(可选)您可以提供
StoppingConditions
,如果满足其中一个条件,标注作业就会停止。您可以使用停止条件来控制标注作业的成本。
示例
以下代码示例演示了如何使用 CreateLabelingJob
创建标注作业。有关其他示例,我们建议您在笔记本实例的 “示 SageMaker例” 部分使用一个 G round Truth 标签作业 Jupyter SageMaker 笔记本。要了解如何使用 A SageMaker I 示例中的笔记本示例,请参阅访问示例笔记本。您还可以在 SageMaker AI 示例存储库 GitHub 中查看这些示例
以下是一个 AWS Python SDK (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"
}, ] )
有关此操作的更多信息,请参阅CreateLabelingJob。有关如何使用其他特定语言的信息 SDKs,请参阅主题中的另请参阅。CreateLabelingJobs