Ground Truth ストリーミングラベル付けジョブ - アマゾン SageMaker

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

Ground Truth ストリーミングラベル付けジョブ

ラベル付けするために、新しいデータオブジェクトを Amazon SageMaker Ground Truth に永続的に送信する場合は、ストリーミングラベル付けジョブを使用します。ストリーミングラベル付けジョブを使用すると、次のことが可能になります。

  • 永続的に実行されているラベル付けジョブを使用して、新しいデータセットオブジェクトをリアルタイムでワーカーに送信します。ラベル付けジョブがアクティブで、新しいオブジェクトが送信されている限り、ワーカーはラベル付けする新しいデータオブジェクトを継続的に受け取ります。

  • キューに入れられ、ラベル付けされるのを待っているオブジェクトの数を可視化します。この情報を使用して、ラベル付けジョブに送信されるデータオブジェクトのフローを制御します。

  • ワーカーがラベル付けを完了すると、個々のデータオブジェクトのラベルデータをリアルタイムで受け取ることができます。

Ground Truth ストリーミングラベル付けジョブは、手動で停止するか、10 日以上アイドル状態になるまで、アクティブなままです。ラベル付けジョブがアクティブな間は、新しいデータオブジェクトをワーカーに断続的に送信できます。

Ground Truth ストリーミングラベル付けジョブを初めて使用する場合は、「仕組み」を確認することをお勧めします。

ストリーミングラベル付けジョブの作成方法については、「ストリーミングラベル付けジョブを作成する」を参照してください。

注記

Ground Truth ストリーミングラベル付けジョブは、 SageMaker API を通じてのみサポートされます。

仕組み

Ground Truth ストリーミングラベル付けジョブを作成すると、ジョブは手動で停止するか、10 日以上アイドル状態になるまでアクティブなままです。入力データソースにアクセスできません。アクティブな間は、新しいデータオブジェクトをワーカーに断続的に送信できます。ワーカーが現在利用できるタスクの総数が MaxConcurrentTaskCount 値より小さい限り、ワーカーは新しいデータオブジェクトをリアルタイムで引き続き受け取ることができます。それ以外の場合、データオブジェクトは、GroundTruth が Amazon Simple Queue Service (Amazon SQS) でユーザーに代わって作成するキューに送信され、後で処理されます。これらのタスクは、ワーカーが現在利用できるタスクの総数が MaxConcurrentTaskCount を下回ると、すぐにワーカーに送信されます。14 日が経過してもデータオブジェクトがワーカーに送信されない場合は、有効期限切れになります。キュー内の保留中のタスクの数を表示し、ラベル付けジョブに送信するオブジェクトの数を調整できます。例えば、保留中のオブジェクトのバックログがしきい値を超えた場合に、ラベル付けジョブにオブジェクトを送信する速度を低下させることができます。

ストリーミングラベル付けジョブにデータを送信する

必要に応じて、入力マニフェストファイルを使用してラベル付けジョブを作成するときに、ストリーミングラベル付けジョブに入力データを送信できます。ラベル付けジョブが開始され、状態が InProgress の場合、Amazon SNS 入力トピックと Amazon S3 イベント通知を使用して、新しいデータオブジェクトをラベル付けジョブにリアルタイムで送信できます。

ラベル付けジョブ 開始時にデータオブジェクトを送信する (1 回):

  • 入力マニフェストファイルを使用する - 必要に応じて、ストリーミングラベル付けジョブを作成するときに、ManifestS3Uri で入力マニフェストファイルの Amazon S3 URI を指定できます。Ground Truth は、ラベル付けジョブが開始されるとすぐに、ラベル付けのために、マニフェストファイル内の各データオブジェクトをワーカーに送信します。詳細については、マニフェストファイルを作成する (オプション) を参照してください。

    ストリーミングラベル付けジョブを作成するリクエストを送信すると、ステータスは Initializing になります。ラベル付けジョブがアクティブになると、状態は InProgress に変わり、リアルタイムオプションを使用して、ラベル付け用に追加のデータオブジェクトを送信できます。

データオブジェクトをリアルタイムで送信する:

  • Amazon SNS メッセージを使用してデータオブジェクトを送信する - Amazon SNS メッセージを送信することで、Ground Truth の新しいデータオブジェクトをラベルに送信できます。このメッセージを Amazon SNS 入力トピックに送信します。このトピックは、ストリーミングラベル付けジョブの作成時に作成して指定します。詳細については、「Amazon SNS を使用してデータオブジェクトを送信する」を参照してください。

  • データオブジェクトを Amazon S3 バケットに配置して送信する - Amazon S3 バケットに新しいデータオブジェクトを追加するたびに、Ground Truth がそのオブジェクトをラベル処理するように促すことができます。これを行うには、バケットにイベント通知を追加して、新しいオブジェクトが追加されるたび (または作成されるたび) に、そのバケット Amazon SNS 入力トピックに通知します。詳細については、「Amazon S3 を使用してデータオブジェクトを送信する」を参照してください。このオプションは、テキスト分類や固有表現認識などのテキストベースのラベル付けジョブでは使用できません。

    重要

    Amazon S3 の設定を使用する場合は、入力データ設定と出力データに同じ Amazon S3 の場所を使用しないでください。ラベル付けジョブの作成時に、出力データの S3 プレフィックスを指定します。

