Amazon Web Services 한국 블로그

Amazon SageMaker Ground Truth 서비스 – 데이터 레이블 작업 고도화 및 70% 비용 절감 가능

1959년, Arthur Samuel은 기계 학습을 “명시적으로 프로그래밍하지 않으면서도 컴퓨터에 학습할 수 있는 능력을 부여하는 연구 분야”로 정의했습니다. 하지만, 만능 솔루션은 없습니다. 이러한 학습 프로세스에는 알고리즘(“학습 방법”)과 학습 데이터 세트(“학습 방법”)가 필요합니다.

오늘날 대부분의 기계 학습 작업에는 지도 학습(supervised learning)이라는 기법이 사용됩니다. 레이블이 지정된 데이터 세트에서 패턴 또는 동작을 학습하는 알고리즘이죠. 레이블이 지정된 데이터 세트에는 데이터 샘플과 각 샘플에 대한 정답, 즉 ‘실질 정보’가 담겨 있습니다. 해결해야 할 문제에 따라서는 레이블이 지정된 이미지(“이것은 개다”, “이것은 고양이다”), 레이블이 지정된 텍스트(“이것은 스팸이다”, “이것은 아니다”)도 사용할 수 있습니다.

최근에는 개발자와 데이터 과학자들은 이제 다양한 상용 알고리즘(Amazon SageMaker기본 제공 알고리즘 참조)과 참조 데이터 세트를 활용할 수 있습니다. 딥러닝은 MNIST, CIFAR-10 또는 ImageNet 같은 이미지 데이터 세트가 대중화되는 계기가 되었고, 기계 번역 또는 텍스트 분류와 같은 작업을 위한 데이터 세트도 있습니다. 이러한 참조 데이터 세트는 초보자와 숙련된 실무자에게 모두 매우 유용하지만, 자체적인 데이터 세트로 기계 학습 모델을 학습시켜야 하는 기업과 조직이 많습니다. 의료 이미징, 자율 주행 등을 생각해볼 수 있죠.

이러한 데이터 세트를 구축하는 것은 특히 대규모 작업 시에 복잡한 문제가 됩니다. 한 사람이 1,000개의 이미지나 문서에 레이블을 지정하려면 얼마나 걸릴까요? 상당한 시간이 걸릴 겁니다. 자, 이제 백만 장의 사진이나 문서에 레이블을 붙여야 한다고 상상해 보십시오. 얼마나 많은 사람이 필요할까요? 대부분의 기업과 조직은 충분한 인력을 구하지 못할 것이기 때문에 이는 문제가 됩니다.

이제 이러한 문제를 해결해야 할 때가 왔습니다. 바로 Amazon SageMaker Ground Truth라는 새로운 기능능을 출시했으니까요. 이 기능을 통해 고객은 기계 학습 시스템을 학습시키는 데 필요한 데이터 세트에 효율적이고 정확하게 레이블을 지정할 수 있습니다.

Amazon SageMaker Ground Truth 소개

Amazon SageMaker Ground True를 사용하면 다음과 같은 용도로 데이터 세트를 작성할 수 있습니다.

  • 텍스트 분류
  • 이미지 분류(특정 클래스의 이미지 분류)
  • 물체 감지(경계 상자가 있는 이미지에서 객체 찾기)
  • 의미론적 분할(픽셀 단위 정밀도의 이미지에서 객체 찾기)
  • 맞춤형 사용자 정의 작업

원하는 경우 Amazon SageMaker Ground Truth에서 능동 학습을 사용하여 입력 데이터의 레이블 지정을 자동화할 수 있습니다. 능동 학습이란 사람이 레이블을 표시해야 하는 데이터와 기계로 레이블을 지정할 수 있는 데이터를 식별하는 기계 학습 기술입니다. 자동화된 데이터 레이블 지정 기능을 사용하려면 Amazon SageMaker 학습 및 추론 비용이 발생하지만, 사람이 직접 전체 데이터 세트에 레이블을 지정할 때보다 전체 데이터 세트에 레이블을 지정하는 데 소요되는 비용(최대 70%)과 시간을 줄일 수 있습니다.

