Skip to content

Estimación de Competencia MACE

Estima la competencia de los anotadores y las etiquetas verdaderas usando el algoritmo MACE.

Estimación de Competencia MACE

MACE (Multi-Annotator Competence Estimation) es un algoritmo EM Bayesiano Variacional que estima conjuntamente las etiquetas verdaderas para cada elemento y las puntuaciones de competencia del anotador. Modela a cada anotador como "conocedor" (produce etiquetas correctas) o "adivinador" (produce etiquetas aleatorias), generando una puntuación de competencia entre 0.0 y 1.0.

Cuándo Usar MACE

MACE es útil cuando tienes múltiples anotadores etiquetando los mismos elementos y deseas:

  • Identificar qué anotadores son más confiables
  • Producir etiquetas predichas de mayor calidad ponderando las contribuciones de los anotadores
  • Detectar anotadores de baja calidad (spammers) automáticamente
  • Medir la incertidumbre de las etiquetas (entropía) por elemento

MACE funciona con tipos de anotación categóricos: radio, likert, select y multiselect. No se aplica a anotaciones de texto libre, span, slider o numéricas.

Cómo Funciona

  1. Extracción de datos: Potato recopila todas las anotaciones para cada esquema de todos los anotadores, construyendo una matriz de elementos por anotadores
  2. Algoritmo EM: MACE ejecuta múltiples reinicios aleatorios del algoritmo EM Bayesiano Variacional, conservando la solución con la mejor log-verosimilitud
  3. Salida: Para cada esquema, MACE produce etiquetas predichas, entropía de etiquetas (incertidumbre) y puntuaciones de competencia por anotador
  4. Activación: MACE se ejecuta automáticamente después de cada N nuevas anotaciones (configurable), o puede activarse manualmente a través de la API de administración

Configuración

yaml
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)

Configuración Mínima

yaml
mace:
  enabled: true

Usa todos los valores por defecto: se activa cada 10 anotaciones, requiere 3 anotadores por elemento, mínimo 5 elementos elegibles, 10 reinicios con 50 iteraciones cada uno.

Referencia de Configuración

OpciónTipoPor defectoDescripción
enabledbooleanfalseHabilitar MACE
trigger_every_ninteger10Ejecutar después de cada N nuevas anotaciones
min_annotations_per_iteminteger3Mínimo de anotadores por elemento (debe ser >= 2)
min_itemsinteger5Mínimo de elementos elegibles antes de ejecutar
num_restartsinteger10Reinicios aleatorios para EM
num_itersinteger50Iteraciones EM por reinicio
alphafloat0.5Prior para spamming del anotador
betafloat0.5Prior para estrategia de adivinación

Endpoints de la API de Administración

Todos los endpoints de MACE requieren autenticación de administrador mediante el encabezado X-API-Key.

Vista General

bash
curl http://localhost:8000/admin/api/mace/overview \
  -H "X-API-Key: your-admin-key"

Devuelve las puntuaciones de competencia de los anotadores y el estado de MACE:

json
{
  "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
}

Predicciones

bash
curl "http://localhost:8000/admin/api/mace/predictions?schema=sentiment" \
  -H "X-API-Key: your-admin-key"

Devuelve las etiquetas predichas y la entropía para cada elemento.

Activación Manual

bash
curl -X POST http://localhost:8000/admin/api/mace/trigger \
  -H "X-API-Key: your-admin-key"

Interpretación de Resultados

Competencia del Anotador

  • 0.9 - 1.0: Anotador altamente confiable
  • 0.7 - 0.9: Buen anotador, desacuerdos ocasionales
  • 0.5 - 0.7: Anotador moderado, puede beneficiarse de entrenamiento adicional
  • Por debajo de 0.5: Posible spammer o anotador confundido

Entropía de Etiquetas

  • Cerca de 0.0: Alta confianza en la etiqueta predicha
  • Por encima de 0.5: Incertidumbre moderada, el elemento puede ser genuinamente ambiguo
  • Cerca de log(num_labels): Incertidumbre máxima, sin consenso

Integración con Adjudicación

Cuando tanto MACE como la adjudicación están habilitados, las etiquetas predichas por MACE aparecen como una señal adicional en la interfaz de adjudicación:

yaml
adjudication:
  enabled: true
  adjudicator_users: ["admin"]
  min_annotations: 2
 
mace:
  enabled: true
  trigger_every_n: 10
  min_annotations_per_item: 2

Mejores Prácticas

  1. Comienza con los valores por defecto - la configuración predeterminada funciona bien para la mayoría de los escenarios
  2. Monitorea las puntuaciones de competencia - usa el panel de administración para rastrear la calidad de los anotadores a lo largo del tiempo
  3. Combina con fases de entrenamiento - usa el entrenamiento para calificar a los anotadores, luego MACE para monitorear la calidad continua
  4. Establece umbrales apropiados - reduce min_annotations_per_item para proyectos de anotación más pequeños

Lecturas Adicionales

Para detalles de implementación, consulta la documentación fuente.