Skip to main content

Principe

Chaque tâche est soumise à plusieurs annotateurs indépendants. L’algorithme de consensus compare leurs réponses et valide la tâche si une majorité suffisante s’accorde.
3 annotateurs répondent : Positif, Positif, Négatif
→ confidence = 2/3 = 0.667  →  NON validé (< seuil 0.67)

4 annotateurs répondent : Positif, Positif, Positif, Négatif
→ confidence = 3/4 = 0.75   →  VALIDÉ ✅

Seuil de confiance

Le seuil est fixé à 0.67 (67 %).
RésultatConfidenceValidé ?
2/3 concordants0.667❌ Non (< 0.67)
3/4 concordants0.750✅ Oui
4/5 concordants0.800✅ Oui
3/3 concordants1.000✅ Oui
5/5 concordants1.000✅ Oui
2/3 ne valide PAS. 0.6667 est strictement inférieur au seuil 0.67. Pour une tâche à 3 validations requises, il faut que les 3 soient concordantes (confidence 1.0), ou passer à 4-5 validations où 3/4 suffit.

Cycle de vie d’une tâche

PENDING
  └─ Des réponses arrivent via le SDK
     └─ validationsNeeded réponses collectées
        ├─ confidence ≥ 0.67  →  COMPLETED ✅
        └─ confidence < 0.67  →  escalade Tier 1
              └─ 2 réponses supplémentaires demandées
                 ├─ confidence ≥ 0.67  →  COMPLETED ✅
                 └─ toujours < 0.67   →  FAILED ❌

validationsNeeded

Par défaut, 3 réponses sont collectées par tâche. Vous pouvez augmenter ce nombre à la création :
{
  "type": "SENTIMENT_ANALYSIS",
  "content": "...",
  "options": ["Positif", "Négatif", "Neutre"],
  "validationsNeeded": 5
}
Recommandations :
  • 3 — tâches simples (choix binaire, classification évidente)
  • 5 — tâches ambiguës (sentiment nuancé, modération)
  • 7+ — décisions critiques, contenu légal, médical

Calcul de la confidence

confidence = nombreDeVotesForAnswer / totalReponses

// Exemple : 4 réponses, 3 "Positif"
confidence = 3 / 4 = 0.75VALIDÉ

// L'answer retenue est celle avec le plus de votes
result = "Positif"  (3 votes vs 1 pour "Négatif")

Tâches FAILED

Quand le consensus ne peut pas être atteint :
  • La tâche passe en statut FAILED
  • Aucun crédit n’est débité pour les tâches échouées
  • Un webhook task.failed est envoyé si configuré
  • Vous pouvez recréer la tâche avec validationsNeeded plus élevé
{
  "event": "task.failed",
  "taskId": "cmpkb...",
  "reason": "NO_CONSENSUS",
  "responses": [
    { "answer": "Positif" },
    { "answer": "Négatif" },
    { "answer": "Neutre" },
    { "answer": "Positif" },
    { "answer": "Négatif" }
  ]
}

Taux d’échec typiques

Type de tâcheTaux d’échec attendu
BINARY_CHOICE< 5 %
SENTIMENT_ANALYSIS5–15 %
CONTENT_MODERATION10–20 %
COMPLEX_ANNOTATION15–30 %
Les tâches très subjectives ou ambiguës ont naturellement un taux d’échec plus élevé.

Améliorer la qualité

1. Rédigez des options claires et mutuellement exclusives
❌ Mauvais : ["Bien", "Pas bien", "Peut-être"]
✅ Bon     : ["Positif", "Négatif", "Neutre"]
2. Ajoutez des instructions dans le contenu
{
  "content": "Évaluez ce texte du point de vue du sentiment général exprimé par l'auteur :\n\n\"Le produit est correct mais la livraison était lente.\"",
  "options": ["Positif", "Négatif", "Neutre", "Mixte"]
}
3. Utilisez les golden tasks Des golden tasks bien calibrées filtrent les annotateurs inattentifs, améliorant automatiquement la qualité du consensus.