크라우드소싱 연동
Potato를 Prolific 및 Amazon MTurk와 연동하여 크라우드소싱 주석을 수행합니다. 완료 URL, 참가자 ID 추적, 주의 확인, 결제 구성을 다룹니다.
Potato는 대규모 주석 작업을 위해 Prolific 및 Amazon Mechanical Turk와 같은 크라우드소싱 플랫폼과 매끄럽게 연동됩니다.
Prolific 연동
기본 설정
yaml
crowdsourcing:
platform: prolific
enabled: true
completion_code: "POTATO2024" # Code shown on completionURL 매개변수
Prolific은 URL 매개변수를 통해 참가자 정보를 전달합니다.
yaml
crowdsourcing:
platform: prolific
url_params:
- PROLIFIC_PID # Participant ID
- STUDY_ID # Study ID
- SESSION_ID # Session ID작업자는 다음을 통해 접근합니다.
text
https://your-server.com/?PROLIFIC_PID=xxx&STUDY_ID=xxx&SESSION_ID=xxx
Prolific 구성
Prolific 연구 설정에서:
- Study URL을 Potato 서버로 설정합니다
- URL 매개변수를 추가합니다:
?PROLIFIC_PID={{%PROLIFIC_PID%}}&STUDY_ID={{%STUDY_ID%}}&SESSION_ID={{%SESSION_ID%}} - Completion code를 구성과 일치하도록 설정합니다
검증
Prolific 참가자를 확인합니다.
yaml
crowdsourcing:
platform: prolific
validate_participant: true
completion_code: "POTATO2024"Amazon MTurk 연동
기본 설정
yaml
crowdsourcing:
platform: mturk
enabled: trueHIT 구성
서버를 가리키는 External Question HIT를 생성합니다.
xml
<?xml version="1.0" encoding="UTF-8"?>
<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
<ExternalURL>https://your-server.com/?workerId=${workerId}&assignmentId=${assignmentId}&hitId=${hitId}</ExternalURL>
<FrameHeight>800</FrameHeight>
</ExternalQuestion>URL 매개변수
yaml
crowdsourcing:
platform: mturk
url_params:
- workerId
- assignmentId
- hitId샌드박스 테스트
먼저 MTurk 샌드박스로 테스트합니다.
yaml
crowdsourcing:
platform: mturk
sandbox: true # Use sandbox environment작업자 관리
작업자 추적
yaml
crowdsourcing:
track_workers: true
worker_id_field: worker_id작업자당 인스턴스 제한
yaml
instances_per_annotator: 50재참여 작업자 차단
작업자가 작업을 다시 수행하지 못하도록 합니다.
yaml
crowdsourcing:
prevent_retakes: true품질 관리
주의 확인
테스트 질문을 삽입합니다.
yaml
attention_checks:
enabled: true
frequency: 10 # Every 10 instances
fail_threshold: 2
action: warn # or 'block'골드 스탠다드 질문
json
{
"id": "gold_1",
"text": "The sky is typically blue during a clear day.",
"gold_label": "True",
"is_gold": true
}yaml
quality_control:
gold_questions: true
gold_percentage: 10 # 10% of instances
min_gold_accuracy: 70시간 제한
yaml
crowdsourcing:
min_time_per_instance: 5 # seconds
max_time_total: 3600 # 1 hour저품질 작업 거부
yaml
quality_control:
auto_reject:
enabled: true
conditions:
- gold_accuracy_below: 50
- completion_time_under: 300 # seconds완료 처리
완료 코드 표시
yaml
completion:
show_code: true
code: "POTATO2024"
message: "Thank you! Your completion code is: {code}"완료 시 리디렉션
yaml
completion:
redirect: true
redirect_url: "https://prolific.co/submissions/complete?cc={code}"사용자 정의 완료 페이지
yaml
completion:
custom_template: templates/completion.html결제 등급
품질 기반
yaml
payment:
tiers:
- name: bonus
condition:
gold_accuracy_above: 90
amount: 0.50
- name: standard
condition:
gold_accuracy_above: 70
amount: 0.00
- name: reject
condition:
gold_accuracy_below: 50전체 예시: Prolific 연구
yaml
task_name: "Sentiment Analysis Study"
# Crowdsourcing settings
crowdsourcing:
platform: prolific
enabled: true
completion_code: "SENT2024"
url_params:
- PROLIFIC_PID
- STUDY_ID
- SESSION_ID
prevent_retakes: true
# Open access for crowdworkers
allow_all_users: true
# Task assignment
instances_per_annotator: 50
annotation_per_instance: 3
# Quality control
attention_checks:
enabled: true
frequency: 10
fail_threshold: 2
quality_control:
gold_questions: true
gold_percentage: 5
min_gold_accuracy: 70
# Data
data_files:
- path: data/main.json
text_field: text
# Annotation scheme
annotation_schemes:
- annotation_type: radio
name: sentiment
description: "What is the sentiment?"
labels:
- Positive
- Negative
- Neutral
keyboard_shortcuts:
Positive: "1"
Negative: "2"
Neutral: "3"
# Completion
completion:
show_code: true
code: "SENT2024"
message: |
## Thank you for participating!
Your completion code is: **{code}**
Please return to Prolific and enter this code to receive payment.전체 예시: MTurk HIT
yaml
task_name: "Image Classification HIT"
crowdsourcing:
platform: mturk
enabled: true
url_params:
- workerId
- assignmentId
- hitId
allow_all_users: true
instances_per_annotator: 20
# Time constraints
crowdsourcing:
min_time_per_instance: 3
max_time_total: 1800
# MTurk form submission
completion:
mturk_submit: true
submit_url: "https://www.mturk.com/mturk/externalSubmit"
annotation_schemes:
- annotation_type: radio
name: category
description: "What is shown in this image?"
labels:
- Cat
- Dog
- Bird
- Other작업자 모니터링
관리자 대시보드
yaml
admin_users:
- researcher@university.edu
admin_dashboard:
enabled: true
show_worker_stats: true/admin에서 다음을 확인합니다.
- 작업자 완료율
- 인스턴스당 평균 시간
- 골드 정확도 점수
- 주의 확인 결과
작업자 데이터 내보내기
bash
potato export-workers config.yaml --output workers.csv모범 사례
- 철저히 테스트 - 먼저 소규모 그룹으로 파일럿을 실행하세요
- 공정한 보수 설정 - 예상 시간을 계산하고 공정하게 지급하세요
- 명확한 지침 - 예시와 예외 사례를 포함하세요
- 주의 확인 사용 - 무작위 클릭을 잡아내세요
- 골드 질문 포함 - 이해도를 확인하세요
- 실시간 모니터링 - 문제를 일찍 발견하세요
- 거부에 대비 - 명확한 품질 기준을 미리 정하세요
- 문제 소통 - 문제에 대해 작업자에게 연락하세요
- 피드백을 반영해 개선 - 작업자 의견을 바탕으로 개선하세요
- 정기적으로 데이터 내보내기 - 마지막까지 기다리지 마세요
추가 자료
- MTurk 연동 - 자세한 MTurk 설정 가이드
- 비밀번호 없는 로그인 - URL 기반 인증
- 품질 관리 - 주의 확인 및 골드 스탠다드
구현 세부 정보는 소스 문서를 참조하세요.