ラベル付けジョブを作成 (API) - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ラベル付けジョブを作成 (API)

Amazon SageMaker API を使用してラベル付けジョブを作成するには、CreateLabelingJob オペレーションを使用します。組み込みタスクタイプのラベル付けジョブを作成する具体的な手順については、そのタスクタイプページを参照してください。永続的に実行されるラベル付けジョブであるストリーミングラベル付けジョブを作成する方法については、「ストリーミングラベル付けジョブを作成する」を参照してください。

CreateLabelingJob オペレーションを使用するには、以下が必要です。

  • Amazon S3 のワーカータスクテンプレート (UiTemplateS3Uri) またはヒューマンタスク UI ARN (HumanTaskUiArn) 。

    • 3D 点群ジョブ、動画オブジェクトの検出と追跡ジョブ、NER ジョブでは、タスクタイプの HumanTaskUiArn に示されている ARN を使用します。

    • 3D 点群タスク以外の組み込みタスクタイプを使用している場合は、いずれかの構築済みテンプレートにワーカーの指示を追加し、テンプレートを S3 バケットに保存できます (拡張子 .html または .liquid を使用)。タスクタイプページで構築済みテンプレートを見つけます。

    • カスタムのラベル付けワークフローを使用する場合は、カスタムテンプレートを作成してそのテンプレートを S3 バケットに保存することができます。カスタムのワーカーテンプレートを作成する方法については、「ステップ 2: カスタムワーカータスクテンプレートの作成」を参照してください。テンプレートのカスタマイズに使用できるカスタムの HTML 要素については、「Crowd HTML 要素のリファレンス」を参照してください。さまざまなラベル付けタスクのデモ用テンプレートのリポジトリについては、「Amazon SageMaker Ground Truth サンプルタスク UI」を参照してください。

  • Amazon S3 で入力データを指定する入力マニフェストファイル。ManifestS3Uri で、入力マニフェストファイル場所を指定します。入力マニフェストの作成については、「入力データ」を参照してください。ストリーミングラベル付けジョブを作成する場合、これは任意です。ストリーミングラベル付けジョブを作成するには、「ストリーミングラベル付けジョブを作成する」を参照してください。

  • 出力データを格納する Amazon S3 バケット。このバケットを指定し、必要に応じて、S3OutputPath でプレフィックスを指定します。

  • ラベルカテゴリ設定ファイル。各ラベルカテゴリ名は一意である必要があります。LabelCategoryConfigS3Uri パラメータを使用して、Amazon S3 のこのファイルの場所を指定します。このファイルの形式とラベルのカテゴリは、使用するタスクタイプによって異なります。

    • イメージ分類とテキストの分類 (単一ラベルとマルチラベル) では、少なくとも 2 つのラベルカテゴリを指定する必要があります。他のすべてのタスクタイプでは、必要なラベルカテゴリの最小数は 1 です。

    • 固有表現認識タスクの場合は、このファイルにワーカーの指示を指定する必要があります。詳細と例については、「ラベルカテゴリ設定ファイルにワーカー向け指示書を指定する」を参照してください。

    • 3D 点群と同dがフレームタスクタイプの場合は、ラベルカテゴリとフレーム属性を含むラベル付けカテゴリ設定ファイルを作成する の形式を使用します。

    • 他のすべての組み込みタスクタイプおよびカスタムタスクの場合、ラベルカテゴリ設定ファイルは、次の形式の JSON ファイルである必要があります。label_1label_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 管理ポリシーを使用する」を参照してください。より詳細なアクセス許可が必要な場合は、「Ground Truth を使用するための IAM アクセス権限を割り当てる」を参照してください。

    入力バケット名または出力バケット名に 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 関数の作成方法については、「ステップ 3: を使用した処理AWS Lambda」を参照してください。

  • WorkteamArn で指定した作業チームの ARN。ベンダーのワークフォースをサブスクライブしたり、プライベートワークチームを作成したりすると、作業チーム ARN を受け取ります。動画フレームまたは点群タスクタイプのラベル付けジョブを作成する場合は、Amazon Mechanical Turk ワークフォースは使用できません。その他すべてのタスクタイプで、Mechanical Turk ワークフォースを使用するには、次の ARN を使用します。region を、ラベル付けジョブの作成に使用している AWS のリージョンに置き換えます。

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

    Amazon Mechanical Turk ワークフォースを使用する場合は、InputConfigDataAttributes にある ContentClassifiers パラメータを使用して、コンテンツに個人を特定できる情報やアダルトコンテンツが含まれていないことを宣言します。

    Ground Truth では、Mechanical Turk ワークフォースを使用する場合に、入力データに個人を特定できる情報 (PII) を含めることはできません。Mechanical Turk を使用し、FreeOfPersonallyIdentifiableInformation フラグを使用して入力データに PII がないことを指定しない場合、ラベル付けジョブは失敗します。FreeOfAdultContent フラグを使用して、入力データにアダルトコンテンツが含まれていないことを宣言します。アダルトコンテンツが含まれている場合、SageMaker はタスクを表示できる Amazon Mechanical Turk ワーカーを制限する場合があります。

    ワークチームとワークフォースの詳細については、「ワークフォースの作成と管理」を参照してください。

  • Mechanical Turk ワークフォースを使用する場合は、PublicWorkforceTaskPrice で 1 つのタスクを実行するためにワーカーに支払う価格を指定する必要があります。

  • タスクを設定するには、TaskDescriptionTaskTitle を使用して、それぞれにタスクの説明とタイトルを指定する必要があります。必要に応じ、ワーカーが個々のタスクで作業しなければならない時間 (TaskTimeLimitInSeconds) と、ワーカーポータルに残っていて、ワーカーが作業できるタスクの時間 (TaskAvailabilityLifetimeInSeconds)を制御する時間制限を指定できます。

  • (オプション) 一部のタスクタイプでは、NumberOfHumanWorkersPerDataObject パラメータに 1 より大きい数値を入力することによって、1 つのデータオブジェクトに複数のワーカーがラベルを付けることができます。注釈統合の詳細については、「注釈統合」を参照してください。

  • (オプション)自動データラベリングジョブを作成するには、LabelingJobAlgorithmsConfigLabelingJobAlgorithmSpecificationArn に示されているいずれかの ARN を指定します。この ARN は、自動データラベリングジョブで使用されるアルゴリズムを特定します。この ARN に関連付けられているタスクタイプは、指定した PreHumanTaskLambdaArnAnnotationConsolidationLambdaArn に一致する必要があります。自動データラベリングは、イメージの分類、境界ボックス、セマンティックセグメンテーション、テキスト分類のタスクタイプでサポートされています。自動データラベリングに許容される最小のオブジェクト数は 1,250 ですが、少なくとも 5,000 個のオブジェクトを指定することを強くお勧めします。自動データラベリングジョブの詳細については、「データのラベル付けの自動化」を参照してください。

  • (オプション)条件を満たす場合、ラベル付けジョブを停止する StoppingConditions を指定できます。停止条件を使用して、ラベル付けジョブのコストを制御できます。

