View a markdown version of this page

前注釈と後注釈の Lambda 関数をテストする - Amazon SageMaker AI

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

前注釈と後注釈の Lambda 関数をテストする

注記

Amazon SageMaker Ground Truth は新規顧客に公開されなくなりました。既存のお客様は、引き続き通常どおりサービスを使用できます。 AWS は引き続き Ground Truth のセキュリティと可用性の向上に投資しますが、新機能を導入する予定はありません。

Lambda コンソールで、注釈前と注釈後の Lambda 関数をテストできます。Lambda を初めて使用する場合は、 AWS Lambda デベロッパーガイドのコンソールで Lambda 関数を作成するのチュートリアルを使用し、Lambda 関数をコンソールでテストまたは呼び出す方法を学習できます。このページのセクションを使用して、 AWS Serverless Application Repository (SAR) を通じて提供される Ground Truth 注釈前テンプレートと注釈後テンプレートをテストする方法について説明します。

前提条件

このページで説明されているテストを使用するには、次の操作を行う必要があります。

  • Lambda コンソールへのアクセスと、Lambda 関数を作成して呼び出すためのアクセス許可が必要です。これらのアクセス許可の設定方法については、「AWS Lambda 関数を作成および選択するアクセス許可を付与する」を参照してください。

  • Ground Truth SAR レシピをデプロイしていない場合は、「Ground Truth テンプレートを使用して Lambda 関数を作成する」の手順を使用してデプロイします。

  • 注釈後の Lambda 関数をテストするには、Amazon S3 にサンプル注釈データを含むデータファイルが必要です。簡単なテストでは、次のコードをコピーしてファイルに貼り付け、sample-annotations.json として保存し、このファイルを Amazon S3 にアップロードします。このファイルの S3 URI を記録しておきます。注釈後の Lambda テストを設定する際にこの情報が必要です。

    [{"datasetObjectId":"0","dataObject":{"content":"To train a machine learning model, you need a large, high-quality, labeled dataset. Ground Truth helps you build high-quality training datasets for your machine learning models."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":8,\"label\":\"verb\",\"startOffset\":3},{\"endOffset\":27,\"label\":\"adjective\",\"startOffset\":11},{\"endOffset\":33,\"label\":\"object\",\"startOffset\":28},{\"endOffset\":51,\"label\":\"adjective\",\"startOffset\":46},{\"endOffset\":65,\"label\":\"adjective\",\"startOffset\":53},{\"endOffset\":74,\"label\":\"adjective\",\"startOffset\":67},{\"endOffset\":82,\"label\":\"adjective\",\"startOffset\":75},{\"endOffset\":102,\"label\":\"verb\",\"startOffset\":97},{\"endOffset\":112,\"label\":\"verb\",\"startOffset\":107},{\"endOffset\":125,\"label\":\"adjective\",\"startOffset\":113},{\"endOffset\":134,\"label\":\"adjective\",\"startOffset\":126},{\"endOffset\":143,\"label\":\"object\",\"startOffset\":135},{\"endOffset\":169,\"label\":\"adjective\",\"startOffset\":153},{\"endOffset\":176,\"label\":\"object\",\"startOffset\":170}]}}"}}]},{"datasetObjectId":"1","dataObject":{"content":"Sift 3 cups of flour into the bowl."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":4,\"label\":\"verb\",\"startOffset\":0},{\"endOffset\":6,\"label\":\"number\",\"startOffset\":5},{\"endOffset\":20,\"label\":\"object\",\"startOffset\":15},{\"endOffset\":34,\"label\":\"object\",\"startOffset\":30}]}}"}}]},{"datasetObjectId":"2","dataObject":{"content":"Jen purchased 10 shares of the stock on Janurary 1st, 2020."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":3,\"label\":\"person\",\"startOffset\":0},{\"endOffset\":13,\"label\":\"verb\",\"startOffset\":4},{\"endOffset\":16,\"label\":\"number\",\"startOffset\":14},{\"endOffset\":58,\"label\":\"date\",\"startOffset\":40}]}}"}}]},{"datasetObjectId":"3","dataObject":{"content":"The narrative was interesting, however the character development was weak."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":29,\"label\":\"adjective\",\"startOffset\":18},{\"endOffset\":73,\"label\":\"adjective\",\"startOffset\":69}]}}"}}]}]
  • 注釈にアクセスするための注釈後の Lambda アクセス許可を付与する の指示を使用して、注釈後 Lambda 関数の実行ロールに、ラベル付けジョブの作成に使用する SageMaker AI 実行ロールを引き受けるためのアクセス許可を付与する必要があります。注釈後 Lambda 関数は、SageMaker AI 実行ロールを使用して注釈データファイル、S3 にある sample-annotations.json にアクセスします。

