인적 루프 생성 및 시작 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인적 루프 생성 및 시작

인적 루프는 인적 검토 워크플로를 시작하고 인적 작업자에게 데이터 검토 작업을 전송합니다. Amazon A2I의 기본 제공 작업 유형 중 하나를 사용하는 경우 흐름 정의에 지정된 조건이 충족되면 해당 AWS 서비스가 사용자를 대신하여 휴먼 루프를 생성하고 시작합니다. 흐름 정의에 지정된 조건이 없으면 각 객체에 대해 인적 루프가 생성됩니다. 사용자 지정 작업에 Amazon A2I를 사용하면 애플리케이션에서 StartHumanLoop가 호출될 때 인적 루프가 시작됩니다.

다음 지침에 따라 Amazon Rekognition 또는 Amazon Textract 기본 제공 태스크 유형 및 사용자 지정 태스크 유형을 사용하여 인적 루프를 구성할 수 있습니다.

사전 조건

휴먼 루프를 생성하고 시작하려면 휴먼 루프를 구성하거나 시작하는 AWS Identity and Access Management (IAM) 사용자 또는 역할에 AmazonAugmentedAIFullAccess 정책을 연결해야 합니다. 이는 기본 제공 태스크 유형에 대해 HumanLoopConfig을 사용하여 인적 루프를 구성하는 데 사용하는 ID가 됩니다. 사용자 지정 태스크 유형의 경우에는 이것이 StartHumanLoop 호출에 사용하는 ID가 됩니다.

또한 기본 제공 작업 유형을 사용하는 경우 사용자 또는 역할에 작업 유형과 관련된 AWS 서비스의 API 작업을 호출할 권한이 있어야 합니다. 예를 들어 Amazon Rekognition 및 증강 AI를 사용하는 경우, 먼저 DetectModerationLabels을 호출하는 데 필요한 사용 권한을 연결해야 합니다. 사용자가 이러한 개별 서비스 사용 권한을 부여하는 데 사용할 수 있는 자격 증명 기반 정책에 대한 내용은 Amazon Rekognition 자격 증명 기반 정책 예제Amazon Textract 자격 증명 기반 정책 예제 단원을 참조하십시오. 사용자는 보다 일반적인 정책인 AmazonAugmentedAIIntegratedAPIAccess을 사용하여 이러한 권한을 부여할 수도 있습니다. 자세한 설명은 Amazon A2I, Amazon Textract 및 Amazon Rekognition 오퍼레이션을 호출할 수 있는 권한을 가진 사용자 생성 API 섹션을 참조하세요.

인적 루프를 생성하고 시작하기 위해서는 흐름 정의 ARN이 필요합니다. 흐름 정의(또는 사용자 검토 워크플로)를 생성하는 방법은 인적 검토 워크플로 생성 단원을 참조하십시오.

중요

Amazon A2I에는 인적 루프 입력 이미지 데이터가 포함된 모든 S3 버킷에 CORS 정책이 첨부되어 있어야 합니다. 이 변경에 대해 자세히 알아보려면 CORS권한 요구 사항 섹션을 참조하세요.

기본 제공 태스크 유형에 대한 인적 루프 생성 및 시작

기본 제공 태스크 유형 작업을 사용하여 인적 루프를 시작하려면 해당 서비스의 API를 사용하여 입력 데이터를 제공하고 인적 루프를 구성합니다. Amazon Textract의 경우 AnalyzeDocument API 작업을 사용합니다. Amazon Rekognition의 경우 DetectModerationLabels API 작업을 사용합니다. AWS CLI 또는 언어별 SDK를 사용하여 이러한 API 작업을 통해 요청을 생성할 수 있습니다.

중요

내장된 태스크 유형을 사용하여 인적 루프를 생성하는 경우 사용자는 StartHumanLoop 작업에 제공되는 입력과 관련된 일련의 ContentClassifiers을 지정하는 데 DataAttributes을 사용할 수 있습니다. 콘텐츠 분류자를 사용하여 콘텐츠에 개인 식별 정보 또는 성인 콘텐츠가 없다는 것을 선언합니다.