수작업이 필요한 경우 50만 명 이상의 작업자, 회사의 개인 인력 또는 AWS Marketplace에 있는 큐레이트된 타사 공급업체 중 하나로 이루어진 크라우드소싱 Amazon Mechanical Turk 인력을 사용하도록 선택할 수 있습니다.

데이터 세트에 레이블을 지정하는 데 필요한 단계를 개략적으로 살펴보겠습니다.

  • Amazon S3에 데이터를 저장합니다.
  • 레이블 지정 인력을 생성합니다.
  • 레이블 지정 작업을 만듭니다.
  • 작업을 시작합니다.
  • 결과를 시각화합니다.

예를 살펴볼까요? CBCL StreetScenes 데이터 세트에서 이미지에 레이블을 지정하는 방법을 보여 드리겠습니다. 이 데이터 세트에는 이런 이미지가 3548개 포함되어 있습니다. 여기서는 편의상, 처음 10개의 이미지만 사용하여 차에 주석을 달겠습니다.

거리 사진

Amazon S3에 데이터 저장

첫 단계로, 데이터 세트의 매니페스트 파일을 생성합니다. 이는 데이터 세트에 있는 모든 이미지가 나열된 간단한 JSON 파일입니다. 제가 만든 파일은 이렇습니다. 각 행은 단일 객체에 해당하며 독립적인 JSON 문서입니다.

