From 20dc094dc6a7d64f6bac0c68fa84374a126dd84b Mon Sep 17 00:00:00 2001 From: Ethan Bunce Date: Fri, 18 Oct 2024 13:41:13 +0000 Subject: [PATCH 1/3] Adding sagemaker ground truth labeling module --- .../sagemaker-ground-truth-labeling/README.md | 40 + ...mage_bounding_box_labeling_categories.json | 1 + .../image_bounding_box_labeling_template.html | 28 + ..._bounding_box_verification_categories.json | 1 + ..._bounding_box_verification_template.liquid | 39 + .../sagemaker-ground-truth-labeling.yaml | 34 + ...image_multi_label_labeling_categories.json | 1 + .../image_multi_label_labeling_template.html | 21 + .../sagemaker-ground-truth-labeling.yaml | 21 + ...ntic_segmentation_labeling_categories.json | 1 + ...mantic_segmentation_labeling_template.html | 22 + ..._segmentation_verification_categories.json | 1 + ..._segmentation_verification_template.liquid | 44 + .../sagemaker-ground-truth-labeling.yaml | 34 + ...mage_single_label_labeling_categories.json | 1 + .../image_single_label_labeling_template.html | 19 + .../sagemaker-ground-truth-labeling.yaml | 21 + .../named_entity_recognition_categories.json | 1 + .../sagemaker-ground-truth-labeling.yaml | 19 + .../sagemaker-ground-truth-labeling.yaml | 21 + .../text_multi_label_labeling_categories.json | 1 + .../text_multi_label_labeling_template.html | 25 + .../sagemaker-ground-truth-labeling.yaml | 21 + ...text_single_label_labeling_categories.json | 1 + .../text_single_label_labeling_template.html | 24 + .../sagemaker-ground-truth-labeling/README.md | 146 +++ .../sagemaker-ground-truth-labeling/app.py | 71 ++ .../constants.py | 27 + .../deployspec.yaml | 23 + ...und-truth-labeling-module-architecture.xml | 1 + ...nd-truth-labelling-module-architecture.png | Bin 0 -> 62736 bytes .../docs/_static/stepfunctions_graph.png | Bin 0 -> 60900 bytes ...functions_graph_with_verification_step.png | Bin 0 -> 87636 bytes .../labeling_step_function/__init__.py | 0 .../labeling_state_machine.py | 1076 +++++++++++++++++ .../labeling_step_function/lambda/_utils.py | 100 ++ .../lambda/poll_sqs_queue.py | 132 ++ .../lambda/return_messages_to_sqs_queue.py | 69 ++ .../lambda/run_labeling_job.py | 97 ++ .../lambda/run_verification_job.py | 155 +++ .../lambda/update_feature_store.py | 242 ++++ .../lambda/txt_file_s3_to_sqs_relay.py | 32 + .../pyproject.toml | 45 + .../requirements.txt | 3 + .../settings.py | 101 ++ .../sagemaker-ground-truth-labeling/stack.py | 504 ++++++++ .../task_type_config.py | 234 ++++ .../tests/__init__.py | 0 .../tests/test_app.py | 94 ++ .../tests/test_stack.py | 113 ++ 50 files changed, 3707 insertions(+) create mode 100644 examples/sagemaker-ground-truth-labeling/README.md create mode 100644 examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_template.html create mode 100644 examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_template.liquid create mode 100644 examples/sagemaker-ground-truth-labeling/image_bounding_box/sagemaker-ground-truth-labeling.yaml create mode 100644 examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_template.html create mode 100644 examples/sagemaker-ground-truth-labeling/image_multi_label_classification/sagemaker-ground-truth-labeling.yaml create mode 100644 examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_template.html create mode 100644 examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_template.liquid create mode 100644 examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/sagemaker-ground-truth-labeling.yaml create mode 100644 examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_template.html create mode 100644 examples/sagemaker-ground-truth-labeling/image_single_label_classification/sagemaker-ground-truth-labeling.yaml create mode 100644 examples/sagemaker-ground-truth-labeling/named_entity_recognition/named_entity_recognition_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/named_entity_recognition/sagemaker-ground-truth-labeling.yaml create mode 100644 examples/sagemaker-ground-truth-labeling/text_multi_label_classification/sagemaker-ground-truth-labeling.yaml create mode 100644 examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_template.html create mode 100644 examples/sagemaker-ground-truth-labeling/text_single_label_classification/sagemaker-ground-truth-labeling.yaml create mode 100644 examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_categories.json create mode 100644 examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_template.html create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/README.md create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/app.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/constants.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/deployspec.yaml create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/sagemaker-ground-truth-labeling-module-architecture.xml create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/sagemaker-ground-truth-labelling-module-architecture.png create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/stepfunctions_graph.png create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/stepfunctions_graph_with_verification_step.png create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/__init__.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/labeling_state_machine.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/lambda/_utils.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/lambda/poll_sqs_queue.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/lambda/return_messages_to_sqs_queue.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/lambda/run_labeling_job.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/lambda/run_verification_job.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/labeling_step_function/lambda/update_feature_store.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/lambda/txt_file_s3_to_sqs_relay.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/pyproject.toml create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/requirements.txt create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/settings.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/stack.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/task_type_config.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/tests/__init__.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/tests/test_app.py create mode 100644 modules/sagemaker/sagemaker-ground-truth-labeling/tests/test_stack.py diff --git a/examples/sagemaker-ground-truth-labeling/README.md b/examples/sagemaker-ground-truth-labeling/README.md new file mode 100644 index 00000000..6d6371d4 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/README.md @@ -0,0 +1,40 @@ +# SageMaker Ground truth labeling examples + +### Description + +This folder contains examples for each of the built-in task types for the sagemaker ground truth module. Each folder contains an example manifest as well as any necessary templates. Please upload the templates to an S3 bucket and update the manifest with the correct location. + +### Additional workers + +For tasks without a verification step (all except `image_bounding_box` and `image_semantic_segmentation`) we recommend increasing the number of human reviewers per object to increase accuracy. This will only work if you have at least that many reviewers in your workteam, as the same reviewer cannot review the same item twice. To adjust the number of workers add the additional parameters below to your manifest: + +```yaml + - name: labeling-human-task-config + value: + NumberOfHumanWorkersPerDataObject: 5 + TaskAvailabilityLifetimeInSeconds: 21600 + TaskTimeLimitInSeconds: 300 +``` + +### Using public workforce + +As mentioned in the README you can use a public workforce for your task if you wish (at an additional cost). More information on using a public workforce like Amazon Mechanical Turk is available [here](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management-public.html). Labeling and verification task prices is specified in USD, see [here](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PublicWorkforceTaskPrice.html) for allowed values. [This page](https://aws.amazon.com/sagemaker/groundtruth/pricing/) provides suggested pricing based on task type. To use a public workforce add / adjust the following parameters to your manifest: + +```yaml + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker::394669845002:workteam/public-crowd/default' + - name: labeling-task-price + value: + AmountInUsd: + Dollars: 0 + Cents: 3 + TenthFractionsOfACent: 6 + - name: verification-workteam-arn + value: 'arn:aws:sagemaker::394669845002:workteam/public-crowd/default' + - name: verification-task-price + value: + AmountInUsd: + Dollars: 0 + Cents: 3 + TenthFractionsOfACent: 6 +``` diff --git a/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_categories.json b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_categories.json new file mode 100644 index 00000000..87ea07f8 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_categories.json @@ -0,0 +1 @@ +{"labels": [{"label": "Plane"}, {"label": "Boat"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_template.html b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_template.html new file mode 100644 index 00000000..2a3e890a --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_labeling_template.html @@ -0,0 +1,28 @@ + + + + +
    +
  1. Inspect the image
  2. +
  3. Determine if the specified label is/are visible in the picture.
  4. +
  5. Outline each instance of the specified label in the image using the provided “Box” tool.
  6. +