Amazon Mechanical Turk를 사용하려면 데이터에 HIPAA에 따른 보호 대상 건강 정보를 비롯한 개인 식별 정보가 없어야 합니다. FreeOfPersonallyIdentifiableInformation 콘텐츠 분류자를 포함하세요. 이 콘텐츠 분류기를 사용하지 않으면 작업이 Mechanical Turk로 전송되지 SageMaker 않습니다. 데이터에 성인 콘텐츠가 없으면 'FreeOfAdultContent' 분류자도 포함합니다. 이러한 콘텐츠 분류자를 사용하지 않으면 작업을 볼 수 있는 Mechanical Turk 작업자가 SageMaker 제한될 수 있습니다.

내장된 작업 유형의 AWS 서비스 API를 사용하여 ML 작업을 시작하면 Amazon A2I가 해당 서비스의 추론 결과를 모니터링합니다. 예를 들어, Amazon Rekognition을 사용하여 작업을 실행할 때 Amazon A2I에서는 각 이미지의 추론 신뢰도 점수를 확인하고 이를 흐름 정의에 지정된 신뢰도 임곗값과 비교합니다. 인적 검토 작업을 시작하는 조건이 충족되거나 흐름 정의에 조건을 지정하지 않은 경우 인적 검토 작업이 작업자에게 전송됩니다.

Amazon Textract 인적 루프 생성

Amazon A2I는 Amazon Textract와 통합되어 사용자는 Amazon Textract API를 사용하여 인적 루프를 구성하고 시작할 수 있습니다. 문서 분석을 위해 문서 파일을 Amazon Textract로 전송하려면 Amazon Textract AnalyzeDocument API 작업을 사용합니다. 이 문서 분석 작업에 인적 루프를 추가하려면 먼저 파라미터 HumanLoopConfig을 구성해야 합니다.

인적 루프를 구성할 때 HumanLoopConfigFlowDefinitionArn에 지정하는 흐름 정의는 Document 파라미터의 Bucket에서 식별된 버킷과 동일한 AWS 리전에 있어야 합니다.

다음 표는 이 작업을 및 와 함께 사용하는 방법의 예를 보여줍니다. AWS CLI AWS SDK for Python (Boto3)

AWS SDK for Python (Boto3)

다음 요청 예제에서는 SDK for Python(Boto3)을 사용합니다. 자세한 내용은 AWS SDK for Python(Boto) API 참조analyze_document 섹션을 참조하세요.

import boto3 textract = boto3.client('textract', aws_region) response = textract.analyze_document( Document={'S3Object': {'Bucket': bucket_name, 'Name': document_name}}, FeatureTypes=["TABLES", "FORMS"], HumanLoopConfig={ 'FlowDefinitionArn': 'arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name', 'HumanLoopName': 'human_loop_name', 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} } )
AWS CLI

다음 요청 예제는 AWS CLI를 사용합니다. 자세한 내용은 AWS CLI 명령 참조에서 describe-document을 참조하세요.

$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws-region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}' \ --feature-types '["TABLES", "FORMS"]'
$ aws textract analyze-document \ --document '{"S3Object":{"Bucket":"bucket_name","Name":"document_name"}}' \ --human-loop-config \ '{"HumanLoopName":"human_loop_name","FlowDefinitionArn":"arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name","DataAttributes": {"ContentClassifiers":["FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent"]}}' \ --feature-types '["TABLES", "FORMS"]'

인적 루프가 구성된 상태에서 AnalyzeDocument을 실행하면 Amazon A2I에서 AnalyzeDocument의 결과를 모니터링하고 흐름 정의의 활성화 조건에 대해 이를 확인합니다. 하나 이상의 키-값 페어에 대한 Amazon Textract의 추론 신뢰도 점수가 검토 조건을 충족하는 경우 Amazon A2I는 인적 검토 루프를 시작하고 AnalyzeDocument 응답에 HumanLoopActivationOutput 객체를 포함합니다.

