データのラベル付けの自動化 - Amazon SageMaker

データのラベル付けの自動化

必要に応じて、Amazon SageMaker Ground Truth でアクティブラーニングを使用して、入力データのラベル付けを自動化できます。アクティブラーニングとは、ワーカーがラベル付けするデータを識別する機械学習の手法です。Ground Truth では、この機能を「データの自動ラベル付け」と呼びます。データの自動ラベル付けは、人間だけを使用する場合と比べて、データセットのラベル付けの所要コストと時間を削減するのに役立ちます。自動ラベル付けを使用すると、Amazon SageMaker トレーニングと推論の費用が発生します。

アクティブラーニングで使用されるニューラルネットワークは新しいデータセットごとに大量のデータを必要とするため、データの自動ラベル付けは大規模なデータセットに対して使用することをお勧めします。通常、提供するデータが増えるほど、予測の精度が高くなります。自動ラベル付けモデルで使用されるニューラルネットワークで許容可能な高レベルの精度を達成できる場合にのみ、データが自動ラベル付けされます。したがって、データセットが大きいほど、ニューラルネットワークは自動ラベル付けに十分な高い精度を達成できるため、データが自動ラベル付けされる可能性が高くなります。データの自動ラベル付けは、何千ものデータオブジェクトがある場合に最も適しています。データの自動ラベル付けに許容される最小のオブジェクト数は 1,250 ですが、少なくとも 5,000 個のオブジェクトを指定することを強くお勧めします。

データの自動ラベル付けは、次の Ground Truth 組み込みタスクタイプでのみ使用できます。

  • イメージ分類 (単一ラベル)

  • セマンティックセグメンテーション

  • 境界ボックス

  • テキスト分類

データの自動ラベル付けは、ラベル付けジョブの作成時に有効にします。この仕組みは以下のようになっています。

  1. Ground Truth は、データの自動ラベル付けジョブを開始するときに、入力データ (オブジェクト) のランダムなサンプルを選択して人間のワーカーに送信します。

  2. ラベル付けされたデータが返されると、Ground Truth はこのデータ (検証データ) を使用して、データの自動ラベル付け用にトレーニングされたモデルを検証します。

  3. Ground Truth は、検証されたモデルを使用してバッチ変換ジョブを実行し、検証データに対する推論を行います。バッチ推論では、検証データ内のオブジェクトごとに信頼スコアと品質メトリクスが生成されます。

  4. 自動ラベル付けコンポーネントは、これらの品質メトリクスと信頼スコアを使用して、品質ラベルを保証する信頼スコアのしきい値を作成します。

  5. Ground Truth は、推論用の同じ検証済みモデルを使用して、データセット内のラベル付けされていないデータに対してバッチ変換ジョブを実行します。これにより、オブジェクトごとの信頼スコアが生成されます。

  6. Ground Truth の自動ラベル付けコンポーネントは、オブジェクトごとにステップ 5 で生成された信頼スコアが、ステップ 4 で決定された必要なしきい値を満たしているかどうかを判断します。信頼スコアがしきい値を満たしている場合は、自動ラベル付けに期待される品質が、要求される精度のレベルを超えているため、当該オブジェクトは自動ラベル付けされたものと見なされます。

  7. ステップ 6 では、信頼スコアを持つ、ラベル付けされていないデータのデータセットを生成します。Ground Truth は、このデータセットから信頼スコアの低いデータポイントを選択して人間のワーカーに送信します。

  8. Ground Truth は、人間によってラベル付けされた既存のデータと、人間のワーカーからの追加でラベル付けされたデータを使用して、新しいモデルをトレーニングします。

  9. このプロセスは、データセットが完全にラベル付けされるか、別の停止条件が満たされるまで繰り返されます。たとえば、人間の注釈予算に達すると、自動ラベル付けは停止します。

データの自動ラベル付けジョブには、入力データのクォータが適用されます。自動セマンティックセグメンテーション、オブジェクト検出、イメージ分類のデータセットサイズ、入力データサイズ、解像度の制限に関する情報については、「入力データのクォータ」を参照してください。

注記

本番環境で自動ラベル付けモデルを使用する前に、モデルの微調整またはテストを行うか、その両方を行う必要があります。ラベル付けジョブで生成されたデータセットでモデルを微調整する (または別の選択した監視対象モデルを作成して調整する) ことで、モデルのアーキテクチャとハイパーパラメータを最適化できます。モデルを微調整なしで推論に使用する場合は、Ground Truth でラベル付けしたデータセットの代表的なサブセット (ランダムに選択したサブセットなど) で精度を評価し、期待値を満たしていることを確認するよう強くお勧めします。

データの自動ラベル付けジョブの作成 (コンソール)

データの自動ラベル付けは、Ground Truth の組み込みアルゴリズムでのみ使用できます。

Amazon SageMaker コンソールを使用してデータの自動ラベル付けを使用するラベル付けジョブを作成するには、Amazon SageMaker コンソールを使用してラベル付けジョブを作成する方法を知る必要があります。Ground Truth を使用してコンソールでラベル付けジョブを作成する方法については、開始方法を参照してください。

