수십만 장을 사람이 손으로 레이블링하는 비용은 감당하기 어렵다. Specialty는 "이걸 어떻게 싸고 정확하게 붙이는가"를 묻고, 답의 중심에 Ground Truth가 있다.
Ground Truth는 레이블링 잡을 네 조각으로 구성한다.
| 구성 요소 | 내용 |
|---|---|
| 입력 데이터 | S3의 매니페스트(JSON Lines)로 지정 |
| 작업 유형 | 이미지 분류, 바운딩 박스, 시맨틱 세그멘테이션, 텍스트 분류, 개체명 인식, 비디오 등 |
| 워크포스 | 누가 레이블링할 것인가 (아래 표) |
| 레이블링 UI | 내장 템플릿 또는 커스텀 HTML 템플릿 |
출력은 학습에 바로 쓸 수 있는 표준 augmented manifest(JSON Lines)로 나온다.
import boto3
sm = boto3.client("sagemaker")
sm.create_labeling_job(
LabelingJobName="cat-dog-bbox",
LabelAttributeName="annotations",
InputConfig={"DataSource": {"S3DataSource": {
"ManifestS3Uri": "s3://my-lake/labeling/input.manifest"}}},
OutputConfig={"S3OutputPath": "s3://my-lake/labeling/output/"},
RoleArn=role_arn,
LabelCategoryConfigS3Uri="s3://my-lake/labeling/labels.json",
HumanTaskConfig={
"WorkteamArn": private_workteam_arn, # 워크포스 선택 (아래 표)
"PreHumanTaskLambdaArn": prehuman_lambda,
"TaskTitle": "Draw boxes around cats and dogs",
"NumberOfHumanWorkersPerDataObject": 3, # 객체당 3명 → 합의
"TaskTimeLimitInSeconds": 300,
},
)작업 유형에 따라 사람이 하는 일과 결과물의 모양이 다르다. 지문에서 "무엇을 붙여야 하는가"를 읽으면 유형이 정해진다.
| 작업 유형 | 사람이 하는 일 | 결과 레이블 | 대표 용도 |
|---|---|---|---|
| 이미지 분류 | 사진에 카테고리 하나 선택 | 클래스 레이블 | 불량/정상 판정 |
| 바운딩 박스 | 객체마다 사각형 그리기 | 좌표 + 클래스 | 객체 검출 |
| 시맨틱 세그멘테이션 | 픽셀 단위로 영역 칠하기 | 픽셀 마스크 | 의료 영상, 자율주행 |
| 텍스트 분류 | 문서에 카테고리 부여 | 클래스 레이블 | 감성 분석, 문의 분류 |
| 개체명 인식(NER) | 문장에서 구간 지정 | 오프셋 + 엔티티 타입 | 문서 정보 추출 |
| 비디오 프레임/추적 | 프레임별 객체 표시·추적 | 시간축 + 좌표 | 행동 인식 |
데이터 민감도와 비용을 함께 보고 고른다.
| 워크포스 | 특성 | 적합한 경우 | 금지되는 경우 |
|---|---|---|---|
| Amazon Mechanical Turk | 대규모 공개 작업자, 저비용 | 비민감 공개 데이터, 빠른 대량 처리 | PII·의료·금융 등 규제 데이터 |
| Private | 사내 인력 또는 신뢰 그룹 | 기밀·규제 데이터(의료, 금융) | 인력이 없어 대량 처리가 불가할 때 |
| Vendor | AWS Marketplace 전문 업체 | 전문 지식 필요(의료 영상 판독) | 예산이 극도로 제한적일 때 |
💡 개념: 환자 영상이나 PII 같은 민감 데이터를 Mechanical Turk 같은 공개 워크포스에 노출하면 컴플라이언스 위반이다. 이럴 땐 Private(사내) 또는 NDA·전문성을 갖춘 Vendor를 써야 한다. Specialty가 "민감 데이터의 레이블링 워크포스는?"이라 물으면 답은 거의 항상 Private 또는 Vendor다.
⚠️ 함정: 비용과 규모만 보고 Mechanical Turk를 고르는 것이 이 영역의 대표적 함정이다. 지문에 "환자", "PII", "규제", "기밀"이라는 단어가 하나라도 있으면 공개 워크포스 보기는 즉시 탈락시켜라.
Ground Truth의 핵심 비용 절감 기능은 automated data labeling(액티브 러닝)이다. 동작 순서는 이렇다.
1. 사람이 일부(seed) 레이블링
▼
2. 그 레이블로 모델 학습
▼
3. 모델이 전체 데이터 예측
├─ 확신 높음 → 자동 레이블로 채택 (사람 개입 없음)
└─ 확신 낮음 → 사람에게 라우팅
▼
4. 사람이 모호한 것만 레이블링 → 2번으로 되돌아가 반복
# create_labeling_job에 LabelingJobAlgorithmsConfig를 추가하면 액티브 러닝이 켜진다
labeling_algorithm = {
"LabelingJobAlgorithmsConfig": {
# 작업 유형별 내장 알고리즘 ARN (이미지 분류 예시)
"LabelingJobAlgorithmSpecificationArn":
"arn:aws:sagemaker:us-east-1:027400017018:labeling-job-algorithm-specification/image-classification"
}
}
# 확신 높은 객체는 모델이 자동 레이블링, 모호한 것만 사람에게 → 비용 ↓💡 개념: 액티브 러닝은 "모든 데이터가 학습에 똑같이 유용하지는 않다"에서 출발한다. 모델이 이미 확신하는 샘플은 추가 레이블의 정보 가치가 낮고, 결정 경계 근처의 모호한 샘플(불확실성이 높은 샘플)이 정보 가치가 가장 크다. 그 모호한 샘플에만 집중하는 방식을 uncertainty sampling이라 한다.
사람은 실수한다. 부주의, 편향, 피로로 한 명의 레이블러는 틀릴 수 있다. Ground Truth는 여러 장치로 품질을 지킨다.
NumberOfHumanWorkersPerDataObject를 2~5로 설정해 같은 객체를 여러 명이 레이블링하고 결과를 통합한다(다수결·가중).# 합의: 객체 1개를 3명이 레이블링 → 통합 알고리즘이 최종 레이블 산출
"NumberOfHumanWorkersPerDataObject": 3,
# 통합 로직 (기본은 다수결) 또는 커스텀 Lambda
"AnnotationConsolidationConfig": {
"AnnotationConsolidationLambdaArn": consolidation_lambda_arn
}레이블 품질을 재는 지표로 **레이블러 간 일치도(inter-annotator agreement, 예: Cohen's kappa)**가 있다. 일치도가 낮으면 지침이 모호하거나 작업 자체가 본질적으로 어렵다는 신호다.
| 오류 유형 | 예 | 합의로 잡히나 | 올바른 대응 |
|---|---|---|---|
| 무작위 실수 | 피로로 한 명이 박스를 잘못 침 | 잡힌다 | 합의(다수결) |
| 개인 편향 | 특정 레이블러가 유독 관대함 | 대체로 잡힌다 | 합의 + 레이블러별 품질 추적 |
| 체계적 편향 | 지침이 모호해 전원이 같은 방향으로 틀림 | 못 잡는다 | 지침 명확화 + golden set 검증 |
| 작업 난이도 | 경계 사례가 본질적으로 애매함 | 부분적 | 지침에 경계 사례 예시 추가, 전문 Vendor |
💡 개념: 레이블 노이즈는 모델 성능의 상한을 직접 깎는다. 합의 기반 레이블링은 다수결로 무작위 오류를 줄이지만 체계적 편향(모호한 지침 때문에 모든 레이블러가 같은 방향으로 틀리는 것)은 잡지 못한다. 명확한 레이블링 가이드라인과 golden set(정답을 이미 아는 표본)으로 검증하는 절차가 필수다. 정확도·레이블러 수·액티브 러닝 사이에는 비용 트레이드오프가 있고, 사람 레이블링의 양 자체를 줄이는 쪽이 비용과 품질을 함께 개선하는 정공법이다.
⚠️ 함정: "레이블러를 늘리면 품질이 좋아진다"만 외우면 체계적 편향 문제를 묻는 문제에서 틀린다. 보기에 "지침 명확화", "golden set"이 있으면 그쪽을 의심하라.
레이블링을 시작하기 전에 세 가지를 먼저 묻자.
Specialty는 "레이블링 비용을 어떻게 줄이나?"를 자주 묻고, 액티브 러닝 + 전이학습이 단골 정답이다.
| 수단 | 줄이는 것 | 대가 |
|---|---|---|
| 액티브 러닝 | 사람이 볼 샘플 수 | 초기 seed 레이블은 여전히 필요 |
| 전이학습 | 필요한 레이블 총량 | 도메인이 너무 다르면 효과 감소 |
| 데이터 증강 | 새 레이블 수집 필요량 | 레이블이 깨지는 변형은 금물 |
| 약한 감독 | 초기 레이블 확보 비용 | 규칙이 만든 노이즈가 섞임 |
| 워크포스 단가 인하 | 인건비 | 민감 데이터에는 적용 불가 |
레이블링은 학습 전에만 필요한 게 아니다. 운영 중 모델이 확신하지 못하는 예측을 사람에게 넘겨 검토받는 흐름도 있다.
추론 요청 ─▶ 모델 예측 ─▶ 신뢰도 임계값 판단
├─ 임계값 이상 → 그대로 응답
└─ 임계값 미만 → 사람 검토 대기열(A2I)
▼
검토 결과 저장 → 재학습 데이터로 축적
⚠️ 함정: "운영 중 저신뢰 예측을 사람이 검토"라는 지문에 Ground Truth를 고르면 어색하다. Ground Truth는 학습용 데이터셋에 레이블을 붙이는 도구이고, 추론 결과에 사람 검토를 끼워 넣는 것은 A2I의 자리다.
내일은 Week 1 전체(수명주기·저장·수집·레이블링)를 하나의 데이터 파이프라인으로 종합한다.
선택지를 클릭하면 정답·해설이 펼쳐집니다.
문제 1
50만 장의 환자 X-ray를 레이블링해야 한다. 데이터는 PII를 포함한 의료 정보다. 워크포스 선택으로 가장 적절한 것은?
문제 2
100만 개 이미지에 대한 레이블링 예산이 빠듯하다. 사람의 라벨링 노동을 가장 정보 가치가 큰 샘플에 집중해 전체 비용을 줄이는 Ground Truth 기능은?
문제 3
라벨링 결과의 무작위 사람 오류를 줄이기 위해 동일 객체를 여러 명이 라벨링하고 종합하려 한다. Ground Truth에서 설정하는 항목은?
문제 4
합의(consensus) 기반 레이블링으로도 줄이기 어려운 레이블 품질 문제는?
문제 5
대량 이미지 분류 모델을 위한 레이블링 비용을 근본적으로 줄이는 접근으로 가장 부적절한 것은?