+
    +
  • Boxes should fit tight around each object
  • +
  • Do not include parts of the object are overlapping or that cannot be seen, even though you think you can interpolate the whole shape.
  • +
  • Avoid including shadows.
  • +
  • If the target is off screen, draw the box up to the edge of the image.
  • +
+
+ + + Outline each instance of the specified label in the image using the provided “Box” tool. + + +
+
diff --git a/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_categories.json b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_categories.json new file mode 100644 index 00000000..dd879e0d --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_categories.json @@ -0,0 +1 @@ +{"labels":[{"label":"Label(s) correct"},{"label":"Incorrect label - missed object"},{"label":"Incorrect label - bounding box not accurate enough"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_template.liquid b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_template.liquid new file mode 100644 index 00000000..3d529af9 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_bounding_box/image_bounding_box_verification_template.liquid @@ -0,0 +1,39 @@ + + + + +
    +
  1. Read the task carefully and inspect the image.
  2. +
  3. Read the options and review the examples provided to understand more about the labels.
  4. +
  5. Choose the appropriate label that best suits the image.
  6. +
+
+ + Choose the appropriate label that best suits the image. + + +
+
diff --git a/examples/sagemaker-ground-truth-labeling/image_bounding_box/sagemaker-ground-truth-labeling.yaml b/examples/sagemaker-ground-truth-labeling/image_bounding_box/sagemaker-ground-truth-labeling.yaml new file mode 100644 index 00000000..3bb14b25 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_bounding_box/sagemaker-ground-truth-labeling.yaml @@ -0,0 +1,34 @@ +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +targetAccount: primary +parameters: + - name: job_name + value: 'plane-and-boat-bounding-box' + - name: task_type + value: 'image_bounding_box' + + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-instructions-template-s3-uri + value: 's3:///image_bounding_box_labeling_template.html' + - name: labeling-categories-s3-uri + value: 's3:///image_bounding_box_labeling_categories.json' + - name: labeling-task-title + value: 'Labeling - Bounding boxes: Draw bounding boxes around all planes and boats in the image' + - name: labeling-task-description + value: 'Draw bounding boxes around all planes and boats in the image' + - name: labeling-task-keywords + value: [ 'image', 'object', 'detection' ] + + - name: verification-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: verification-instructions-template-s3-uri + value: 's3:///image_bounding_box_verification_template.liquid' + - name: verification-categories-s3-uri + value: 's3:///image_bounding_box_verification_categories.json' + - name: verification-task-title + value: 'Label verification - Bounding boxes: Review the existing labels on the objects and choose the appropriate option.' + - name: verification-task-description + value: 'Verify that all of the planes and boats in the image are correctly labeled' + - name: verification-task-keywords + value: ['image', 'object', 'detection', 'label verification', 'bounding boxes'] \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_categories.json b/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_categories.json new file mode 100644 index 00000000..87ea07f8 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_categories.json @@ -0,0 +1 @@ +{"labels": [{"label": "Plane"}, {"label": "Boat"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_template.html b/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_template.html new file mode 100644 index 00000000..32c4cfa5 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/image_multi_label_labeling_template.html @@ -0,0 +1,21 @@ + + + + +

If more than one label applies to the image, select multiple labels.

+

If no labels apply, select None of the above

+
+ + +

Read the task carefully and inspect the image.

+

Choose the appropriate label(s) that best suit the image.

+ +
+
+
\ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/sagemaker-ground-truth-labeling.yaml b/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/sagemaker-ground-truth-labeling.yaml new file mode 100644 index 00000000..3738f47c --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_multi_label_classification/sagemaker-ground-truth-labeling.yaml @@ -0,0 +1,21 @@ +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +targetAccount: primary +parameters: + - name: job_name + value: 'vehicle-classification' + - name: task_type + value: 'image_multi_label_classification' + + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-instructions-template-s3-uri + value: 's3:///image_multi_label_labeling_template.html' + - name: labeling-categories-s3-uri + value: 's3:///image_multi_label_labeling_categories.json' + - name: labeling-task-title + value: 'Labeling - Multi-Classification: Classify all images as containing a plane and/or a boat' + - name: labeling-task-description + value: 'Classify all images as containing a plane and/or a boat, selecting all of the appropriate labels' + - name: labeling-task-keywords + value: [ 'image', 'object', 'multi classification' ] \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_categories.json b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_categories.json new file mode 100644 index 00000000..87ea07f8 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_categories.json @@ -0,0 +1 @@ +{"labels": [{"label": "Plane"}, {"label": "Boat"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_template.html b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_template.html new file mode 100644 index 00000000..fb8ed208 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_labeling_template.html @@ -0,0 +1,22 @@ + + + + +
    +
  1. Read the task carefully and inspect the image.
  2. +
  3. Read the options and review the examples provided to understand more about the labels.
  4. +
  5. Choose the appropriate label that best suits the image.
  6. +
+
+ + + Use the tools to label the requested items in the image + + +
+
diff --git a/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_categories.json b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_categories.json new file mode 100644 index 00000000..eb09eb86 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_categories.json @@ -0,0 +1 @@ +{"labels":[{"label":"Label(s) correct"},{"label":"Incorrect label - missed object"},{"label":"Incorrect label - segmentation not accurate enough"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_template.liquid b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_template.liquid new file mode 100644 index 00000000..8dff9576 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/image_semantic_segmentation_verification_template.liquid @@ -0,0 +1,44 @@ + + + + +
    +
  1. Read the task carefully and inspect the image.
  2. +
  3. Read the options and review the examples provided to understand more about the labels.
  4. +
  5. Choose the appropriate label that best suits the image.
  6. +
+
+ + Choose the appropriate label that best suits the image. + + +
+
\ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/sagemaker-ground-truth-labeling.yaml b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/sagemaker-ground-truth-labeling.yaml new file mode 100644 index 00000000..c0ef1210 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_semantic_segmentation/sagemaker-ground-truth-labeling.yaml @@ -0,0 +1,34 @@ +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +targetAccount: primary +parameters: + - name: job_name + value: 'plane-and-boat-sem-seg' + - name: task_type + value: 'image_semantic_segmentation' + + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-instructions-template-s3-uri + value: 's3:///image_semantic_segmentation_labeling_template.html' + - name: labeling-categories-s3-uri + value: 's3:///image_semantic_segmentation_labeling_categories.json' + - name: labeling-task-title + value: 'Labeling - Semantic segmentation: Fill all planes and boats in the image' + - name: labeling-task-description + value: 'Fill all planes and boats in the image using the appropriate label' + - name: labeling-task-keywords + value: [ 'image', 'object', 'detection' ] + + - name: verification-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: verification-instructions-template-s3-uri + value: 's3:///image_semantic_segmentation_verification_template.liquid' + - name: verification-categories-s3-uri + value: 's3:///image_semantic_segmentation_verification_categories.json' + - name: verification-task-title + value: 'Label verification - Semantic segmentation: Review the existing labels on the objects and choose the appropriate option.' + - name: verification-task-description + value: 'Verify that all of the planes and boats in the image are correctly labeled' + - name: verification-task-keywords + value: ['image', 'object', 'detection', 'label verification', 'semantic segmentation'] \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_categories.json b/examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_categories.json new file mode 100644 index 00000000..6f17cf3e --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_categories.json @@ -0,0 +1 @@ +{"labels": [{"label": "Plane"}, {"label": "Boat"}, {"label": "Neither"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_template.html b/examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_template.html new file mode 100644 index 00000000..fd8e707c --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_single_label_classification/image_single_label_labeling_template.html @@ -0,0 +1,19 @@ + + + + +

Read the task carefully and inspect the image.

+

Choose the appropriate label that best suits the image.

+
+ + + Choose the appropriate label that best suits the image. + + +
+
\ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/image_single_label_classification/sagemaker-ground-truth-labeling.yaml b/examples/sagemaker-ground-truth-labeling/image_single_label_classification/sagemaker-ground-truth-labeling.yaml new file mode 100644 index 00000000..276e5ed6 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/image_single_label_classification/sagemaker-ground-truth-labeling.yaml @@ -0,0 +1,21 @@ +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +targetAccount: primary +parameters: + - name: job_name + value: 'vehicle-classification' + - name: task_type + value: 'image_single_label_classification' + + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-instructions-template-s3-uri + value: 's3:///image_single_label_labeling_template.html' + - name: labeling-categories-s3-uri + value: 's3:///image_single_label_labeling_categories.json' + - name: labeling-task-title + value: 'Labeling - Classification: Classify all images as containing a plane or a boat' + - name: labeling-task-description + value: 'Classify all images as containing a plane or a boat using the appropriate label' + - name: labeling-task-keywords + value: [ 'image', 'object', 'classification' ] \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/named_entity_recognition/named_entity_recognition_categories.json b/examples/sagemaker-ground-truth-labeling/named_entity_recognition/named_entity_recognition_categories.json new file mode 100644 index 00000000..b03d4dc5 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/named_entity_recognition/named_entity_recognition_categories.json @@ -0,0 +1 @@ +{"labels": [{"label": "Person"}, {"label": "Organisation"}, {"label": "Time"}, {"label": "Location"}, {"label": "Capital City"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/named_entity_recognition/sagemaker-ground-truth-labeling.yaml b/examples/sagemaker-ground-truth-labeling/named_entity_recognition/sagemaker-ground-truth-labeling.yaml new file mode 100644 index 00000000..d910509c --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/named_entity_recognition/sagemaker-ground-truth-labeling.yaml @@ -0,0 +1,19 @@ +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +targetAccount: primary +parameters: + - name: job_name + value: 'named-entity-recognition' + - name: task_type + value: 'named_entity_recognition' + + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-categories-s3-uri + value: 's3:///named_entity_recognition_categories.json' + - name: labeling-task-title + value: 'Labeling - Named entity recognition: Indentify all entities in the text' + - name: labeling-task-description + value: 'Evaluate all texts and select the identify the entities from the provided values' + - name: labeling-task-keywords + value: [ 'text', 'named entity recognition', 'detection' ] \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/sagemaker-ground-truth-labeling.yaml b/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/sagemaker-ground-truth-labeling.yaml new file mode 100644 index 00000000..216f0ced --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/sagemaker-ground-truth-labeling.yaml @@ -0,0 +1,21 @@ +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +targetAccount: primary +parameters: + - name: job_name + value: 'text-multi-classification' + - name: task_type + value: 'text_multi_label_classification' + + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-instructions-template-s3-uri + value: 's3:///text_multi_label_labeling_template.html' + - name: labeling-categories-s3-uri + value: 's3:///text_multi_label_labeling_categories.json' + - name: labeling-task-title + value: 'Labeling - Multi-Classification: Classify all texts using the labels' + - name: labeling-task-description + value: 'Classify all texts selecting all of the appropriate labels' + - name: labeling-task-keywords + value: [ 'text', 'multi classification', 'sentiment' ] \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_categories.json b/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_categories.json new file mode 100644 index 00000000..413500f9 --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_categories.json @@ -0,0 +1 @@ +{"labels": [{"label": "Positive"}, {"label": "Negative"}, {"label": "Neutral"}, {"label": "Review"}, {"label": "Message"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_template.html b/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_template.html new file mode 100644 index 00000000..fcd71e7c --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/text_multi_label_classification/text_multi_label_labeling_template.html @@ -0,0 +1,25 @@ + + + + + {{ task.input.taskObject }} + + + +

Positive sentiment include: joy, excitement, delight

+

Negative sentiment include: anger, sarcasm, anxiety

+

Neutral: neither positive or negative, such as stating a fact

+

When the sentiment is mixed, such as both joy and sadness, use your judgment to choose the stronger emotion.

+
+ + + Choose all categories that are expressed by the text. + + +
+
\ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/text_single_label_classification/sagemaker-ground-truth-labeling.yaml b/examples/sagemaker-ground-truth-labeling/text_single_label_classification/sagemaker-ground-truth-labeling.yaml new file mode 100644 index 00000000..bae5949e --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/text_single_label_classification/sagemaker-ground-truth-labeling.yaml @@ -0,0 +1,21 @@ +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +targetAccount: primary +parameters: + - name: job_name + value: 'sentiment-classification' + - name: task_type + value: 'text_single_label_classification' + + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-instructions-template-s3-uri + value: 's3:///text_single_label_labeling_template.html' + - name: labeling-categories-s3-uri + value: 's3:///text_single_label_labeling_categories.json' + - name: labeling-task-title + value: 'Labeling - Classification: Classify all texts as either positive, neutral or negative' + - name: labeling-task-description + value: 'Classify all texts as either positive, neutral or negative' + - name: labeling-task-keywords + value: [ 'text', 'classification', 'sentiment' ] \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_categories.json b/examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_categories.json new file mode 100644 index 00000000..4b91087f --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_categories.json @@ -0,0 +1 @@ +{"labels": [{"label": "Positive"}, {"label": "Negative"}, {"label": "Neutral"}]} \ No newline at end of file diff --git a/examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_template.html b/examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_template.html new file mode 100644 index 00000000..dbc5c22c --- /dev/null +++ b/examples/sagemaker-ground-truth-labeling/text_single_label_classification/text_single_label_labeling_template.html @@ -0,0 +1,24 @@ + + + + + {{ task.input.taskObject }} + + + +

Positive sentiment include: joy, excitement, delight

+

Negative sentiment include: anger, sarcasm, anxiety

+

Neutral: neither positive or negative, such as stating a fact

+

When the sentiment is mixed, such as both joy and sadness, use your judgment to choose the stronger emotion.

+
+ + + Choose the most relevant category that is expressed by the text. + + +
+
\ No newline at end of file diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/README.md b/modules/sagemaker/sagemaker-ground-truth-labeling/README.md new file mode 100644 index 00000000..1d9aef67 --- /dev/null +++ b/modules/sagemaker/sagemaker-ground-truth-labeling/README.md @@ -0,0 +1,146 @@ +# SageMaker Ground truth labeling + +## Description + +This module creates a workflow for labeling data using SageMaker ground truth. + +A bucket is created to store the raw data. Data uploaded to the S3 bucket is then sent to a created SQS queue. If a text job type is selected the contents of `.txt` files uploaded to the bucket is sent to the SQS queue, instead of the file location. A step function is created that runs on a schedule, pulling the unlabeled data from the SQS queue. The function then runs a labeling job, followed by a verification job (only on supported job types, see below) to increase the accuracy of the labeling. Labeled items that fail validation are returned to the SQS queue for relabelling. New labels are then saved to a created Sagemaker feature group. + +This module assumes that uploaded content will be free of `Personally Identifiable Information (PII)` and `Adult content`. If this is not the case please remove the appropiate content classifiers from the `create_labeling_job` method. + +### Architecture + +![SageMaker Ground Truth Labeling Module Architecture](docs/_static/sagemaker-ground-truth-labeling-module-architecture.png "SageMaker Ground Truth Labeling Module Architecture") + +### Step function example + +![Step function graph](docs/_static/stepfunctions_graph.png "Step function graph") + +#### With verification step + +![Step function graph with verification step](docs/_static/stepfunctions_graph_with_verification_step.png "Step function graph with verification step") + +## Inputs/Outputs + +### Input Parameters + +#### Required + +- `job-name`: Used as prefix for created resources and executions of workflow +- `task-type`: The labeling task type to be carried out (read more [here](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)). Currently this module supports all built in task types for images and text. +Allowed values are: + - [`image_bounding_box`](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-bounding-box.html) + - [`image_semantic_segmentation`](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-semantic-segmentation.html) + - [`image_single_label_classification`](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-image-classification.html) + - [`image_multi_label_classification`](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-image-classification-multilabel.html) + - [`text_single_label_classification`](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-text-classification.html) + - [`text_multi_label_classification`](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-text-classification-multilabel.html) + - [`named_entity_recognition`](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-named-entity-recg.html) +- `labeling-workteam-arn` - ARN of the workteam to carry out the labeling task, can be public or private + - `labeling-task-price` - Required if public team is to be used +- `labeling-instructions-template-s3-uri` - S3 URI of the labeling template `.html` or `.liquid` file + - Required for all labeling types _except_ `named_entity_recognition` +- `labeling-categories-s3-uri` - S3 URI of the labeling categories `.json` file +- `labeling-task-title` +- `labeling-task-description` +- `labeling-task-keywords` + +For job types supporting verification, currently `image_bounding_box` and `image_semantic_segmentation` further additional fields are required + +- `verification-workteam-arn` - ARN of the workteam to carry out the verification task, can be public or private + - `verification-task-price` - Required if public team is to be used +- `verification-instructions-template-s3-uri` - S3 URI of the verification template `.html` or `.liquid` file +- `verification-categories-s3-uri` - S3 URI of the verification categories `.json` file. The first label must be the label to pass validation, all other labels are validation failures. +- `verification-task-title` +- `verification-task-description` +- `verification-task-keywords` + +For more information and examples of the templates please look at the examples. There are also multiple templates available [here](https://github.com/aws-samples/amazon-sagemaker-ground-truth-task-uis/tree/master). + +Labeling and verification task title, description and keywords are used to create the task config which will be sent to the human carrying out the labeling or verification job. + +More information on using a public workforce like Amazon Mechanical Turk is available [here](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management-public.html). Labeling and verification task prices is specified in USD, see [here](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_PublicWorkforceTaskPrice.html) for allowed values. [This page](https://aws.amazon.com/sagemaker/groundtruth/pricing/) provides suggested pricing based on task type. + +#### Optional + +- `labeling-human-task-config`: Additional configuration parameters for labeling job. For tasks without a verification step we recommend increasing the number of human workers per data object, to increase accuracy. Depending on task complexity you might want to increase the task time limit. Default is: + - `NumberOfHumanWorkersPerDataObject`: 1 + - `TaskAvailabilityLifetimeInSeconds`: 21600 (6 hours) + - `TaskTimeLimitInSeconds`: 300 (5 minutes) +- `verification-human-task-config`: Additional configuration parameters for verification job. Default is: + - `NumberOfHumanWorkersPerDataObject`: 1 + - `TaskAvailabilityLifetimeInSeconds`: 21600 (6 hours) + - `TaskTimeLimitInSeconds`: 300 (5 minutes) +- `labeling-workflow-schedule`: CRON schedule for how often the workflow should run. Default is `cron(0 12 * * ? *)` (midday UTC daily), empty string ('') to disable +- `sqs-queue-retention-period`: Upload queue retention period in minutes. Default is 20160 (14 days) +- `sqs-queue-visibility-timeout`: Upload queue visibility timeout in minutes. Default is 720 (12 hours) +- `sqs-queue-max-receive-count`: Default is 3 +- `sqs-dlq-retention-period`: DLQ retention period in minutes, suggest setting to a high value to ensure they are caught and re-driven before deletion. Default is 20160 (14 days) +- `sqs-dlq-visibility-timeout`: DLQ visibility timeout in minutes. Default is 720 (12 hours) +- `sqs-dlq-alarm-threshold` - Number of messages in the DLQ on which to alarm. Default is 1, 0 to disable + +`labeling-workflow-schedule` and the SQS queue parameters should be set to values that ensure the workflow can run at least as many times as the `maxRecieveCount` before the `retentionPeriod` is reached, to avoid messages being deleted upon reaching the `retentionPeriod`, instead of being sent to the DLQ + +### Sample manifest declaration + +```yaml +name: ground-truth-labeling +path: modules/sagemaker/sagemaker-ground-truth-labeling +parameters: + - name: job_name + value: 'plane-identification' + - name: task_type + value: 'image_bounding_box' + - name: labeling-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: labeling-instructions-template-s3-uri + value: 's3:///' + - name: labeling-categories-s3-uri + value: 's3:///' + - name: labeling-task-title + value: 'Labeling - Bounding boxes: Draw bounding boxes around all planes in the image' + - name: labeling-task-description + value: 'Draw bounding boxes around all planes in the image' + - name: labeling-task-keywords + value: [ 'image', 'object', 'detection' ] + - name: verification-workteam-arn + value: 'arn:aws:sagemaker:::workteam/private-crowd/' + - name: verification-instructions-template-s3-uri + value: 's3:///' + - name: verification-categories-s3-uri + value: 's3:///' + - name: verification-task-title + value: 'Label verification - Bounding boxes: Review the existing labels on the objects and choose the appropriate option.' + - name: verification-task-description + value: 'Verify that the planes are correctly labeled' + - name: verification-task-keywords + value: ['image', 'object', 'detection', 'label verification', 'bounding boxes'] +``` + +### Module Metadata Outputs + +- `DataStoreBucketName`: Name of the created S3 bucket where the user will upload the raw data +- `DataStoreBucketArn`: ARN of the created S3 bucket where the user will upload the raw data +- `SqsQueueName`: Name of the created SQS queue +- `SqsQueueArn`: ARN of the created SQS queue +- `SqsDlqName`: Name of the created SQS DLQ +- `SqsDlqArn`: ARN of the created SQS DLQ +- `LabelingStateMachineName`: Name of the labeling state machine +- `LabelingStateMachineArn`: ARN of the labeling state machine +- `FeatureGroupName`: Name of the feature group + +#### Output Example + +```json +{ + "DataStoreBucketName": "aiops-mlops-sagemaker-sagemaker--upload-bucket", + "DataStoreBucketArn": "arn:aws:s3:::aiops-mlops-sagemaker-sagemaker--upload-bucket", + "SqsQueueName": "aiops-mlops-sagemaker-sagemaker-ground-truth-ground-truth--upload-queue", + "SqsQueueArn": "arn:aws:sqs:::aiops-mlops-sagemaker-sagemaker-ground-truth-ground-truth--upload-queue", + "SqsDlqName": "aiops-mlops-sagemaker-sagemaker-ground-truth-ground-truth--upload-dlq", + "SqsDlqArn": "arn:aws:sqs:::aiops-mlops-sagemaker-sagemaker-ground-truth-ground-truth--upload-dlq", + "LabelingStateMachineName": "aiops-mlops-sagemaker-sagemaker-ground-truth-ground-truth--state-machine", + "LabelingStateMachineArn": "arn:aws:states:::stateMachine:aiops-mlops-sagemaker-sagemaker-ground-truth-ground-truth--state-machine", + "FeatureGroupName": "aiops-mlops-sagemaker-sagemaker--sagemaker-feature-group" +} +``` diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/app.py b/modules/sagemaker/sagemaker-ground-truth-labeling/app.py new file mode 100644 index 00000000..c8f59049 --- /dev/null +++ b/modules/sagemaker/sagemaker-ground-truth-labeling/app.py @@ -0,0 +1,71 @@ +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +import aws_cdk +import cdk_nag + +from settings import ApplicationSettings +from stack import DeployGroundTruthLabelingStack + +app = aws_cdk.App() +app_settings = ApplicationSettings() + +stack = DeployGroundTruthLabelingStack( + scope=app, + id=app_settings.seedfarmer_settings.app_prefix, + job_name=app_settings.module_settings.job_name, + task_type=app_settings.module_settings.task_type, + sqs_queue_retention_period=app_settings.module_settings.sqs_queue_retention_period, + sqs_queue_visibility_timeout=app_settings.module_settings.sqs_queue_visibility_timeout, + sqs_queue_max_receive_count=app_settings.module_settings.sqs_queue_max_receive_count, + sqs_dlq_retention_period=app_settings.module_settings.sqs_dlq_retention_period, + sqs_dlq_visibility_timeout=app_settings.module_settings.sqs_dlq_visibility_timeout, + sqs_dlq_alarm_threshold=app_settings.module_settings.sqs_dlq_alarm_threshold, + labeling_workteam_arn=app_settings.module_settings.labeling_workteam_arn, + labeling_instructions_template_s3_uri=app_settings.module_settings.labeling_instructions_template_s3_uri, + labeling_categories_s3_uri=app_settings.module_settings.labeling_categories_s3_uri, + labeling_task_title=app_settings.module_settings.labeling_task_title, + labeling_task_description=app_settings.module_settings.labeling_task_description, + labeling_task_keywords=app_settings.module_settings.labeling_task_keywords, + labeling_human_task_config=app_settings.module_settings.labeling_human_task_config, + labeling_task_price=app_settings.module_settings.labeling_task_price, + verification_workteam_arn=app_settings.module_settings.verification_workteam_arn, + verification_instructions_template_s3_uri=app_settings.module_settings.verification_instructions_template_s3_uri, + verification_categories_s3_uri=app_settings.module_settings.verification_categories_s3_uri, + verification_task_title=app_settings.module_settings.verification_task_title, + verification_task_description=app_settings.module_settings.verification_task_description, + verification_task_keywords=app_settings.module_settings.verification_task_keywords, + verification_human_task_config=app_settings.module_settings.verification_human_task_config, + verification_task_price=app_settings.module_settings.verification_task_price, + labeling_workflow_schedule=app_settings.module_settings.labeling_workflow_schedule, + env=aws_cdk.Environment( + account=app_settings.cdk_settings.account, + region=app_settings.cdk_settings.region, + ), +) + +aws_cdk.CfnOutput( + scope=stack, + id="metadata", + value=stack.to_json_string( + { + "DataStoreBucketName": stack.upload_bucket.bucket_name, + "DataStoreBucketArn": stack.upload_bucket.bucket_arn, + "SqsQueueName": stack.upload_queue.queue_name, + "SqsQueueArn": stack.upload_queue.queue_arn, + "SqsDlqName": stack.upload_dlq.queue_name, + "SqsDlqArn": stack.upload_dlq.queue_arn, + "LabelingStateMachineName": stack.labeling_state_machine.state_machine_name, + "LabelingStateMachineArn": stack.labeling_state_machine.state_machine_arn, + "FeatureGroupName": stack.feature_group.feature_group_name, + } + ), +) + +aws_cdk.Aspects.of(app).add(cdk_nag.AwsSolutionsChecks(log_ignores=True)) + +aws_cdk.Tags.of(app).add("SeedFarmerDeploymentName", app_settings.seedfarmer_settings.deployment_name) +aws_cdk.Tags.of(app).add("SeedFarmerModuleName", app_settings.seedfarmer_settings.module_name) +aws_cdk.Tags.of(app).add("SeedFarmerProjectName", app_settings.seedfarmer_settings.project_name) + +app.synth() diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/constants.py b/modules/sagemaker/sagemaker-ground-truth-labeling/constants.py new file mode 100644 index 00000000..6b30982c --- /dev/null +++ b/modules/sagemaker/sagemaker-ground-truth-labeling/constants.py @@ -0,0 +1,27 @@ +import aws_cdk.aws_lambda as lambda_ + +MAX_BUCKET_NAME_LENGTH = 63 +MAX_SQS_QUEUE_NAME_LENGTH = 80 +MAX_FEATURE_GROUP_NAME_LENGTH = 64 +MAX_ROLE_NAME_LENGTH = 64 +MAX_STATE_MACHINE_NAME_LENGTH = 80 +MAX_LAMBDA_FUNCTION_NAME_LENGTH = 64 + +# map of lambda function Id, you can see the current list here: +# https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AnnotationConsolidationConfig.html#SageMaker-Type-AnnotationConsolidationConfig-AnnotationConsolidationLambdaArn +AC_ARN_MAP = { + "us-east-1": "432418664414", + "us-east-2": "266458841044", + "us-west-2": "081040173940", + "eu-west-1": "568282634449", + "ap-northeast-1": "477331159723", + "ap-southeast-2": "454466003867", + "ap-south-1": "565803892007", + "eu-central-1": "203001061592", + "ap-northeast-2": "845288260483", + "eu-west-2": "487402164563", + "ap-southeast-1": "377565633583", + "ca-central-1": "918755190332", +} + +LAMBDA_RUNTIME = lambda_.Runtime.PYTHON_3_12 diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/deployspec.yaml b/modules/sagemaker/sagemaker-ground-truth-labeling/deployspec.yaml new file mode 100644 index 00000000..fea2cc1d --- /dev/null +++ b/modules/sagemaker/sagemaker-ground-truth-labeling/deployspec.yaml @@ -0,0 +1,23 @@ +publishGenericEnvVariables: true +deploy: + phases: + install: + commands: + - env + # Install whatever additional build libraries + - npm install -g aws-cdk@2.158.0 + - pip install -r requirements.txt + build: + commands: + - cdk deploy --require-approval never --progress events --app "python app.py" --outputs-file ./cdk-exports.json +destroy: + phases: + install: + commands: + # Install whatever additional build libraries + - npm install -g aws-cdk@2.158.0 + - pip install -r requirements.txt + build: + commands: + # execute the CDK + - cdk destroy --force --app "python app.py" diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/sagemaker-ground-truth-labeling-module-architecture.xml b/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/sagemaker-ground-truth-labeling-module-architecture.xml new file mode 100644 index 00000000..307327da --- /dev/null +++ b/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/sagemaker-ground-truth-labeling-module-architecture.xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/sagemaker-ground-truth-labelling-module-architecture.png b/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/sagemaker-ground-truth-labelling-module-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b6b65598abc0409855fc605d57f3b8c4f54cfc GIT binary patch literal 62736 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

{LGPQpf%8HpvyEj< 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

?f?E&)S+LC_>7Y^;Vm_UVa-dIP7WE1?S~k; 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 CU#(C8 literal 0 HcmV?d00001 diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/stepfunctions_graph.png b/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/stepfunctions_graph.png new file mode 100644 index 0000000000000000000000000000000000000000..c1ab409e19c2c140e20858bcfc2a6155d83759c4 GIT binary patch literal 60900 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 Of9J54rbQU%=>G!!@!o&{ literal 0 HcmV?d00001 diff --git a/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/stepfunctions_graph_with_verification_step.png b/modules/sagemaker/sagemaker-ground-truth-labeling/docs/_static/stepfunctions_graph_with_verification_step.png new file mode 100644 index 0000000000000000000000000000000000000000..8760ca9ad35214ce656b12398d870713c993bac0 GIT binary patch literal 87636 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