Skip to content

Contrôle de la qualité

Garantissez la qualité des annotations dans Potato grâce aux questions de contrôle d'attention, à la validation par étalons, au recoupement configurable des annotateurs et au calcul de l'alpha de Krippendorff.

Potato propose des fonctions de contrôle de la qualité pour que les annotations restent fiables : contrôles d'attention, étalons, pré-annotation et mesures d'accord en temps réel.

Quatre contrôles de qualité, un jeu de données fiable — chaque contrôle attrape un mode de défaillance différent ; combinez-lesQuatre contrôles de qualité, un jeu de données fiable

Vue d'ensemble

Le contrôle de la qualité dans Potato repose sur quatre fonctions :

  1. Contrôles d'attention - Vérifier l'engagement de l'annotateur avec des éléments dont la réponse est connue
  2. Étalons - Mesurer la justesse face à des éléments étiquetés par des experts
  3. Pré-annotation - Pré-remplir les formulaires avec les prédictions d'un modèle
  4. Mesures d'accord - Calculer l'accord inter-annotateurs en temps réel

Contrôles d'attention

Les contrôles d'attention sont des éléments dont la bonne réponse est connue, qui servent à vérifier que les annotateurs sont attentifs et ne cliquent pas au hasard.

Configuration

yaml
attention_checks:
  enabled: true
  items_file: "attention_checks.json"
 
  # How often to inject attention checks
  frequency: 10              # Insert one every 10 items
  # OR
  probability: 0.1           # 10% chance per item
 
  # Optional: flag suspiciously fast responses
  min_response_time: 3.0     # Flag if answered in < 3 seconds
 
  # Failure handling
  failure_handling:
    warn_threshold: 2        # Show warning after 2 failures
    warn_message: "Please read items carefully before answering."
    block_threshold: 5       # Block user after 5 failures
    block_message: "You have been blocked due to too many incorrect responses."

Fichier des éléments de contrôle d'attention

json
[
  {
    "id": "attn_001",
    "text": "Please select 'Positive' for this item to verify you are reading carefully.",
    "expected_answer": {
      "sentiment": "positive"
    }
  }
]

Étalons

Les étalons sont des éléments étiquetés par des experts, qui servent à mesurer la justesse des annotateurs. Par défaut, ils sont silencieux : les résultats sont enregistrés pour l'administrateur, mais les annotateurs ne voient aucun retour.

Configuration

yaml
gold_standards:
  enabled: true
  items_file: "gold_standards.json"
 
  # How to use gold standards
  mode: "mixed"              # Options: training, mixed, separate
  frequency: 20              # Insert one every 20 items
 
  # Accuracy requirements
  accuracy:
    min_threshold: 0.7       # Minimum required accuracy (70%)
    evaluation_count: 10     # Evaluate after this many gold items
 
  # Feedback settings (disabled by default)
  feedback:
    show_correct_answer: false
    show_explanation: false
 
  # Auto-promotion from high-agreement items
  auto_promote:
    enabled: true
    min_annotators: 3
    agreement_threshold: 1.0   # 1.0 = unanimous

Fichier des éléments étalons

json
[
  {
    "id": "gold_001",
    "text": "The service was absolutely terrible and I will never return.",
    "gold_label": {
      "sentiment": "negative"
    },
    "explanation": "Strong negative language clearly indicates negative sentiment.",
    "difficulty": "easy"
  }
]

Promotion automatique

Un élément peut devenir automatiquement un étalon quand plusieurs annotateurs se rejoignent :

yaml
gold_standards:
  auto_promote:
    enabled: true
    min_annotators: 3          # Wait for at least 3 annotators
    agreement_threshold: 1.0   # 100% must agree (unanimous)

Pré-annotation

La pré-annotation permet de pré-remplir les formulaires d'annotation avec les prédictions d'un modèle, ce qui est utile pour l'apprentissage actif et les flux de travail de correction.

Configuration

yaml
pre_annotation:
  enabled: true
  field: "predictions"        # Field in data containing predictions
  allow_modification: true    # Can annotators change pre-filled values?
  show_confidence: true
  highlight_low_confidence: 0.7

Format des données

Incluez les prédictions dans vos éléments de données :

json
{
  "id": "item_001",
  "text": "I love this product!",
  "predictions": {
    "sentiment": "positive",
    "confidence": 0.92
  }
}

