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ésultat | Confidence | Validé ? |
|---|
| 2/3 concordants | 0.667 | ❌ Non (< 0.67) |
| 3/4 concordants | 0.750 | ✅ Oui |
| 4/5 concordants | 0.800 | ✅ Oui |
| 3/3 concordants | 1.000 | ✅ Oui |
| 5/5 concordants | 1.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.75 → VALIDÉ ✅
// 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âche | Taux d’échec attendu |
|---|
| BINARY_CHOICE | < 5 % |
| SENTIMENT_ANALYSIS | 5–15 % |
| CONTENT_MODERATION | 10–20 % |
| COMPLEX_ANNOTATION | 15–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.