

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

# 레이블 지정 작업 생성(API)
<a name="sms-create-labeling-job-api"></a>

Amazon SageMaker API를 사용하여 레이블 지정 작업을 생성하려면 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html) 작업을 사용합니다. 기본 제공 태스크 유형에 대한 레이블 지정 작업을 생성하는 방법에 대한 구체적인 지침은 해당 [태스크 유형 페이지](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)를 참조하세요. 영구적으로 실행되는 레이블 지정 작업인 스트리밍 레이블 지정 작업을 만드는 방법을 알아보려면 [스트리밍 레이블링 작업 생성](sms-streaming-create-job.md)를 참고하세요.

`CreateLabelingJob` 작업을 사용하려면 다음이 필요합니다.
+ Amazon S3의 작업자 태스크 템플릿(`UiTemplateS3Uri`) 또는 인적 태스크 UI ARN(`[HumanTaskUiArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UiConfig.html#sagemaker-Type-UiConfig-HumanTaskUiArn)`).
  + 3D 포인트 클라우드 작업, 비디오 객체 감지 및 추적 작업, NER 작업의 경우 작업 유형의 `HumanTaskUiArn`에 나열된 ARN을 사용하세요.
  + 3D 포인트 클라우드 태스크 이외의 기본 제공 태스크 유형을 사용하는 경우 사전 빌드 템플릿 중 하나에 작업자 지침을 추가하고 (.html 또는.liquid 확장자를 사용하여) 템플릿을 S3 버킷에 저장할 수 있습니다. [태스크 유형 페이지](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-task-types.html)에서 사전 빌드 템플릿을 찾습니다.
  + 사용자 지정 레이블 지정 워크플로를 사용하는 경우 사용자 지정 템플릿을 생성하고 S3 버킷에 템플릿을 저장할 수 있습니다. 사용자 지정 작업자 템플릿을 빌드하는 방법에 대한 자세한 내용은 [사용자 지정 작업자 작업 템플릿 생성하기](sms-custom-templates-step2.md) 섹션을 참조하세요. 템플릿을 사용자 지정하는 데 사용할 수 있는 사용자 지정 HTML 요소는 [군중 HTML 요소 참조](sms-ui-template-reference.md) 섹션을 참조하세요. 다양한 레이블 지정 작업의 데모 템플릿 리포지토리는 [Amazon SageMaker Ground Truth 샘플 작업 UI](https://github.com/aws-samples/amazon-sagemaker-ground-truth-task-uis)를 참조하세요.
+ Amazon S3에서 입력 데이터를 지정하는 입력 매니페스트 파일. `ManifestS3Uri`에서 입력 매니페스트 파일 위치를 지정합니다. 입력 매니페스트 생성에 대한 자세한 내용은 [입력 데이터](sms-data-input.md) 섹션을 참조하세요. 스트리밍 레이블 지정 작업을 생성하는 경우 이것은 선택 사항입니다. 스트리밍 레이블 지정 작업을 생성하는 방법을 알아보려면 [스트리밍 레이블링 작업 생성](sms-streaming-create-job.md)을 참고하세요.
+ 출력 데이터를 저장하는 Amazon S3 버킷. 이 버킷을 지정하고 선택 사항으로 `S3OutputPath`에서 접두사를 지정합니다.
+ 레이블 범주 구성 파일. 각 레이블 범주 이름은 고유해야 합니다. `LabelCategoryConfigS3Uri` 파라미터를 사용하여 Amazon S3에서 이 파일의 위치를 지정합니다. 이 파일의 형식 및 레이블 범주는 사용하는 작업 유형에 따라 달라집니다.
  + 이미지 분류 및 텍스트 분류(단일 및 다중 레이블)의 경우 레이블 범주를 두 개 이상 지정해야 합니다. 다른 모든 작업 유형의 경우 필요한 최소 레이블 범주 수는 1개입니다.
  + 개체명 인식 작업의 경우 이 파일에 있는 작업자 지침을 제공해야 합니다. 자세한 정보 및 예제는 [레이블 범주 구성 파일에 작업자 지침 제공하기](sms-named-entity-recg.md#worker-instructions-ner)을 참고하세요.
  + 3D 포인트 클라우드 및 비디오 프레임 태스크 유형의 경우 [레이블 범주 및 프레임 속성을 사용하여 범주 구성 파일 레이블 지정](sms-label-cat-config-attributes.md)의 형식을 사용합니다.
  + 다른 모든 기본 제공 태스크 유형 및 사용자 지정 태스크의 경우 레이블 범주 구성 파일은 다음 형식의 JSON 파일이어야 합니다. `label_1`, `label_2`, `...`, `label_n`을 레이블 범주로 대체하여 사용할 레이블을 식별합니다.

    ```
    {
        "document-version": "2018-11-28",
        "labels": [
            {"label": "label_1"},
            {"label": "label_2"},
            ...
            {"label": "label_n"}
        ]
    }
    ```
+ [AmazonSageMakerGroundTruthExecution](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerGroundTruthExecution) 관리형 IAM 정책이 연결되고 S3 버킷에 액세스할 수 있는 권한이 있는 AWS Identity and Access Management (IAM) 역할입니다. `RoleArn`에서 이 역할을 지정하세요. 이 정책에 대한 자세한 내용은 [Ground Truth와 함께 IAM 관리형 정책 사용](sms-security-permissions-get-started.md)을 참고하세요. 보다 세분화된 권한이 필요한 경우는 [Ground Truth 사용을 위한 IAM 권한 할당](sms-security-permission.md) 섹션을 참조하세요 .

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

------
#### [ JSON ]

****  

  ```
  {
      "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](https://docs.aws.amazon.com/sagemaker/latest/dg/API_HumanTaskConfig.html#SageMaker-Type-HumanTaskConfig-PreHumanTaskLambdaArn)을 참고하세요. 사용자 리전에 대한 주석 통합 Lambda ARN을 찾으려면 [AnnotationConsolidationLambdaArn](https://docs.aws.amazon.com/sagemaker/latest/dg/API_AnnotationConsolidationConfig.html#SageMaker-Type-AnnotationConsolidationConfig-AnnotationConsolidationLambdaArn)을 참고하세요.
  + 사용자 지정 레이블 지정 워크플로의 경우, 사용자 지정 주석 전 및 주석 후 Lambda ARN을 제공해야 합니다. 이러한 Lambda 함수를 생성하는 방법에 대한 자세한 내용은 [를 사용하여 사용자 지정 레이블 지정 워크플로에서 데이터 처리 AWS Lambda](sms-custom-templates-step3.md)을 참조하세요.
+ `WorkteamArn`에서 지정하는 작업 팀 ARN. 공급업체 작업 인력을 구독하거나 프라이빗 작업 팀을 생성하면 작업 팀 ARN을 받게 됩니다. 비디오 프레임 또는 포인트 클라우드 작업 유형에 대한 레이블 지정 작업을 생성하는 경우 작업 Amazon Mechanical Turk 인력을 사용할 수 없습니다. 다른 모든 작업 유형의 경우 Mechanical Turk 작업 인력을 사용하려면 다음 ARN을 사용하세요. *`region`*를 레이블 지정 작업을 생성하는 데 사용하는 AWS 리전으로 바꿉니다.

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

  [Amazon Mechanical Turk 작업 인력](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management-public.html)을 사용하는 경우, `InputConfig`의 `DataAttributes`에 있는 `ContentClassifiers` 파라미터를 사용하여 콘텐츠에 개인 식별 정보 및 성인 콘텐츠가 없다는 것을 선언합니다.

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

  작업 팀 및 작업 인력에 대한 자세한 내용은 [인력](sms-workforce-management.md) 섹션을 참조하세요.
+ Mechanical Turk 작업 인력을 사용하는 경우 `PublicWorkforceTaskPrice`에서 단일 작업 수행에 대해 작업자에게 지불할 가격을 지정해야 합니다.
+ 작업을 구성하려면 `TaskDescription` 및 `TaskTitle`을 각각 사용하여 작업 설명과 제목을 제공해야 합니다. 선택 사항으로 작업자가 개별 작업을 수행해야 하는 시간(`TaskTimeLimitInSeconds`) 및 작업자가 사용할 수 있는 작업자 포털에 작업이 남아 있는 기간(`TaskAvailabilityLifetimeInSeconds`)을 제어하는 시간 제한을 제공할 수 있습니다.
+ (선택 사항) [일부 태스크 유형](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html)의 경우 `NumberOfHumanWorkersPerDataObject` 파라미터에 1보다 큰 숫자를 입력하여 여러 작업자가 단일 데이터 객체에 레이블을 지정하도록 할 수 있습니다. 주석 통합에 대한 자세한 내용은 [주석 통합](sms-annotation-consolidation.md) 섹션을 참조하세요.
+ (선택 사항) 자동화된 데이터 레이블 지정 작업을 생성하려면 `LabelingJobAlgorithmsConfig`의 [LabelingJobAlgorithmSpecificationArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_LabelingJobAlgorithmsConfig.html)에 나열된 ARN 중 하나를 지정하세요. 이 ARN은 자동화된 데이터 레이블 지정 작업에 사용되는 알고리즘을 식별합니다. 이 ARN과 연결된 작업 유형은 사용자가 지정한 `PreHumanTaskLambdaArn` 및 `AnnotationConsolidationLambdaArn`의 작업 유형과 일치해야 합니다. 자동화된 데이터 레이블 지정은 이미지 분류, 경계 상자, 의미 체계 분할 및 텍스트 분류와 같은 작업 유형에 대해 지원됩니다. 자동 데이터 레이블 지정에 허용되는 최소 객체 수는 1,250개이고 최소 5,000개의 객체를 제공하는 것이 좋습니다. 자동화된 데이터 레이블 지정 작업에 대한 자세한 내용은 [데이터 레이블 지정 자동화](sms-automated-labeling.md)을 참고하세요.
+ (선택 사항) 조건 중 하나가 충족되면 레이블 지정 작업이 중지되도록 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#API_CreateLabelingJob_RequestSyntax](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#API_CreateLabelingJob_RequestSyntax)을 지정할 수 있습니다. 중지 조건을 사용하여 레이블 작업 비용을 제어할 수 있습니다.

## 예제
<a name="sms-create-labeling-job-api-examples"></a>

다음 코드 예제에서는 `CreateLabelingJob`를 사용하여 레이블 지정 작업을 생성하는 방법을 보여줍니다. [SageMaker AI 예시 리포지토리](https://github.com/aws/amazon-sagemaker-examples/tree/master/ground_truth_labeling_jobs)의 GitHub에서도 이러한 예시 노트북을 볼 수 있습니다.

------
#### [ AWS SDK for Python (Boto3) ]

다음은 프라이빗 작업 인력을 사용하여 미국 동부(버지니아 북부) 리전에 기본 제공된 작업 유형의 레이블 지정 작업을 생성하는 [AWS Python SDK(Boto3) 요청](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_labeling_job)의 예시입니다. *빨간색 기울임꼴로 표시된 모든 텍스트*를 레이블 지정 작업 리소스 및 사양으로 바꾸세요.

```
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 작업](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-workforce-management-public.html) 인력을 사용하여 미국 동부(버지니아 북부) 리전에서 기본 제공 작업 유형에 대한 레이블 지정 작업을 생성하기 위한 AWS CLI 요청의 예입니다. 자세한 내용은 *[AWS CLI 명령 레퍼런스](https://docs.aws.amazon.com/cli/latest/reference/)*에서 [start-human-loop](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-labeling-job.html)를 참고하세요. *빨간색 기울임꼴로 표시된 모든 텍스트*를 레이블 지정 작업 리소스 및 사양으로 바꾸세요.

```
$ 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](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateLabelingJob.html)을 참조하세요. 기타 언어별 SDK를 사용하는 방법에 대한 자세한 내용은 `CreateLabelingJobs` 주제의 [관련 항목](https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreateLabelingJob.html#API_CreateLabelingJob_SeeAlso)을 참고하세요.