Skip to content

Attribution des tâches

Contrôlez la distribution des instances dans Potato : séquentielle, aléatoire, recoupement uniforme et attributions personnalisées par annotateur, pour maîtriser précisément la charge de travail et la couverture.

Potato propose plusieurs stratégies d'attribution des tâches pour contrôler la façon dont les instances à annoter sont distribuées aux annotateurs.

Acheminement des instances vers les annotateurs — une stratégie décide qui voit chaque élément, et combien de foisAcheminement des instances vers les annotateurs

Vue d'ensemble

L'attribution des tâches contrôle :

  • Quels éléments chaque annotateur voit
  • Combien d'éléments chaque annotateur traite
  • Combien d'annotations chaque élément reçoit
  • L'ordre dans lequel les éléments sont présentés

Principales options de configuration

OptionDescriptionValeur par défaut
assignment_strategyStratégie d'attribution des élémentsrandom
max_annotations_per_userNombre maximal d'éléments par annotateurillimité
max_annotations_per_itemNombre d'annotations visé par élément3

Stratégies d'attribution

Attribution aléatoire

Attribue les éléments au hasard, pour une distribution sans biais.

yaml
assignment_strategy: random
max_annotations_per_item: 3

Convient pour : les tâches d'annotation courantes, où l'ordre n'a pas d'importance.

Attribution dans l'ordre fixe

Attribue les éléments dans l'ordre où ils apparaissent dans le jeu de données.

yaml
assignment_strategy: fixed_order
max_annotations_per_item: 2

Convient pour : les tâches où les annotateurs doivent voir les éléments dans un ordre précis.

Attribution aux éléments les moins annotés

Donne la priorité aux éléments qui ont reçu le moins d'annotations, pour une répartition homogène.

yaml
assignment_strategy: least_annotated
max_annotations_per_item: 5

Convient pour : garantir une couverture suffisante de tous les éléments avant qu'un élément n'accumule un nombre excessif d'annotations.

Attribution par diversité maximale

Donne la priorité aux éléments qui suscitent le plus de désaccord entre les annotations existantes.

yaml
assignment_strategy: max_diversity
max_annotations_per_item: 4

Convient pour : le contrôle de la qualité et le traitement des éléments ambigus.

Attribution par apprentissage actif

Utilise l'apprentissage automatique pour prioriser les instances incertaines.

yaml
assignment_strategy: active_learning
 
active_learning:
  enabled: true
  schema_names: ["sentiment"]
  min_annotations_per_instance: 2
  min_instances_for_training: 20
  update_frequency: 10

Voir Apprentissage actif pour la configuration complète.

Configuration

Configuration moderne (recommandée)

yaml
# Strategy selection
assignment_strategy: random
 
# Limits
max_annotations_per_user: 10    # -1 for unlimited
max_annotations_per_item: 3     # -1 for unlimited
 
# Optional: nested configuration
assignment:
  strategy: random
  max_annotations_per_item: 3
  random_seed: 1234

Configuration héritée

L'ancienne configuration automatic_assignment reste prise en charge :

yaml
automatic_assignment:
  on: true
  output_filename: task_assignment.json
  sampling_strategy: random    # 'random' or 'ordered'
  labels_per_instance: 3       # Annotations per item
  instance_per_annotator: 5    # Items per annotator
  test_question_per_annotator: 0

Questions de test

Insérez des questions de contrôle d'attention dans la file d'annotation :

Définir des questions de test

Ajoutez _testing à l'identifiant de l'instance dans votre fichier de données :

csv
text,id
"This is test question 1",0_testing
"Regular item",dkjfd

Ou en JSON :

json
[
  {"id": "0_testing", "text": "This is a test question"},
  {"id": "regular_001", "text": "Normal annotation item"}
]

Configuration

yaml
automatic_assignment:
  on: true
  test_question_per_annotator: 2  # Insert 2 test questions per annotator

Exemples de configuration

Attribution aléatoire de base

yaml
annotation_task_name: "Sentiment Analysis"
assignment_strategy: random
max_annotations_per_user: 20
max_annotations_per_item: 3

Attribution axée sur la qualité

yaml
annotation_task_name: "Quality Annotation"
assignment_strategy: max_diversity
max_annotations_per_item: 5
max_annotations_per_user: 50

Configuration pour le crowdsourcing

yaml
annotation_task_name: "Crowdsourced Task"
assignment_strategy: random
max_annotations_per_user: 10
max_annotations_per_item: 3
 
# Crowdsourcing settings
hide_navbar: true
jumping_to_id_disabled: true
 
login:
  type: url_direct
  url_argument: workerId

Configuration pour l'apprentissage actif

yaml
assignment_strategy: active_learning
 
active_learning:
  enabled: true
  schema_names: ["sentiment", "topic"]
  min_annotations_per_instance: 2
  min_instances_for_training: 20
  update_frequency: 10
  classifier_name: "sklearn.linear_model.LogisticRegression"
  vectorizer_name: "sklearn.feature_extraction.text.TfidfVectorizer"

Intégration au tableau de bord d'administration

Surveillez et ajustez les paramètres d'attribution depuis le tableau de bord d'administration :

  1. Rendez-vous sur /admin
  2. Ouvrez l'onglet Configuration
  3. Modifiez :
    • Nombre maximal d'annotations par utilisateur
    • Nombre maximal d'annotations par élément
    • Stratégie d'attribution

Les changements prennent effet immédiatement, sans redémarrer le serveur.

Pour aller plus loin

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