Amazon SNS を使用してデータオブジェクトを送信する

Amazon Simple Notification Service (Amazon SNS) を使用して、ストリーミングラベル付けジョブにデータオブジェクトを送信できます。Amazon SNS は、エンドポイント (メールアドレスや AWS Lambda 関数など) に送受信するメッセージの配信を調整および管理するウェブサービスです。Amazon SNS トピックは、2 つ以上のエンドポイント間の通信チャネルとして機能します。Amazon SNS を使用して、新しいデータオブジェクトを、InputConfigCreateLabelingJob パラメータ SnsTopicArn で指定したトピックに送信するか発行します。これらのメッセージの形式は、入力マニフェストファイルからの 1 行と同じです。

例えば、テキストを入力トピックに発行することで、アクティブなテキスト分類ラベル付けジョブにテキストの一部を送信できます。発行するメッセージは、次のようになります。

{"source": "Lorem ipsum dolor sit amet"}

新しいイメージオブジェクトをイメージ分類ラベル付けジョブに送信するには、メッセージは次のようになります。

{"source-ref": "s3://awsexamplebucket/example-image.jpg"}
注記

カスタム重複排除 ID と重複排除キーを Amazon SNS メッセージに含めることもできます。詳細については、 重複メッセージの処理 を参照してください。

Ground Truth がストリーミングラベル付けジョブを作成すると、Amazon SNS 入力トピックにサブスクライブされます。

Amazon S3 を使用してデータオブジェクトを送信する

1 つ以上の新しいデータオブジェクトを Amazon SNS イベント通知で設定された Amazon S3 バケットに配置することで、ストリーミングラベル付けジョブに送信できます。バケットに新しいオブジェクトが作成されるたびに、Amazon SNS 入力トピックに通知するイベントを設定できます。この同じ Amazon SNS 入力トピックを InputConfigCreateLabelingJob パラメータ SnsTopicArn で指定する必要があります。

Amazon SNS に通知を送信するように Amazon S3 バケットを設定すると、Ground Truth はテストイベント "s3:TestEvent" を発行し、トピックが存在することと、指定した Amazon S3 バケットの所有者に、指定したトピックに対して発行するアクセス許可があることを確認します。ストリーミングラベル付けジョブを開始する前に、Amazon SNS と Amazon S3 の接続を設定することをお勧めします。これを行わない場合、このテストイベントがデータオブジェクトとして登録され、ラベル付けのために Ground Truth に送信されることがあります。

重要

Amazon S3 の設定を使用する場合は、入力データ設定と出力データに同じ Amazon S3 の場所を使用しないでください。ラベル付けジョブの作成時に、出力データの S3 プレフィックスを指定します。

イメージベースのラベル付けジョブでは、Ground Truth ですべての S3 バケットに CORS ポリシーがアタッチされている必要があります。詳細については、CORS アクセス許可要件 を参照してください。

Amazon S3 バケットを設定し、ラベル付けジョブを作成したら、バケットにオブジェクトを追加できます。Ground Truth はそのオブジェクトをワーカーに送信するか、Amazon SQS キューに配置します。

詳細については、Amazon S3 バケットイベント通知を設定する を参照してください。

重要

このオプションは、テキスト分類や固有表現認識などのテキストベースのラベル付けジョブでは使用できません。

Amazon SQS キューを使用してラベル付けリクエストを管理する

Ground Truth がストリーミングラベル付けジョブを作成すると、ラベル付けジョブの作成に使用された AWS アカウントに Amazon SQS キューが作成されます。キュー名は GroundTruth-labeling_job_name で、labeling_job_nameは、ラベル付けジョブの名前を小文字で表したものです。ラベル付けジョブにデータオブジェクトを送信すると、Ground Truth はデータオブジェクトをワーカーに直接送信するか、後で処理するためにタスクをキューに配置します。14 日が経過してもデータオブジェクトがワーカーに送信されない場合は、有効期限が切れ、キューから削除されます。Amazon SQS でアラームを設定して、オブジェクトの有効期限を検出し、このメカニズムを使用してラベル付けジョブに送信するオブジェクトの量を制御できます。

重要

ストリーミングラベル付けジョブに関連付けられた Amazon SQS キューで直接オブジェクトを変更、削除、送信すると、ジョブが失敗する可能性があります。

