Amazon Web Services ブログ

Amazon SageMaker Ground Truth を使ってプライベートのラベル付けチームのスループットを追跡

AWS re:Invent 2018 において発表された Amazon SageMaker Ground Truth は、機械学習モデル向けの高精度なトレーニングデータセットをすばやく構築することを可能にするサービスです。Amazon SageMaker Ground Truth を使うと、パブリックおよびプライベートのラベル付け作業者に簡単にアクセスしたり、そうした作業者に対して一般的なラベル付けタスクに使用できる組み込みのワークフローとインターフェイスを提供したりすることができます。さらに Amazon SageMaker Ground Truth は、自動ラベル付けによってラベル付けのコストを最大 70% 削減します。自動ラベル付けを機能させるには、人間がラベル付けしたデータを使用して Ground Truth をトレーニングし、サービスに自立的にデータのラベル付けを学習させます。

プライベートの作業者にデータのラベル付けを行わせるときは、そのスループットと効率を測定および追跡したいとお考えでしょう。Amazon SageMaker Ground Truth では、作業者のイベント (ラベル付け作業者によるタスクの開始時刻、送信時刻など) を Amazon CloudWatch に記録できるようになりました。さらに、CloudWatch に組み込まれたメトリクス機能を使って、作業チーム全体または個々の作業者のスループットを測定および追跡することも可能になりました。このブログ記事では、作業者イベントの raw ログと組み込みのメトリクスを、お使いの AWS アカウントで使用する方法について解説していきます。

作業者アクティビティログの使い方

Amazon SageMaker Ground Truth を使ってプライベートの作業者チームをセットアップし、ラベル付けジョブを実行すると、作業者のアクティビティログが CloudWatch に自動的に生成されます。プライベートチームのセットアップ方法と最初のラベル付けジョブの開始方法については、こちらの開始方法に関するブログ記事を参照してください。注: 過去にプライベート作業チームを作成したことがある場合は、新しいプライベート作業チームを作成し、作業チームと CloudWatch の間に信頼されたアクセス許可をセットアップする必要があります。このプライベート作業チームを使用する必要はなく、セットアップのステップは 1 回限りのものとなります。

ログを閲覧するには、CloudWatch コンソールにアクセスし、左側のパネルで [ログ] をクリックします。/aws/sagemaker/groundtruth/WorkerActivity という名前のロググループが表示されるはずです。

このロググループには、Amazon SageMaker Ground Truth のラベル付けジョブの最中に作業者が受け入れる、各タスクのログが含まれています。以下にログの例を示します。”cognito_sub_id” フィールドを見ると、作業者の Amazon Cognito サブ ID が記述されています。後ほど、Amazon Cognito を使ってこの ID を作業者のアイデンティティにリンクさせる方法を解説します。また、”workflow_arn” には、Amazon SageMaker Ground Truth ラベル付けジョブの Amazon リソースネーム (ARN) が記述されていることがわかります。このログには、作業者がタスクを始めた時刻 (“task_accepted_time”) と、作業者がタスクを返した、または送信した時刻 (“task_returned_time” または “task_submitted_time”) のタイムスタンプも含まれています。

{ 
     "worker_id": "cd449a289e129409",
     "cognito_user_pool_id": "us-east-2_IpicJXXXX",
     "cognito_sub_id": "d6947aeb-0650-447a-ab5d-894db61017fd",
     "task_accepted_time": "Wed Aug 14 16:00:59 UTC 2019",
     "task_submitted_time": "Wed Aug 14 16:01:04 UTC 2019",
     "task_returned_time": "",
     "workteam_arn": "arn:aws:sagemaker:us-east-2:############:workteam/private-crowd/Sample-labeling-team",
     "labeling_job_arn": "arn:aws:sagemaker:us-east-2:############:labeling-job/metrics-demo",
     "work_requester_account_id": "############",
     "job_reference_code": "############",
     "job_type": "Private",
     "event_type": "TasksSubmitted",
     "event_timestamp": "1565798464" 
}

CloudWatch Logs の使い方の詳細については、開発者ドキュメントを参照してください。

作業者アクティビティメトリクスの使用方法

CloudWatch メトリクス機能を使うと、関心のある統計や、プライベート作業者のスループットについてのグラフなども生成できます。まず [メトリクス] タブを開き、次に [AWS/SageMaker/Workteam] 名前空間に進みます。

作業者が特定のラベル付けジョブのタスクに要した平均時間について、知りたかったとします。その場合は、[LabelingJob, Workteam] のオプションを選択します。

ここでは、独自の統計を計算できます。以下の例では、特定のラベル付けジョブにおける、送信されたタスクごとの平均所要時間を計算しています。14 のタスクが送信され、合計所要時間は 2.28 分、タスクごとの平均時間は 9.78 秒です。

CloudWatch メトリクスの使い方の詳細については、開発者ドキュメントを参照してください。

Amazon Cognito サブ ID を作業者の情報にリンクさせる方法

出力された Amazon Cognito サブ ID は、ユーザー名などの識別可能な作業者情報にリンクさせることが可能です。リンクさせるには、Amazon Cognito ListUsers API を使って短いスクリプトを記述します。あるいは、Amazon Cognito コンソールで以下のステップに従ってリンクさせることも可能です。

  1. ラベル付けジョブを実行している AWS リージョンの [ユーザープールの管理] に進みます。
  2. [sagemaker-ground-userpool] を選択します (Amazon SageMaker Ground Truth に独自の Amazon Cognito ユーザープールを統合している場合は、そのユーザープールを選択します)。
  3. 左側のパネルで [ユーザーとグループ] をクリックすると、ユーザープールに含まれるすべてのユーザーが表示されます。
  4. いずれかのユーザーをクリックすると、それぞれのサブ ID が表示されます。

まとめ

この記事では、CloudWatch Logs とメトリクスを使ってプライベートラベル付けチームのスループットを測定、追跡する方法についてご紹介しました。また、出力された作業者 ID を、ユーザー名などの識別可能な作業者情報とリンクさせる方法についても取り上げました。AWS マネジメントコンソールにアクセスしてさっそく使用を開始しましょう。

いつものように、AWS では皆さんのフィードバックをお待ちしています。コメントまたはご質問については、以下から送信してください。


著者について

Vikram Madan は Amazon SageMaker Ground Truth のプロダクトマネージャーです。機械学習ソリューションの構築を容易にする製品の提供に、力を注いでいます。余暇には、長距離のランニングやドキュメンタリーの鑑賞などを楽しんでいます。

 

 

Pranav Sachdeva は AWS AI のソフトウェア開発エンジニアです。高性能な分散システムを構築して現実の問題を解決することに情熱を傾けています。現在は、お客様が、待ち望まれている人間的側面を AI に付与できるよう、AWS AI エコシステムの機能の刷新と構築に取り組んでいます。