Skip to content

Cobertura heterogénea de anotadores

Asigna distintos números de anotadores a distintos ítems. Configura un tope predeterminado, una muestra de solapamiento estratificada para monitorear la calidad, refuerzos adaptativos ante el desacuerdo, cuotas por anotador y enrutamiento automático a adjudicación.

La cobertura heterogénea te permite asignar distintos números de anotadores a distintos ítems en lugar de un tope uniforme. El diseño de investigación habitual es un anotador en la mayoría de los ítems, con dos o tres solapándose en una muestra del 5–10 % para monitorear la calidad. Potato expresa esto mediante los bloques de configuración num_annotators_per_item y per_annotator_quota.

Topes de anotadores por ítem

num_annotators_per_item es la clave canónica. Acepta un único entero para un tope uniforme, o una asignación estructurada con un valor predeterminado, una muestra de solapamiento y un refuerzo adaptativo opcional:

yaml
num_annotators_per_item:
  default: 1
  overlap_sample:
    fraction: 0.1
    count: 3
    stratify_by: domain
    seed: 42
  adaptive:
    enabled: true
    disagreement_threshold: 0.5
    boost_to: 3
  min: 1

max_annotations_per_item es ahora un alias obsoleto de num_annotators_per_item: <int>.

Muestra de solapamiento

El bloque overlap_sample eleva el tope en un subconjunto determinista de ítems para monitorear la calidad. El muestreo ocurre una sola vez al inicio, y los ítems elegidos quedan marcados con required_annotations para que la lógica de asignación los trate como de alta cobertura.

CampoTipoDescripción
fractionfloat en (0, 1]proporción de ítems a muestrear
countint ≥ 2tope de anotadores para los ítems muestreados (debe superar a default)
stratify_bycadena (opcional)campo de datos del ítem usado para estratificar la muestra
seedint (opcional)semilla del RNG; por defecto es la global random_seed

Cuando se establece stratify_by, la fracción se aplica por estrato, de modo que cada categoría contribuye proporcionalmente.

Refuerzo adaptativo

El refuerzo adaptativo amplía el tope de un ítem cuyos primeros anotadores discreparon. Una vez que un ítem tiene al menos dos anotaciones y su puntuación de desacuerdo supera disagreement_threshold, su tope se eleva a boost_to y el ítem vuelve a entrar en la cola de asignación. El refuerzo ocurre una sola vez por ítem.

Cuota por anotador

per_annotator_quota controla cuántos ítems se asignan a cada anotador, con independencia de los topes por ítem:

yaml
per_annotator_quota:
  default: 100
  by_user:
    alice: 30
  by_user_role:
    expert: 30
    novice: 200
 
user_roles:
  alice: expert
  carol: novice

Orden de resolución: by_user[uid]by_user_role[user_roles[uid]]default.

Enrutamiento automático a adjudicación

Cuando el bloque de adjudicación está habilitado, los ítems de la muestra de solapamiento que alcanzan su tope se puntúan automáticamente y se envían a la cola de adjudicación si el acuerdo cae por debajo de agreement_threshold. Los ítems de baja calidad afloran en cuanto la muestra se satura, en vez de cuando un adjudicador reconstruye la cola manualmente.

yaml
adjudication:
  enabled: true
  adjudicator_users: [admin]
  min_annotations: 2
  agreement_threshold: 0.75

Inspección del acuerdo

Una vez que los ítems de la muestra de solapamiento se saturan, las estadísticas de acuerdo están disponibles en /admin/iaa, que calcula el conjunto de métricas apropiado para el annotation_type de cada esquema; por ejemplo, kappa de Cohen y de Fleiss para esquemas nominales, kappa ponderada para los ordinales, y kappa a nivel de token más span F1 para los tramos (spans). Consulta la guía de acuerdo entre anotadores para entender qué significan estas métricas.

Ejemplo

Hay una demostración ejecutable en examples/advanced/heterogeneous-coverage/. Desde la raíz del repositorio:

bash
python potato/flask_server.py start examples/advanced/heterogeneous-coverage/config.yaml -p 8000

Usa 20 ítems repartidos en dos dominios, muestrea el 20 % para un solapamiento de 3 anotadores estratificado por dominio, habilita un refuerzo adaptativo con umbral 0.5, define dos niveles de experiencia y enruta los ítems de bajo acuerdo a adjudicación.

Relacionado

Para conocer los detalles de implementación, consulta la documentación de origen.