Estimation de la compétence avec MACE
Utilisez l'algorithme MACE dans Potato pour estimer la compétence des annotateurs, pondérer les désaccords et inférer des étiquettes de référence à partir de données d'annotation bruitées.
MACE (Multi-Annotator Competence Estimation) est un algorithme EM bayésien variationnel qui estime conjointement les étiquettes vraies de chaque élément et les scores de compétence des annotateurs. Il modélise chaque annotateur comme « compétent » (produit des étiquettes correctes) ou « devineur » (produit des étiquettes aléatoires), ce qui donne un score de compétence compris entre 0.0 et 1.0.
Quand utiliser MACE
MACE est utile lorsque plusieurs annotateurs étiquettent les mêmes éléments et que vous souhaitez :
- Identifier quels annotateurs sont les plus fiables
- Produire des étiquettes prédites de meilleure qualité en pondérant les contributions des annotateurs
- Détecter automatiquement les annotateurs de faible qualité (spammeurs)
- Mesurer l'incertitude des étiquettes (entropie) par élément
MACE fonctionne avec les types d'annotation catégoriels : radio, likert, select et multiselect. Il ne s'applique pas aux annotations en texte libre, span, slider ou numériques.
Fonctionnement
- Extraction des données : Potato rassemble toutes les annotations de chaque schéma pour l'ensemble des annotateurs, en construisant une matrice éléments par annotateurs
- Algorithme EM : MACE effectue plusieurs redémarrages aléatoires de l'algorithme EM bayésien variationnel et conserve la solution dont la log-vraisemblance est la meilleure
- Sortie : pour chaque schéma, MACE produit des étiquettes prédites, l'entropie des étiquettes (incertitude) et des scores de compétence par annotateur
- Déclenchement : MACE s'exécute automatiquement après chaque N nouvelles annotations (configurable), ou peut être déclenché manuellement via l'API d'administration
Configuration
mace:
enabled: true
# Run MACE after every N new annotations
trigger_every_n: 10
# Minimum annotators per item before including in computation
min_annotations_per_item: 3
# Minimum eligible items before MACE will run
min_items: 5
# EM algorithm parameters
num_restarts: 10
num_iters: 50
alpha: 0.5 # Prior for annotator spamming (Beta distribution)
beta: 0.5 # Prior for guessing strategy (Dirichlet distribution)Configuration minimale
mace:
enabled: trueUtilise toutes les valeurs par défaut : déclenchement toutes les 10 annotations, 3 annotateurs requis par élément, minimum 5 éléments éligibles, 10 redémarrages avec 50 itérations chacun.
Référence de configuration
| Option | Type | Par défaut | Description |
|---|---|---|---|
enabled | boolean | false | Activer MACE |
trigger_every_n | integer | 10 | Exécuter après chaque N nouvelles annotations |
min_annotations_per_item | integer | 3 | Nombre minimal d'annotateurs par élément (doit être >= 2) |
min_items | integer | 5 | Nombre minimal d'éléments éligibles avant exécution |
num_restarts | integer | 10 | Redémarrages aléatoires pour l'EM |
num_iters | integer | 50 | Itérations EM par redémarrage |
alpha | float | 0.5 | Prior pour le spamming de l'annotateur |
beta | float | 0.5 | Prior pour la stratégie de devinette |
Points d'accès de l'API d'administration
Tous les points d'accès MACE requièrent une authentification administrateur via l'en-tête X-API-Key.
Vue d'ensemble
curl http://localhost:8000/admin/api/mace/overview \
-H "X-API-Key: your-admin-key"Renvoie les scores de compétence des annotateurs et l'état de MACE :
{
"enabled": true,
"has_results": true,
"schemas": ["sentiment"],
"annotator_competence": {
"user_1": {"average": 0.92, "per_schema": {"sentiment": 0.92}},
"user_2": {"average": 0.85, "per_schema": {"sentiment": 0.85}},
"user_3": {"average": 0.45, "per_schema": {"sentiment": 0.45}}
},
"total_annotations": 30,
"annotations_until_next_run": 0
}Prédictions
curl "http://localhost:8000/admin/api/mace/predictions?schema=sentiment" \
-H "X-API-Key: your-admin-key"Renvoie les étiquettes prédites et l'entropie pour chaque élément.
Déclenchement manuel
curl -X POST http://localhost:8000/admin/api/mace/trigger \
-H "X-API-Key: your-admin-key"Interpréter les résultats
Compétence de l'annotateur
- 0.9 - 1.0 : annotateur très fiable
- 0.7 - 0.9 : bon annotateur, désaccords occasionnels
- 0.5 - 0.7 : annotateur moyen, pourrait bénéficier d'une formation supplémentaire
- Inférieur à 0.5 : spammeur potentiel ou annotateur désorienté
Entropie des étiquettes
- Proche de 0.0 : forte confiance dans l'étiquette prédite
- Au-dessus de 0.5 : incertitude modérée, l'élément peut être réellement ambigu
- Proche de log(num_labels) : incertitude maximale, aucun consensus
Intégration avec l'adjudication
Lorsque MACE et l'adjudication sont tous deux activés, les étiquettes prédites par MACE apparaissent comme un signal supplémentaire dans l'interface d'adjudication :
adjudication:
enabled: true
adjudicator_users: ["admin"]
min_annotations: 2
mace:
enabled: true
trigger_every_n: 10
min_annotations_per_item: 2Bonnes pratiques
- Commencez par les valeurs par défaut - la configuration par défaut convient à la plupart des scénarios
- Surveillez les scores de compétence - utilisez le tableau de bord d'administration pour suivre la qualité des annotateurs dans le temps
- Combinez avec des phases de formation - utilisez la formation pour qualifier les annotateurs, puis MACE pour suivre la qualité en continu
- Définissez des seuils adaptés - réduisez
min_annotations_per_itempour les projets d'annotation plus petits
Pour aller plus loin
- Quality Control - Autres mécanismes de contrôle qualité
- Admin Dashboard - Suivi de l'avancement de l'annotation
- AI Support - Annotation assistée par IA
Pour les détails d'implémentation, consultez la documentation source.