Skip to content

Intégration du crowdsourcing

Reliez Potato à Prolific et à Amazon MTurk pour l'annotation en crowdsourcing. Couvre les URL de finalisation, le suivi des identifiants de participants, les vérifications d'attention et la configuration des paiements.

Potato s'intègre aux plateformes de crowdsourcing comme Prolific et Amazon Mechanical Turk pour les tâches d'annotation à grande échelle.

Intégration avec Prolific

Configuration de base

yaml
crowdsourcing:
  platform: prolific
  enabled: true
  completion_code: "POTATO2024"  # Code shown on completion

Paramètres d'URL

Prolific transmet les informations du participant via des paramètres d'URL :

yaml
crowdsourcing:
  platform: prolific
  url_params:
    - PROLIFIC_PID    # Participant ID
    - STUDY_ID        # Study ID
    - SESSION_ID      # Session ID

Les participants accèdent à la tâche via :

text
https://your-server.com/?PROLIFIC_PID=xxx&STUDY_ID=xxx&SESSION_ID=xxx

Configuration côté Prolific

Dans les paramètres de votre étude Prolific :

  1. Définissez l'URL de l'étude sur celle de votre serveur Potato
  2. Ajoutez les paramètres d'URL : ?PROLIFIC_PID={{%PROLIFIC_PID%}}&STUDY_ID={{%STUDY_ID%}}&SESSION_ID={{%SESSION_ID%}}
  3. Renseignez le code de finalisation pour qu'il corresponde à votre configuration

Validation

Vérifiez les participants Prolific :

yaml
crowdsourcing:
  platform: prolific
  validate_participant: true
  completion_code: "POTATO2024"

Intégration avec Amazon MTurk

Configuration de base

yaml
crowdsourcing:
  platform: mturk
  enabled: true

Configuration du HIT

Créez un HIT de type External Question pointant vers votre serveur :

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}&amp;assignmentId=${assignmentId}&amp;hitId=${hitId}</ExternalURL>
  <FrameHeight>800</FrameHeight>
</ExternalQuestion>

Paramètres d'URL

yaml
crowdsourcing:
  platform: mturk
  url_params:
    - workerId
    - assignmentId
    - hitId

Tests dans le Sandbox

Commencez par tester dans le MTurk Sandbox :

yaml
crowdsourcing:
  platform: mturk
  sandbox: true  # Use sandbox environment

Gestion des travailleurs

Suivre les travailleurs

yaml
crowdsourcing:
  track_workers: true
  worker_id_field: worker_id

Limiter le nombre d'instances par travailleur

yaml
instances_per_annotator: 50

Empêcher les participations répétées

Empêchez les travailleurs de refaire la tâche :

yaml
crowdsourcing:
  prevent_retakes: true

Contrôle de la qualité

Vérifications d'attention

Insérez des questions de contrôle :

yaml
attention_checks:
  enabled: true
  frequency: 10  # Every 10 instances
  fail_threshold: 2
  action: warn  # or 'block'

Questions étalons

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

Limites de temps

yaml
crowdsourcing:
  min_time_per_instance: 5  # seconds
  max_time_total: 3600  # 1 hour

Rejeter le travail de mauvaise qualité

yaml
quality_control:
  auto_reject:
    enabled: true
    conditions:
      - gold_accuracy_below: 50
      - completion_time_under: 300  # seconds

Gestion de la finalisation

Afficher le code de finalisation

yaml
completion:
  show_code: true
  code: "POTATO2024"
  message: "Thank you! Your completion code is: {code}"

Rediriger à la fin de la tâche

yaml
completion:
  redirect: true
  redirect_url: "https://prolific.co/submissions/complete?cc={code}"

Page de finalisation personnalisée

yaml
completion:
  custom_template: templates/completion.html

Paliers de rémunération

Selon la qualité

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

Exemple complet : étude 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
    sequential_key_binding:
      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.

Exemple complet : HIT MTurk

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

Suivi des travailleurs

Tableau de bord d'administration

yaml
admin_users:
  - researcher@university.edu
 
admin_dashboard:
  enabled: true
  show_worker_stats: true

Rendez-vous sur /admin pour consulter :

  • Les taux d'achèvement par travailleur
  • Le temps moyen par instance
  • Les scores de justesse sur les questions étalons
  • Les résultats des vérifications d'attention

Exporter les données des travailleurs

bash
potato export-workers config.yaml --output workers.csv

Bonnes pratiques

  1. Testez sérieusement - Lancez d'abord un pilote avec un petit groupe
  2. Rémunérez équitablement - Estimez le temps réel et payez en conséquence
  3. Donnez des consignes claires - Incluez des exemples et des cas limites
  4. Utilisez des vérifications d'attention - Repérez les clics au hasard
  5. Ajoutez des questions étalons - Vérifiez la compréhension
  6. Surveillez en temps réel - Détectez les problèmes tôt
  7. Anticipez les rejets - Fixez des critères de qualité dès le départ
  8. Communiquez - Signalez les problèmes aux travailleurs concernés
  9. Tenez compte des retours - Améliorez la tâche à partir des commentaires
  10. Exportez régulièrement - N'attendez pas la fin de l'étude

Pour aller plus loin

Pour les détails d'implémentation, consultez la documentation source.