Amazon Rekognition 인적 루프 생성하기

Amazon A2I는 Amazon Rekognition과 통합되어 사용자는 Amazon Rekognition API를 사용하여 인적 루프를 구성하고 시작할 수 있습니다. 콘텐츠 조절을 위해 Amazon Rekognition에 이미지를 전송하려면 Amazon Rekognition DetectModerationLabels API 작업을 사용합니다. 인적 루프를 구성하려면 DetectModerationLabels를 구성할 때 HumanLoopConfig 파라미터를 설정합니다.

인적 루프를 구성할 때 HumanLoopConfigFlowDefinitionArn에서 지정하는 흐름 정의는 Image 파라미터의 Bucket에서 식별된 S3 버킷과 동일한 AWS 리전에 있어야 합니다.

다음 표에는 이 작업을 AWS CLI 및 AWS SDK for Python (Boto3)와 함께 사용하는 방법의 예가 나와 있습니다.

AWS SDK for Python (Boto3)

다음 요청 예제에서는 Python용 SDK(Boto3)를 사용합니다. 자세한 내용은 AWS SDK for Python(Boto) API 참조detect_moderation_labels 섹션을 참조하세요.

import boto3 rekognition = boto3.client("rekognition", aws_region) response = rekognition.detect_moderation_labels( \ Image={'S3Object': {'Bucket': bucket_name, 'Name': image_name}}, \ HumanLoopConfig={ \ 'HumanLoopName': 'human_loop_name', \ 'FlowDefinitionArn': , "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name" \ 'DataAttributes': {'ContentClassifiers': ['FreeOfPersonallyIdentifiableInformation','FreeOfAdultContent']} })
AWS CLI

다음 요청 예제는 AWS CLI를 사용합니다. 자세한 내용은 AWS CLI 명령 레퍼런스detect-moderation-labels 섹션을 참조하세요.

$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config HumanLoopName="human_loop_name",FlowDefinitionArn="arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name",DataAttributes='{ContentClassifiers=["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}'
$ aws rekognition detect-moderation-labels \ --image "S3Object={Bucket='bucket_name',Name='image_name'}" \ --human-loop-config \ '{"HumanLoopName": "human_loop_name", "FlowDefinitionArn": "arn:aws:sagemaker:aws_region:aws_account_number:flow-definition/flow_def_name", "DataAttributes": {"ContentClassifiers": ["FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent"]}}'

인적 루프가 구성된 상태에서 DetectModerationLabels을 실행하면 Amazon A2I에서 DetectModerationLabels의 결과를 모니터링하고 흐름 정의의 활성화 조건에 대해 이를 확인합니다. 이미지에 대한 Amazon Rekognition 추론 신뢰도 점수가 검토 조건을 충족하면 Amazon A2I에서 인적 검토 루프를 시작하고 응답 요소 HumanLoopActivationOutputDetectModerationLabels 응답에 포함합니다.

사용자 지정 태스크 유형에 대한 인적 루프 생성 및 시작

사용자 지정 인적 검토 작업에 대한 인적 루프를 구성하려면 애플리케이션 내에서 StartHumanLoop 작업을 사용합니다. 이 섹션에서는 AWS SDK for Python (Boto3) 및 AWS Command Line Interface (AWS CLI) 를 사용하는 휴먼 루프 요청의 예를 제공합니다. 지원하는 StartHumanLoop 다른 언어별 SDK에 대한 설명서는 Amazon Augmented AI 런타임 API 설명서의 StartHumanLoop관련 항목 섹션을 참조하십시오. 사용자 지정 태스크 유형과 함께 Amazon A2I를 사용하는 방법을 보여주는 예제를 확인하려면 Amazon A2I를 사용한 사용 사례 및 예제을 참조하세요.

사전 조건

이 절차를 완료하려면 다음이 필요합니다.

  • JSON 형식 파일의 문자열 표현으로 형식이 지정된 입력 데이터

  • 흐름 정의의 Amazon 리소스 이름(ARN)