次のコード例では、CreateLabelingJob を使用してラベル付けジョブを作成する方法を示します。その他の例については、SageMaker ノートブックインスタンスの「SageMaker の例」セクションにある Ground Truth ラベル付けジョブ の Jupyter ノートブックのいずれかを使用することをお勧めします。SageMaker の例からノートブックの例を使用する方法については、「サンプルノートブックの使用」を参照してください。これらのノートブックの例は、GitHub の SageMaker サンプルリポジトリでも確認できます。

AWS SDK for Python (Boto3)

以下は、米国東部 (バージニア北部) リージョンで、プライベートワークフォースを使用して組み込みタスクタイプのラベル付けジョブを作成する AWSPython SDK (Boto3) リクエストの例です。赤色の斜体テキストを、ラベル付けジョブのリソースと仕様に置き換えます。

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

以下は、米国東部 (バージニア北部) リージョンで、Amazon Mechanical Turk ワークフォースを使用して組み込みタスクタイプのラベル付けジョブを作成する AWS CLI リクエストの例です。詳細については、AWS CLI コマンドリファレンスの「start-human-loop」を参照してください。赤色の斜体テキストを、ラベル付けジョブのリソースと仕様に置き換えます。

$ 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」を参照してください。他の言語固有の SDK を使用する方法については、CreateLabelingJobs トピックの「以下の資料も参照してください」を参照してください。