Mesures d'accord

L'accord inter-annotateurs mesuré en temps réel par l'alpha de Krippendorff est consultable dans le tableau de bord d'administration.

Configuration

yaml
agreement_metrics:
  enabled: true
  min_overlap: 2             # Minimum annotators per item
  refresh_interval: 60       # Seconds between updates

Lire l'alpha de Krippendorff

Valeur d'alphaInterprétation
α ≥ 0.8Bon accord - fiable pour la plupart des usages
0.67 ≤ α ≤ 0.8Accord provisoire - ne tirez que des conclusions provisoires
0.33 ≤ α ≤ 0.67Accord faible - revoyez les consignes
α ≤ 0.33Accord insuffisant - problèmes sérieux

Intégration au tableau de bord d'administration

Les mesures de contrôle de la qualité sont visibles dans le tableau de bord d'administration, sur /admin :

  • Contrôles d'attention : taux de réussite et d'échec globaux, statistiques par annotateur
  • Étalons : justesse par annotateur, analyse de difficulté par élément
  • Accord : alpha de Krippendorff par schéma, avec son interprétation
  • Éléments promus automatiquement : liste des éléments promus à partir d'un accord élevé

Points de terminaison de l'API

Mesures de contrôle de la qualité

http
GET /admin/api/quality_control

Renvoie les statistiques des contrôles d'attention et des étalons.

Mesures d'accord

http
GET /admin/api/agreement

Renvoie l'alpha de Krippendorff par schéma, avec son interprétation.

Exemple complet

yaml
annotation_task_name: "Sentiment Analysis with Quality Control"
 
annotation_schemes:
  - name: sentiment
    annotation_type: radio
    labels: [positive, negative, neutral]
    description: "Select the sentiment of the text"
 
attention_checks:
  enabled: true
  items_file: "data/attention_checks.json"
  frequency: 15
  failure_handling:
 
gold_standards:
  enabled: true
  items_file: "data/gold_standards.json"
  mode: mixed
  frequency: 25
  accuracy:
 
agreement_metrics:
  enabled: true
  min_overlap: 2
  refresh_interval: 60

Dépannage

Les contrôles d'attention n'apparaissent pas

  1. Vérifiez que le chemin items_file est correct (relatif au répertoire de la tâche)
  2. Vérifiez que les éléments comportent les champs requis (id, expected_answer)
  3. Assurez-vous que frequency ou probability est défini

Les mesures d'accord affichent « Aucun élément avec N annotateurs ou plus »

  1. Vérifiez que les éléments ont bien été annotés par plusieurs utilisateurs
  2. Abaissez min_overlap si nécessaire
  3. Vérifiez que les annotations sont correctement enregistrées

Foire aux questions

Les questions ci-dessous portent sur la mise en place d'un processus de contrôle de la qualité et sur la façon dont les étalons suivent la justesse d'un annotateur au fil d'une session.

Comment mettre en place un processus de contrôle qualité pour l'annotation ?

Mélangez à la file d'attente des éléments dont la réponse est connue et mesurez l'accord sur les éléments que plusieurs annotateurs partagent. Dans Potato, les contrôles d'attention signalent les annotateurs qui ne lisent pas, les étalons mesurent la justesse de chaque annotateur face aux étiquettes d'experts, et les mesures d'accord montrent sur quelles questions les annotateurs divergent. Chacun forme un bloc distinct dans la configuration YAML de la tâche.

Comment les étalons détectent-ils la dérive des annotateurs ?

Les étalons continuent d'apparaître à une fréquence fixe, par exemple un tous les 20 éléments, si bien que la justesse face aux étiquettes d'experts est mesurée pendant tout le temps où l'annotateur travaille, et non une seule fois pendant la formation. Par défaut, Potato enregistre les réponses sans rien afficher et signale un annotateur dans le tableau de bord d'administration dès que sa justesse, calculée sur au moins evaluation_count étalons, passe sous accuracy.min_threshold. Cette justesse est cumulée sur toutes les réponses de l'annotateur aux étalons, si bien qu'une baisse survenant tard dans une longue session la fait bouger lentement. Les échecs aux contrôles d'attention sont comptés et non moyennés, si bien qu'une série soudaine d'échecs atteint le seuil d'avertissement quel que soit le nombre de contrôles que l'annotateur a réussis auparavant.

Pour aller plus loin

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