인적 루프를 구성하려면
  1. DataAttributes에는 StartHumanLoop 작업에 제공된 입력과 관련된 ContentClassifiers 세트를 지정합니다. 콘텐츠 분류자를 사용하여 콘텐츠에 개인 식별 정보 또는 성인 콘텐츠가 없다는 것을 선언합니다.

    Amazon Mechanical Turk를 사용하려면 데이터에 HIPAA에 따라 보호 대상 건강 정보를 비롯한 개인 식별 정보가 없고 FreeOfPersonallyIdentifiableInformation 콘텐츠 분류자를 포함해야 합니다. 이 콘텐츠 분류기를 사용하지 않으면 작업이 Mechanical Turk로 전송되지 SageMaker 않습니다. 데이터에 성인 콘텐츠가 없으면 'FreeOfAdultContent' 분류자도 포함합니다. 이러한 콘텐츠 분류자를 사용하지 않으면 작업을 볼 수 있는 Mechanical Turk 작업자가 SageMaker 제한될 수 있습니다.

  2. FlowDefinitionArn에 흐름 정의의 Amazon 리소스 이름(ARN)을 입력합니다.

  3. HumanLoopInput에 입력 데이터를 JSON 형식 파일의 문자열 표현으로 입력합니다. 인적 루프를 시작할 때 입력 데이터가 인적 작업자에게 올바르게 표시되도록 입력 데이터 및 사용자 지정 작업자 태스크 템플릿을 구조화합니다. 사용자 지정 작업자 태스크 템플릿을 미리 보는 방법을 알아보려면 작업자 태스크 템플릿 미리 보기을 확인하세요.

  4. HumanLoopName에 인적 루프의 이름을 입력합니다. 이름은 해당 계정의 리전 내에서 고유해야 하며 최대 63자까지 지정할 수 있습니다. 유효한 문자는 a-z, 0-9 및 -(하이픈)입니다.

인적 루프를 시작하려면
  • 인적 루프를 시작하려면 기본 설정 언어별 SDK를 사용하여 다음 예제와 유사한 요청을 제출하세요.

AWS SDK for Python (Boto3)

다음 요청 예제에서는 SDK for Python(Boto3)을 사용합니다. 자세한 내용은 AWS SDK for Python(Boto) API 참조Boto 3 증강 AI 런타임 섹션을 참조하세요.

import boto3 a2i_runtime_client = boto3.client('sagemaker-a2i-runtime') response = a2i_runtime_client.start_human_loop( HumanLoopName='human_loop_name', FlowDefinitionArn='arn:aws:sagemaker:aws-region:xyz:flow-definition/flow_def_name', HumanLoopInput={ 'InputContent': '{"InputContent": {\"prompt\":\"What is the answer?\"}}' }, DataAttributes={ 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } )
AWS CLI

다음 요청 예제는 AWS CLI를 사용합니다. 자세한 내용은 AWS CLI 명령 레퍼런스start-human-loop 섹션을 참조하세요.

$ aws sagemaker-a2i-runtime start-human-loop --flow-definition-arn 'arn:aws:sagemaker:aws_region:xyz:flow-definition/flow_def_name' \ --human-loop-name 'human_loop_name' \ --human-loop-input '{"InputContent": "{\"prompt\":\"What is the answer?\"}"}' \ --data-attributes ContentClassifiers="FreeOfPersonallyIdentifiableInformation","FreeOfAdultContent" \

StartHumanLoop을 직접 호출하여 인적 루프를 성공적으로 시작하면 NULL로 설정되는 HumanLoopARNHumanLoopActivationResults 객체가 응답에 포함됩니다. 사용자는 인적 루프 이름을 사용하여 인적 루프를 모니터링하고 관리할 수 있습니다.

다음 단계:

휴먼 루프를 시작한 후에는 Amazon Augmented AI 런타임 API와 Amazon Events를 사용하여 휴먼 루프를 관리하고 모니터링할 수 있습니다. CloudWatch 자세한 내용은 인적 루프 모니터링 및 관리 단원을 참조하십시오.