{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00001.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00002.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00003.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00004.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00005.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00006.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00007.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00008.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00009.JPG"}
{"source-ref": "s3://jsimon-groundtruth-demo/SSDB00010.JPG"}

그런 다음 매니페스트 파일과 해당 이미지를 Amazon S3 버킷에 복사하기만 하면 됩니다.

레이블 지정 인력 생성

Amazon SageMaker Ground Truth는 다양한 옵션을 제공합니다.

  • Amazon Mechanical Turk의 지원을 받는 공공 인력
  • 내부 인력의 지원을 받는 개인 인력
  • 타사 리소스의 지원을 받는 공급업체 인력

아마도 첫 번째 옵션이 가장 확장성이 뛰어날 겁니다. 그러나 기밀성, 서비스 보장 또는 특수 기술이 필요한 경우에는 마지막 두 가지 옵션이 더 적합합니다.

여기서는 인력이 저뿐이므로, 새로운 Amazon Cognito 그룹에 의해 인증된 개인 팀을 만듭니다. 작업자가 데이터 세트에 액세스하려면 먼저 인증을 받아야 합니다.

인력

그런 다음 내 이메일 주소를 입력하여 팀에 합류합니다. 몇 초 후에 자격 증명과 URL을 안내하는 초대장을 받습니다. 이 URL은 레이블 지정 인력 대시보드에서도 확인할 수 있습니다.

링크를 클릭하고 암호를 변경하면 이 팀의 인증된 작업자로 등록됩니다.

이제 1인 팀이 준비되었습니다. 다음으로 레이블링 작업 자체를 만듭니다.

레이블 지정 작업 생성

예상했겠지만, 매니페스트 파일과 데이터 세트의 위치를 정의해야 합니다.

데이터 세트

다음으로, 전체 데이터 세트를 사용할지 또는 하위 세트를 사용할지를 결정할 수 있습니다. 파일을 필터링하기 위해 SQL 쿼리를 작성할 수도 있습니다. 이 예의 경우 이미지가 10개뿐이므로 전체 데이터 세트를 사용합니다.

데이터 세트

다음으로, 레이블 지정 작업의 유형을 선택해야 합니다. 앞서 언급한 바와 같이, 여러 가지 옵션을 사용할 수 있는데, 여기서는 이미지에 경계 상자를 추가해 보겠습니다.

다음으로, 작업에 배정할 팀을 선택합니다. 여기서 자동 데이터 레이블 지정을 선택할 수 있습니다. 또한 정확도를 높이기 위해 여러 작업자에게 동일한 이미지에 레이블을 지정하도록 요청할 수도 있습니다.

레이블 지정 작업

마지막으로, 작업자에게 추가 지침을 제공하여 수행해야 하는 특정 작업을 자세히 설명하고 몇 가지 예를 제시합니다.

레이블 지정 작업

이것으로 완료되었습니다! 이제 레이블 지정 작업 준비가 되었습니다. 이제 팀(사실은 제가…)이 일을 할 때입니다.

레이블 지정 작업

이미지 레이블 지정

이메일로 받은 URL에 로그인하면 배정된 작업 목록이 표시됩니다.

작업

[Start working] 버튼을 클릭하면 지침과 작업할 첫 번째 이미지가 표시됩니다. 도구 상자를 사용하여 상자를 그리거나 확대/축소하는 등의 작업을 실행할 수 있습니다. 꽤 직관적이지만, 적당한 상자를 그리는 데는 시간과 주의가 필요합니다. 왜 그렇게 시간이 많이 걸리는지 알겠네요. 이미지가 10개뿐인데도 말입니다.

다른 이미지를 확대해 보겠습니다. 자동차 7대를 확인할 수 있습니다.

작업

10장의 이미지를 모두 완성하면 휴식을 취하면서 레이블 지정 작업이 완료되는 것을 흐뭇하게 지켜볼 수 있습니다.

레이블 지정 작업

결과 보기

주석이 달린 이미지는 AWS 콘솔에서 바로 볼 수 있으므로 무결성 검사를 실행하는 데 유용합니다. 또한 이미지를 클릭하면 적용된 레이블 목록을 볼 수 있습니다.

우리 목적이 기계 학습 모델을 학습시키는 데 이 정보를 사용하는 것임을 잊어서는 안 되겠죠. 버킷에 저장된 증강 매니페스트 파일에서 이 정보를 찾을 수 있습니다. 예를 들어 제가 5대의 차에 레이블을 지정한 첫 번째 이미지에 대한 정보를 여기 이 매니페스트에서 찾을 수 있습니다.

{
"source-ref": "s3://jsimon-groundtruth-demo/SSDB00001.JPG",
"GroundTruthDemo": {
  "annotations": [
    {"class_id": 0, "width": 54, "top": 482, "height": 39, "left": 337},
    {"class_id": 0, "width": 69, "top": 495, "height": 53, "left": 461},
    {"class_id": 0, "width": 52, "top": 482, "height": 41, "left": 523},
    {"class_id": 0, "width": 71, "top": 481, "height": 62, "left": 589},
    {"class_id": 0, "width": 347, "top": 479, "height": 120, "left": 573}
  ],
  "image_size": [{"width": 1280, "depth": 3, "height": 960}
]
},
"GroundTruthDemo-metadata": {
  "job-name": "labeling-job/groundtruthdemo",
  "class-map": {"0": "Car"},
  "human-annotated": "yes",
  "objects": [
    {"confidence": 0.94},
    {"confidence": 0.94},
    {"confidence": 0.94},
    {"confidence": 0.94},
    {"confidence": 0.94}
  ],
  "creation-date": "2018-11-26T04:01:09.038134",
  "type": "groundtruth/object-detection"
  }
}

Amazon SageMaker에서 사용할 수 있는 기본 제공 Single-Shot Detector 등의 객체 감지 모델을 학습시키는 데 필요한 모든 정보가 들어 있습니다.

지금 이용 가능

이 게시물에서 유용한 정보를 얻으셨습니까? 여기서 설명한 내용은 Amazon SageMaker Ground Truth의 기능 중 극히 일부에 불과합니다. 이 서비스는 현재 미국 동부(버지니아), 미국 중부(오하이오), 미국 서부(오레곤), EU(아일랜드), 아시아 태평양(도쿄)에서 이용할 수 있습니다. 직접 사용해 보시고 의견을 보내 주시기 바랍니다.

Julien;

이 글은 AWS Blog의 Amazon SageMaker Ground Truth – Build Highly Accurate Datasets and Reduce Labeling Costs by up to 70%의 한국어 번역입니다.