データの自動ラベル付けジョブを作成するには (コンソール)

  1. Amazon SageMaker コンソール (https://console.aws.amazon.com/sagemaker/groundtruth) で Ground Truth の [Labeling jobs (ラベリングジョブ)] セクションを開きます。

  2. 開始方法 をガイドとして使用し、[Job overview] セクションと [Task type] セクションに入力します。自動ラベル付けは、カスタムタスクタイプではサポートされないことに注意してください。

  3. [Workers] で、ワークフォースタイプを選択します。

  4. 同じセクションで、[Enable automated data labeling] を選択します。

  5. ステップ 4: 境界ボックスツールを設定する をガイドとして、[Task Type labeling tool] セクションでワーカーの指示を作成します。たとえば、ラベル付けジョブタイプとして [Semantic segmentation] を選択した場合、このセクションの名前は [Semantic segmentation labeling tool] になります。

  6. ワーカーの指示とダッシュボードをプレビューするには、[Preview] を選択します。

  7. [Create] を選択します。これにより、ラベル付けジョブと自動ラベル付けプロセスが作成されて開始されます。

Amazon SageMaker コンソールの [Labeling jobs] セクションにラベル付けジョブが表示されます。出力データは、ラベル付けジョブの作成時に指定した Amazon S3 バケットに表示されます。ラベル付けジョブの出力データの形式とファイル構造の詳細については、「出力データ」を参照してください。

データの自動ラベル付けジョブの作成 (API)

Amazon SageMaker API を使用してデータの自動ラベリングジョブを作成するには、CreateLabelingJob オペレーションの LabelingJobAlgorithmsConfig パラメータを使用します。

データの自動ラベリングに使用するアルゴリズムの Amazon リソースネーム (ARN) を LabelingJobAlgorithmSpecificationArn パラメータに指定します。自動ラベル付けでサポートされている Ground Truth の 4 つの組み込みアルゴリズムから 1 つを選択します。

  • イメージ分類

  • セマンティックセグメンテーション

  • オブジェクトの検出 (境界ボックス)

  • テキスト分類

データの自動ラベル付けジョブが終了すると、Ground Truth はデータの自動ラベル付けジョブで使用したモデルの ARN を返します。このモデルを同様の自動ラベリングジョブタイプの開始モデルとして使用するには、この ARN の文字列形式を InitialActiveLearningModelArn パラメータで指定します。モデルの ARN を取得するには、次のような AWS Command Line Interface (AWS CLI) コマンドを使用します。

# Fetch the mARN of the model trained in the final iteration of the previous labeling job.Ground Truth pretrained_model_arn = sagemaker_client.describe_labeling_job(LabelingJobName=job_name)['LabelingJobOutput']['FinalActiveLearningModelArn']

自動ラベル付けで使用される ML コンピューティングインスタンスにアタッチされたストレージボリュームのデータを暗号化するには、VolumeKmsKeyId パラメータに AWS Key Management Service (AWS KMS) キーを含めます。AWS KMS キーの詳細については、「AWS Key Management Service とは」 (AWS Key Management Service 開発者ガイド) を参照してください。

CreateLabelingJob オペレーションを使用してデータの自動ラベリングジョブを作成する例については、Amazon SageMaker ノートブックインスタンスの [SageMaker Examples]、[Ground Truth Labeling Jobs] セクションにある [object_detection_tutorial] の例を参照してください。ノートブックインスタンスを作成して開く方法については、「ノートブックインスタンスの作成」を参照してください。Amazon SageMaker サンプルノートブックにアクセスする方法については、「サンプルノートブックの使用」を参照してください。

データの自動ラベル付けに必要な Amazon EC2 インスタンス

次の表は、トレーニングおよびバッチ推論ジョブのためにデータの自動ラベル付けを実行するのに必要な Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの一覧です。

データの自動ラベル付けジョブタイプ トレーニングインスタンスタイプ 推論インスタンスタイプ

イメージ分類

ml.p3.2xlarge*

ml.c5.xlarge

オブジェクトの検出 (境界ボックス)

ml.p3.2xlarge*

ml.c5.4large

テキスト分類

ml.c5.2xlarge

ml.m4.xlarge

セマンティックセグメンテーション

ml.p3.2xlarge*

ml.p3.2xlarge*

* アジアパシフィック (ムンバイ) リージョン (ap-south-1) では、代わりに ml.p2.8xlarge を使用します。

データの自動ラベル付けでは、2 つの料金が別々に発生します。1 項目あたりの料金 (「料金表」を参照) と、モデルの実行に必要な Amazon EC2 インスタンスの料金 (「Amazon EC2 の料金」を参照) です。

Ground Truth は、データの自動ラベル付けジョブに使用するインスタンスを管理し、ジョブの実行に必要なインスタンスを作成、設定、および終了します。これらのインスタンスは、Amazon EC2 インスタンスダッシュボードには表示されません。