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

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

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

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

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

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

    • 3D 点群ジョブ、ビデオオブジェクトの検出と追跡ジョブ、および NER ジョブについては、HumanTaskUiArnをタスクタイプに設定します。

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

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

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

  • 出力データを保存する Amazon S3 バケット。このバケット、およびオプションでプレフィックスをS3OutputPath

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

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

    • 名前付きエンティティ認識タスクの場合、このファイルに作業者の指示を指定する必要があります。「」を参照してください。ラベルカテゴリ設定ファイルでの作業者の指示の提供詳細と例を参照してください。

    • 3D 点群およびビデオフレームタスクタイプの場合、ラベルカテゴリおよびフレーム属性を使用してラベリングカテゴリ設定ファイルを作成する

    • 他のすべての組み込みタスクタイプおよびカスタムタスクの場合、ラベルカテゴリ設定ファイルは、次の形式の JSON ファイルである必要があります。label_1label_2...label_n をラベルカテゴリに置き換えて、使用するラベルを特定します。

      { "document-version": "2018-11-28" "labels": [ {"label": "label_1"}, {"label": "label_2"}, ... {"label": "label_n"} ] }
  • AnAWS Identity and Access Management(IAM) ロールをAmazonSageMakerGroundTruthExecution管理対象 IAM ポリシーがアタッチされ、S3 バケットにアクセスするためのアクセス許可が付与されています。このロールをRoleArn。このポリシーの詳細については、IAM管理ポリシーとGround Truth スを使用。より詳細なアクセス許可が必要な場合は、「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

  • ワークチーム ARNWorkteamArn。ベンダー要員にサブスクライブしたり、プライベートワークチームを作成したりすると、ワークチーム ARN を受け取ります。ビデオフレームまたは点群のタスクタイプのラベル付けジョブを作成する場合は、Amazon Mechanical Turk労働力。他のすべてのタスクタイプで、Mechanical Turk の要員を使用するには、次の ARN を使用します。置換regionとのAWSラベリングジョブの作成に使用しているリージョン。

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

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

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

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

  • Mechanical Turk の要員を使用する場合は、1 つのタスクを実行するために作業者に支払う価格をPublicWorkforceTaskPrice

  • タスクを構成するには、タスクの説明とタイトルをTaskDescriptionおよびTaskTitleそれぞれ。必要に応じて、作業者が個々のタスクで作業する必要がある時間を制御する時間制限を指定できます (TaskTimeLimitInSeconds)、および作業者が利用できる作業者ポータルにタスクが残る期間 (TaskAvailabilityLifetimeInSeconds).

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

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

  • (オプション)StoppingConditions、条件が満たされた場合にラベル付けジョブが停止する原因となります。停止条件を使用して、ラベリングジョブのコストを制御できます。

Examples

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

AWS SDK for Python (Boto3)

の例を次に示します。AWSPython SDK (Boto3) リクエストを使用して、米国東部 (バージニア北部) リージョンに組み込みタスクタイプのラベリングジョブを作成します。Replace All赤文字化テキストをラベル付けジョブのリソースと仕様に置き換えます。

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

の例を次に示します。AWSCLI リクエストで、米国東部 (バージニア北部) リージョンに組み込みタスクタイプのラベル付けジョブを作成するには、Amazon Mechanical Turk 労働力。詳細については、「」を参照してください。開始ヒューマンループAWS CLIコマンドリファレンス。Replace All赤文字化テキストをラベル付けジョブのリソースと仕様に置き換えます。

$ 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トピック。