注釈前 Lambda 関数をテストする

Ground Truth AWS Serverless Application Repository (SAR) レシピをデプロイしたときに作成された注釈前 Lambda 関数をテストするには、次の手順に従います。

Ground Truth SAR レシピの注釈前 Lambda 関数をテストする
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. Ground Truth SAR レシピからデプロイされた注釈前関数を選択します。この関数の名前は、serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-<id> と同様の名前になります。

  3. [Code source] (コードソース) セクションで、[Test] (テスト) の横にある矢印を選択します。

  4. [Configure test event] (テストイベントを構成する) を選択します。

  5. [Create new test event] (新しいテストイベントの作成) オプションを選択したままにします。

  6. [Event template] (イベントテンプレート) で、[SageMaker Ground Truth PreHumanTask] を選択します。

  7. テストにイベント名を付けます。

  8. [作成] を選択します。

  9. 再度 Test (テスト) の横にある矢印を選択すると、作成したテストが選択されて表示されます。これはイベント名のドットで識別できます。選択されていない場合は、選択します。

  10. [Test] (テスト) を選択して、テストを実行します。

テストを実行した後、[Execution results] (実行結果) を表示できます。[Function logs] (関数ログ) に、次のような応答が表示されます。

START RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f Version: $LATEST Received event: { "version": "2018-10-16", "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job", "dataObject": { "source-ref": "s3://sagemakerexample/object_to_annotate.jpg" } } {'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'} END RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f REPORT RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f Duration: 0.42 ms Billed Duration: 1 ms Memory Size: 128 MB Max Memory Used: 43 MB

この応答では、Lambda 関数の出力が必須の注釈前応答構文と一致していることがわかります。

{'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'}

注釈後 Lambda 関数をテストする

Ground Truth AWS Serverless Application Repository (SAR) レシピをデプロイしたときに作成された注釈後の Lambda 関数をテストするには、次の手順に従います。

Ground Truth SAR レシピ注釈後の Lambda 関数をテストする
  1. Lambda コンソールの [Functions] (関数) ページを開きます。

  2. Ground Truth SAR レシピからデプロイされた注釈後関数を選択します。この関数の名前は、serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-<id> と同様の名前になります。

  3. [Code source] (コードソース) セクションで、[Test] (テスト) の横にある矢印を選択します。

  4. [Configure test event] (テストイベントを構成する) を選択します。

  5. [Create new test event] (新しいテストイベントの作成) オプションを選択したままにします。

  6. [Event template] (イベントテンプレート)で、[SageMaker Ground Truth AnnotationConsolidation] を選択します。

  7. テストにイベント名を付けます。

  8. 指定されたテンプレートコードを次のように変更します。

    • roleArn の Amazon リソースネーム (ARN) を、ラベル付けジョブの作成に使用した SageMaker AI 実行ロールの ARN に置き換えます。

    • s3Uri の S3 URI を、Amazon S3 に追加した sample-annotations.json ファイルの URIに置き換えます。

    これらの変更を行った後、テストは次のようになります。

    { "version": "2018-10-16", "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job", "labelAttributeName": "example-attribute", "roleArn": "arn:aws:iam::222222222222:role/sm-execution-role", "payload": { "s3Uri": "s3://your-bucket/sample-annotations.json" } }
  9. [作成] を選択します。

  10. 再度 Test (テスト) の横にある矢印を選択すると、作成したテストが選択されて表示されます。これはイベント名のドットで識別できます。選択されていない場合は、選択します。

  11. [Test] (テスト) を選択して、テストを実行します。

テストの実行後、[Function Logs] (関数ログ) に「-- Consolidated Output --」セクションが表示されます。これには、sample-annotations.json に含まれるすべての注釈のリストが掲載されています。