MACE 역량 추정
Potato에서 MACE 알고리즘을 사용해 주석자 역량을 추정하고, 불일치에 가중치를 부여하며, 잡음이 있는 다중 주석자 데이터에서 정답 레이블을 추론합니다.
MACE(Multi-Annotator Competence Estimation)는 각 항목의 참 레이블과 주석자 역량 점수를 함께 추정하는 변분 베이즈 EM 알고리즘입니다. 각 주석자를 "아는 사람"(정확한 레이블을 생성)이나 "추측하는 사람"(무작위 레이블을 생성)으로 모델링하여, 0.0에서 1.0 사이의 역량 점수를 산출합니다.
MACE를 사용해야 할 때
MACE는 여러 주석자가 동일한 항목에 레이블을 부여할 때 다음을 하려는 경우에 유용합니다.
- 가장 신뢰할 수 있는 주석자가 누구인지 식별합니다
- 주석자 기여도에 가중치를 부여해 더 높은 품질의 예측 레이블을 생성합니다
- 품질이 낮은 주석자(스패머)를 자동으로 탐지합니다
- 항목별 레이블 불확실성(엔트로피)을 측정합니다
MACE는 범주형 주석 유형인 radio, likert, select, multiselect에서 작동합니다. 자유 텍스트, span, slider, 숫자 주석에는 적용되지 않습니다.
작동 방식
- 데이터 추출: Potato는 모든 주석자에 걸쳐 각 스키마의 모든 주석을 수집하여 항목 대 주석자 행렬을 구성합니다
- EM 알고리즘: MACE는 변분 베이즈 EM 알고리즘을 여러 번 무작위로 재시작하여, 로그 가능도가 가장 높은 해를 유지합니다
- 출력: 각 스키마에 대해 MACE는 예측 레이블, 레이블 엔트로피(불확실성), 주석자별 역량 점수를 산출합니다
- 트리거: MACE는 새 주석이 N개 추가될 때마다 자동으로 실행되거나(설정 가능), 관리자 API를 통해 수동으로 실행할 수 있습니다
설정
yaml
mace:
enabled: true
# Run MACE after every N new annotations
trigger_every_n: 10
# Minimum annotators per item before including in computation
min_annotations_per_item: 3
# Minimum eligible items before MACE will run
min_items: 5
# EM algorithm parameters
num_restarts: 10
num_iters: 50
alpha: 0.5 # Prior for annotator spamming (Beta distribution)
beta: 0.5 # Prior for guessing strategy (Dirichlet distribution)최소 설정
yaml
mace:
enabled: true모든 기본값을 사용합니다. 10개 주석마다 트리거되고, 항목당 3명의 주석자가 필요하며, 최소 5개의 적격 항목, 각 50회 반복으로 10회 재시작합니다.
설정 참조
| 옵션 | 유형 | 기본값 | 설명 |
|---|---|---|---|
enabled | boolean | false | MACE 활성화 |
trigger_every_n | integer | 10 | 새 주석 N개마다 실행 |
min_annotations_per_item | integer | 3 | 항목당 최소 주석자 수(2 >= 여야 함) |
min_items | integer | 5 | 실행 전 최소 적격 항목 수 |
num_restarts | integer | 10 | EM 무작위 재시작 횟수 |
num_iters | integer | 50 | 재시작당 EM 반복 횟수 |
alpha | float | 0.5 | 주석자 스패밍에 대한 사전 분포 |
beta | float | 0.5 | 추측 전략에 대한 사전 분포 |
관리자 API 엔드포인트
모든 MACE 엔드포인트는 X-API-Key 헤더를 통한 관리자 인증이 필요합니다.
개요
bash
curl http://localhost:8000/admin/api/mace/overview \
-H "X-API-Key: your-admin-key"주석자 역량 점수와 MACE 상태를 반환합니다.
json
{
"enabled": true,
"has_results": true,
"schemas": ["sentiment"],
"annotator_competence": {
"user_1": {"average": 0.92, "per_schema": {"sentiment": 0.92}},
"user_2": {"average": 0.85, "per_schema": {"sentiment": 0.85}},
"user_3": {"average": 0.45, "per_schema": {"sentiment": 0.45}}
},
"total_annotations": 30,
"annotations_until_next_run": 0
}예측
bash
curl "http://localhost:8000/admin/api/mace/predictions?schema=sentiment" \
-H "X-API-Key: your-admin-key"각 항목의 예측 레이블과 엔트로피를 반환합니다.
수동 트리거
bash
curl -X POST http://localhost:8000/admin/api/mace/trigger \
-H "X-API-Key: your-admin-key"결과 해석
주석자 역량
- 0.9 - 1.0: 매우 신뢰할 수 있는 주석자
- 0.7 - 0.9: 좋은 주석자, 가끔 불일치 발생
- 0.5 - 0.7: 보통 수준의 주석자, 추가 교육이 도움이 될 수 있음
- 0.5 미만: 스패머 또는 혼란스러워하는 주석자일 가능성
레이블 엔트로피
- 0.0에 가까움: 예측 레이블에 대한 높은 확신
- 0.5 초과: 보통 수준의 불확실성, 항목이 실제로 모호할 수 있음
- log(num_labels)에 가까움: 최대 불확실성, 합의 없음
판정 통합
MACE와 판정이 모두 활성화되면, MACE 예측 레이블이 판정 인터페이스에 추가 신호로 표시됩니다.
yaml
adjudication:
enabled: true
adjudicator_users: ["admin"]
min_annotations: 2
mace:
enabled: true
trigger_every_n: 10
min_annotations_per_item: 2모범 사례
- 기본값으로 시작하기 - 기본 설정은 대부분의 시나리오에서 잘 작동합니다
- 역량 점수 모니터링 - 관리자 대시보드를 사용해 시간에 따른 주석자 품질을 추적합니다
- 교육 단계와 결합하기 - 교육으로 주석자를 검증한 뒤 MACE로 지속적인 품질을 모니터링합니다
- 적절한 임곗값 설정 - 규모가 작은 주석 프로젝트에서는
min_annotations_per_item을 낮춥니다
더 읽어보기
- Quality Control - 기타 품질 관리 메커니즘
- Admin Dashboard - 주석 진행 상황 모니터링
- AI Support - AI 지원 주석
구현 세부 사항은 소스 문서를 참조하세요.