레이블 지정 작업 생성(API) - Amazon SageMaker

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

레이블 지정 작업 생성(API)

Amazon SageMaker API를 사용하여 라벨링 작업을 생성하려면 CreateLabelingJob작업을 사용합니다. 기본 제공 태스크 유형에 대한 레이블 지정 작업을 생성하는 방법에 대한 구체적인 지침은 해당 태스크 유형 페이지를 참조하십시오. 영구적으로 실행되는 레이블 지정 작업인 스트리밍 레이블 지정 작업을 만드는 방법을 알아보려면 스트리밍 레이블 지정 작업 생성를 참고하십시오.

CreateLabelingJob 작업을 사용하려면 다음이 필요합니다.

  • Amazon S3의 작업자 태스크 템플릿(UiTemplateS3Uri) 또는 인적 태스크 UI ARN(HumanTaskUiArn).

    • 3D 포인트 클라우드 작업, 비디오 객체 감지 및 추적 작업, NER 작업의 경우 작업 유형의 HumanTaskUiArn에 나열된 ARN을 사용하십시오.

    • 3D 포인트 클라우드 태스크 이외의 기본 제공 태스크 유형을 사용하는 경우 사전 빌드 템플릿 중 하나에 작업자 지침을 추가하고 (.html 또는.liquid 확장자를 사용하여) 템플릿을 S3 버킷에 저장할 수 있습니다. 태스크 유형 페이지에서 사전 빌드 템플릿을 찾습니다.

    • 사용자 지정 레이블 지정 워크플로를 사용하는 경우 사용자 지정 템플릿을 생성하고 S3 버킷에 템플릿을 저장할 수 있습니다. 사용자 지정 작업자 템플릿을 빌드하는 방법에 대한 자세한 내용은 사용자 지정 작업자 태스크 템플릿 단원을 참조하십시오. 템플릿을 사용자 지정하는 데 사용할 수 있는 사용자 지정 HTML 요소는 군중 HTML 요소 참조 단원을 참조하십시오. 다양한 레이블 지정 작업을 위한 데모 템플릿 리포지토리는 Amazon SageMaker Ground Truth 샘플 작업 UI를 참조하십시오.

  • Amazon S3에서 입력 데이터를 지정하는 입력 매니페스트 파일. ManifestS3Uri에서 입력 매니페스트 파일 위치를 지정합니다. 입력 매니페스트 생성에 대한 자세한 내용은 입력 데이터 단원을 참조하십시오. 스트리밍 레이블 지정 작업을 생성하는 경우 이것은 선택 사항입니다. 스트리밍 레이블 지정 작업을 생성하는 방법을 알아보려면 스트리밍 레이블 지정 작업 생성을 참고하십시오.

  • 출력 데이터를 저장하는 Amazon S3 버킷. 이 버킷을 지정하고 선택 사항으로 S3OutputPath에서 접두사를 지정합니다.

  • 레이블 범주 구성 파일. 각 레이블 범주 이름은 고유해야 합니다. LabelCategoryConfigS3Uri 파라미터를 사용하여 Amazon S3에서 이 파일의 위치를 지정합니다. 이 파일의 형식 및 레이블 범주는 사용하는 작업 유형에 따라 달라집니다.

    • 이미지 분류 및 텍스트 분류(단일 및 다중 레이블)의 경우 레이블 범주를 두 개 이상 지정해야 합니다. 다른 모든 작업 유형의 경우 필요한 최소 레이블 범주 수는 1개입니다.

    • 개체명 인식 작업의 경우 이 파일에 있는 작업자 지침을 제공해야 합니다. 자세한 정보 및 예제는 레이블 범주 구성 파일에 작업자 지침 제공하기을 참고하십시오.

    • 3D 포인트 클라우드 및 비디오 프레임 태스크 유형의 경우 레이블 범주 및 프레임 속성 참조로 범주 구성 파일 레이블 지정의 형식을 사용합니다.

    • 다른 모든 기본 제공 태스크 유형 및 사용자 지정 태스크의 경우 레이블 범주 구성 파일은 다음 형식의 JSON 파일이어야 합니다. label_1, label_2, ..., label_n을 레이블 범주로 대체하여 사용할 레이블을 식별합니다.

      { "document-version": "2018-11-28" "labels": [ {"label": "label_1"}, {"label": "label_2"}, ... {"label": "label_n"} ] }
  • AmazonSageMakerGroundTruthExecution관리형 IAM 정책이 연결되어 있고 S3 버킷에 액세스할 수 있는 권한이 있는 AWS Identity and Access Management (IAM) 역할. RoleArn에서 이 역할을 지정하십시오. 이 정책에 대한 자세한 내용은 Ground Truth에서 IAM 관리형 정책 사용을 참고하십시오. 보다 세분화된 권한이 필요한 경우는 Ground Truth를 사용할 IAM 권한 할당 단원을 참조하십시오 .

    입력 또는 출력 버킷 이름에 sagemaker가 포함되어 있지 않은 경우 CreateLabelingJob 작업에 전달되는 역할에 다음과 유사한 정책을 연결할 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::my_input_bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::my_output_bucket/*" ] } ] }
  • 주석 전 및 주석 후(또는 주석 통합) AWS Lambda 함수는 입력 및 출력 데이터를 처리하기 위해 Amazon 리소스 이름(ARN)을 사용합니다.

    • Lambda 함수는 내장된 작업 유형에 대해 AWS 각 리전에 사전 정의되어 있습니다. 해당 지역의 사전 주석이 달린 Lambda ARN을 찾으려면 을 참조하십시오. PreHumanTaskLambdaArn 해당 지역의 주석 통합 Lambda ARN을 찾으려면 을 참조하십시오. AnnotationConsolidationLambdaArn

    • 사용자 지정 레이블 지정 워크플로의 경우, 사용자 지정 주석 전 및 주석 후 Lambda ARN을 제공해야 합니다. 이러한 Lambda 함수를 생성하는 방법에 대한 자세한 내용은 를 사용하여 처리 AWS Lambda을 참조하십시오.

  • WorkteamArn에서 지정하는 작업 팀 ARN. 공급업체 작업 인력을 구독하거나 프라이빗 작업 팀을 생성하면 작업 팀 ARN을 받게 됩니다. 비디오 프레임 또는 포인트 클라우드 작업 유형에 대한 라벨링 작업을 생성하는 경우 인력을 사용할 수 없습니다. Amazon Mechanical Turk 다른 모든 작업 유형의 경우 Mechanical Turk 작업 인력을 사용하려면 다음 ARN을 사용하십시오. 라벨링 작업을 생성하는 데 사용 중인 AWS 지역으로 region바꾸십시오.

    arn:aws:sagemaker:region:394669845002:workteam/public-crowd/default

    Amazon Mechanical Turk 작업 인력을 사용하는 경우, InputConfigDataAttributes에 있는 ContentClassifiers 파라미터를 사용하여 콘텐츠에 개인 식별 정보 및 성인 콘텐츠가 없다는 것을 선언합니다.

    Ground Truth에서는 Mechanical Turk 인력을 고용하는 경우 입력 데이터에 개인 식별 정보(PII)가 없어야 합니다. Mechanical Turk를 사용하고 FreeOfPersonallyIdentifiableInformation 플래그를 사용하여 입력 데이터에 PII가 없음을 지정하지 않으면 레이블 지정 작업이 실패합니다. FreeOfAdultContent플래그를 사용하여 입력 데이터에 성인용 콘텐츠가 없음을 선언하세요. SageMaker 작업에 성인용 콘텐츠가 포함된 경우 작업을 볼 수 있는 Amazon Mechanical Turk 작업자를 제한할 수 있습니다.

    작업 팀 및 작업 인력에 대한 자세한 내용은 인력 단원을 참조하십시오.

  • Mechanical Turk 작업 인력을 사용하는 경우 PublicWorkforceTaskPrice에서 단일 작업 수행에 대해 작업자에게 지불할 가격을 지정해야 합니다.

  • 작업을 구성하려면 TaskDescriptionTaskTitle을 각각 사용하여 작업 설명과 제목을 제공해야 합니다. 선택 사항으로 작업자가 개별 작업을 수행해야 하는 시간(TaskTimeLimitInSeconds) 및 작업자가 사용할 수 있는 작업자 포털에 작업이 남아 있는 기간(TaskAvailabilityLifetimeInSeconds)을 제어하는 시간 제한을 제공할 수 있습니다.

  • (선택 사항) 일부 태스크 유형의 경우 NumberOfHumanWorkersPerDataObject 파라미터에 1보다 큰 숫자를 입력하여 여러 작업자가 단일 데이터 객체에 레이블을 지정하도록 할 수 있습니다. 주석 통합에 대한 자세한 내용은 주석 통합 단원을 참조하십시오.

  • (선택 사항) 자동 데이터 레이블 지정 작업을 생성하려면 에 LabelingJobAlgorithmSpecificationArn나열된 ARN 중 하나를 지정하십시오. LabelingJobAlgorithmsConfig 이 ARN은 자동화된 데이터 레이블 지정 작업에 사용되는 알고리즘을 식별합니다. 이 ARN과 연결된 작업 유형은 사용자가 지정한 PreHumanTaskLambdaArnAnnotationConsolidationLambdaArn의 작업 유형과 일치해야 합니다. 자동화된 데이터 레이블 지정은 이미지 분류, 경계 상자, 의미 체계 분할 및 텍스트 분류와 같은 작업 유형에 대해 지원됩니다. 자동 데이터 레이블 지정에 허용되는 최소 객체 수는 1,250개이고 최소 5,000개의 객체를 제공하는 것이 좋습니다. 자동화된 데이터 레이블 지정 작업에 대한 자세한 내용은 데이터 레이블 지정 자동화을 참고하십시오.

  • (선택 사항) 조건 중 하나가 충족되면 레이블 지정 작업이 중지되도록 StoppingConditions을 지정할 수 있습니다. 중지 조건을 사용하여 레이블 작업 비용을 제어할 수 있습니다.

다음 코드 예제에서는 CreateLabelingJob를 사용하여 레이블 지정 작업을 생성하는 방법을 보여줍니다. 추가 예제를 보려면 노트북 인스턴스의 SageMaker 예제 섹션에 있는 Ground Truth Labeling Jobs Jupyter 노트북 중 하나를 사용하는 것이 좋습니다. SageMaker 예제에서 노트북 SageMaker 예제를 사용하는 방법을 알아보려면 을 참조하십시오. 예제 노트북 액세스 예제 저장소에서도 이러한 예제 노트북을 GitHub 볼 수 있습니다. SageMaker

AWS SDK for Python (Boto3)

다음은 프라이빗 작업 인력을 사용하여 미국 동부(버지니아 북부) 리전에 기본 제공된 작업 유형의 레이블 지정 작업을 생성하는 AWS Python SDK(Boto3) 요청의 예시입니다. 빨간색 기울임꼴로 표시된 모든 텍스트를 레이블 지정 작업 리소스 및 사양으로 바꾸십시오.

response = client.create_labeling_job( LabelingJobName="example-labeling-job", LabelAttributeName="label", InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': "s3://bucket/path/manifest-with-input-data.json" } }, 'DataAttributes': { 'ContentClassifiers': [ "FreeOfPersonallyIdentifiableInformation"|"FreeOfAdultContent", ] } }, OutputConfig={ 'S3OutputPath': "s3://bucket/path/file-to-store-output-data", 'KmsKeyId': "string" }, RoleArn="arn:aws:iam::*:role/*", LabelCategoryConfigS3Uri="s3://bucket/path/label-categories.json", StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': "arn:aws:sagemaker:region:*:workteam/private-crowd/*", 'UiConfig': { 'UiTemplateS3Uri': "s3://bucket/path/custom-worker-task-template.html" }, 'PreHumanTaskLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", 'TaskKeywords': [ "Images", "Classification", "Multi-label" ], 'TaskTitle': "Multi-label image classification task", 'TaskDescription': "Select all labels that apply to the images shown", 'NumberOfHumanWorkersPerDataObject': 1, 'TaskTimeLimitInSeconds': 3600, 'TaskAvailabilityLifetimeInSeconds': 21600, 'MaxConcurrentTaskCount': 1000, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': "arn:aws:lambda:us-east-1:432418664414:function:ACS-" }, Tags=[ { 'Key': "string", 'Value': "string" }, ] )
AWS CLI

다음은 Amazon Mechanical Turk 인력을 사용하여 미국 동부 (버지니아 북부) 지역의 기본 제공 작업 유형에 대한 라벨 제작 작업을 생성하기 위한 AWS CLI 요청의 예입니다. 자세한 내용은 AWS CLI 명령 레퍼런스start-human-loop 섹션을 참조하세요. 빨간색 기울임꼴로 표시된 모든 텍스트를 레이블 지정 작업 리소스 및 사양으로 바꾸십시오.

$ aws --region us-east-1 sagemaker create-labeling-job \ --labeling-job-name "example-labeling-job" \ --label-attribute-name "label" \ --role-arn "arn:aws:iam::account-id:role/role-name" \ --input-config '{ "DataAttributes": { "ContentClassifiers": [ "FreeOfPersonallyIdentifiableInformation", "FreeOfAdultContent" ] }, "DataSource": { "S3DataSource": { "ManifestS3Uri": "s3://bucket/path/manifest-with-input-data.json" } } }' \ --output-config '{ "KmsKeyId": "", "S3OutputPath": "s3://bucket/path/file-to-store-output-data" }' \ --human-task-config '{ "AnnotationConsolidationConfig": { "AnnotationConsolidationLambdaArn": "arn:aws:lambda:us-east-1:432418664414:function:ACS-" }, "TaskAvailabilityLifetimeInSeconds": 21600, "TaskTimeLimitInSeconds": 3600, "NumberOfHumanWorkersPerDataObject": 1, "PreHumanTaskLambdaArn": "arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype", "WorkteamArn": "arn:aws:sagemaker:us-east-1:394669845002:workteam/public-crowd/default", "PublicWorkforceTaskPrice": { "AmountInUsd": { "Dollars": 0, "TenthFractionsOfACent": 6, "Cents": 3 } }, "TaskDescription": "Select all labels that apply to the images shown", "MaxConcurrentTaskCount": 1000, "TaskTitle": "Multi-label image classification task",, "TaskKeywords": [ "Images", "Classification", "Multi-label" ], "UiConfig": { "UiTemplateS3Uri": "s3://bucket/path/custom-worker-task-template.html" } }'

이 작업에 대한 자세한 내용은 CreateLabelingJob 단원을 참조하십시오. 기타 언어별 SDK를 사용하는 방법에 대한 자세한 내용은 CreateLabelingJobs 주제의 관련 항목을 참고하십시오.