ストリーミングラベル付けジョブから出力データを受信する

Amazon S3 出力バケットは、ストリーミングラベル付けジョブからの新しい出力データで定期的に更新されます。

必要に応じて、Amazon SNS 出力トピックを指定できます。ワーカーがラベル付きオブジェクトを送信するたびに、出力データを含む通知がそのトピックに送信されます。SNS 出力トピックにエンドポイントをサブスクライブして、ラベル付けタスクから出力データを受信したときに、通知を受信したりイベントをトリガーしたりできます。別のストリーミングジョブへのリアルタイムチェーンを実行し、ワーカーからデータオブジェクトが送信されるたびに Amazon SNS 通知を受け取る場合は、Amazon SNS 出力トピックを使用します。

詳細については、エンドポイントを Amazon SNS 出力トピックにサブスクライブする を参照してください。

重複メッセージの処理

リアルタイムで送信されるデータオブジェクトについては、Ground Truth は、そのオブジェクトを参照する入力メッセージが複数回受信された場合でも (重複したメッセージ)、各一意のオブジェクトがラベル付けのために一度だけ送信されるようにすることで、べき等性を保証します。これを行うには、ストリーミングラベル付けジョブに送信される各データオブジェクトには、重複排除キーで識別される重複排除 ID が割り当てられます。

Amazon SNS メッセージを使用して Amazon SNS 入力トピックを通じてデータオブジェクトにラベル付けリクエストを直接送信する場合は、必要に応じてオブジェクトのカスタム重複排除キーと重複排除 ID を選択できます。詳細については、「Amazon SNS メッセージで重複排除キーと ID を指定する」を参照してください。

独自の重複排除キーを指定しない場合、または Amazon S3 設定を使用してラベル付けジョブにデータオブジェクトを送信する場合、Ground Truth は重複排除 ID に次のいずれかを使用します。

  • Amazon SNS 入力トピックに直接送信されるメッセージの場合、Ground Truth は SNS メッセージ ID を使用します。

  • Amazon S3 構成からのメッセージの場合、Ground Truth は、オブジェクトのAmazon S3 URI をメッセージ内のシーケンサートークンと組み合わせることにより、重複排除 ID を作成します。

Amazon SNS メッセージで重複排除キーと ID を指定する

Amazon SNS メッセージを使用してストリーミングラベル付けジョブにデータオブジェクトを送信する場合、次のいずれかの方法で重複排除キーと重複排除 ID を指定できます。これらのすべてのシナリオで、dataset-objectid-attribute-name で重複排除キーを識別します。

独自の重複排除キーと ID を用意する

Amazon SNS メッセージを次のように設定して、独自の重複排除キーと重複排除 ID を作成します。byo-key を独自のキーと、そのデータオブジェクトの重複排除 ID の UniqueId に置き換えます。

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"byo-key", "byo-key":"UniqueId" }

重複排除キーは最大 140 文字にできます。サポートされるパターンには、"^[$a-zA-Z0-9](-*[a-zA-Z0-9])*" が含まれます。

重複排除 ID は最大 1,024 文字にできます。サポートされるパターンには、^(https|s3)://([^/]+)/?(.*)$ が含まれます。

重複排除キーに既存のキーを使用する

メッセージ内の既存のキーを重複排除キーとして使用できます。これを行うと、そのキーに関連付けられた値が重複排除 ID に使用されます。

例えば、メッセージを次のようにフォーマットすることで、重複排除キーとして source-ref キーを使用するように指定できます。

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"source-ref" }

この例では、Ground Truth は "s3://bucket/prefix/object1" を重複排除 ID に使用します。

出力データで重複排除キーと ID を見つける

出力データに重複排除キーと ID を表示できます。重複排除キーは dataset-objectid-attribute-name で識別されます。

独自のカスタム重複排除キーを使用すると、出力に次のような内容が含まれます。

"dataset-objectid-attribute-name": "byo-key", "byo-key": "UniqueId",

キーを指定しない場合は、Ground Truth がデータオブジェクトに割り当てた重複排除 ID を次のように見つけることができます。$label-attribute-name-object-id パラメータは、重複排除 ID を識別します。

{ "source-ref":"s3://bucket/prefix/object1", "dataset-objectid-attribute-name":"$label-attribute-name-object-id" "label-attribute-name" :0, "label-attribute-name-metadata": {...}, "$label-attribute-name-object-id":"<service-generated-key>" }

<service-generated-key> では、データオブジェクトが Amazon S3 構成を経由した場合、Ground Truth はサービスで使用される一意の値を追加し、使用された Amazon S3 シーケンサーを示す $sequencer でキー設定された新しいフィールドを発行します。オブジェクトが SNS に直接供給された場合、Ground Truth は SNS メッセージ ID を使用します。

注記

$ の文字をラベル属性名に使用しないでください。