Asignación de tareas
Controla cómo Potato distribuye los elementos de anotación entre los anotadores. Cubre todas las estrategias de asignación, incluida la estrategia Batch personalizada para estudios de rondas repetidas, y la recuperación de asignaciones abandonadas por trabajadores de Prolific o bloqueados por QC.
La asignación de tareas controla qué elementos ve cada anotador, cuántos completa, cuántas anotaciones recibe cada elemento y el orden en que aparecen los elementos. Esta página cubre las estrategias de asignación de Potato, la estrategia Batch personalizada para diseños de estudios de rondas repetidas y cómo recuperar asignaciones abandonadas por trabajadores de crowdsourcing.
Estrategias de asignación
Establece assignment_strategy en uno de los siguientes valores:
| Estrategia | Qué hace |
|---|---|
random | Asigna elementos de forma aleatoria (el valor predeterminado). |
fixed_order | Asigna elementos en el orden del conjunto de datos. |
least_annotated | Da prioridad a los elementos con menos anotaciones hasta el momento. |
max_diversity | Da prioridad a los elementos con mayor desacuerdo entre las anotaciones existentes. |
diversity_clustering | Incrusta y agrupa los elementos en clústeres y luego los sirve por turnos entre los clústeres. |
batch | Restringe la asignación a cohortes explícitas de anotadores/elementos (ver más abajo). |
priority | Sirve primero los elementos de mayor prioridad; consulta la cola de triaje. |
active_learning | Usa un modelo para priorizar los elementos inciertos. |
assignment_strategy: random
max_annotations_per_user: 10 # -1 for unlimited
max_annotations_per_item: 3 # -1 for unlimitedAsignación Batch personalizada
La estrategia batch asigna lotes predefinidos de elementos a anotadores específicos. Está pensada para diseños de estudios de rondas repetidas, donde los mismos anotadores que vieron un lote de la primera ronda deben recibir el lote correspondiente de la segunda ronda.
assignment_strategy: batch
num_annotators_per_item: 4
batch_assignment:
groups:
- name: round1_batch_a
annotators: ["u1", "u2", "u3", "u4"]
instances: ["r2_item_001", "r2_item_002"]Para lotes largos, mueve la lista de instancias a un archivo de datos aparte (json, jsonl, csv, tsv o parquet); los identificadores se leen con item_properties.id_key:
batch_assignment:
groups:
- name: round1_batch_a
annotators: ["u1", "u2", "u3", "u4"]
instances_file: batches/round1_batch_a.csvLos elementos también pueden indicar directamente sus anotadores permitidos, lo cual resulta útil cuando los datos de la segunda ronda se generan a partir de las anotaciones de la primera:
assignment_strategy: batch
batch_assignment:
annotator_key: round1_annotatorsLos usuarios que estén fuera de las cohortes configuradas no reciben ningún elemento con esta estrategia.
Recuperación de asignaciones abandonadas
En los lotes de crowdsourcing, los trabajadores pueden devolver los elementos, agotar el tiempo o no superar los controles de calidad después de recibir los elementos asignados. Con instance_reclaim activado, Potato devuelve al grupo los elementos asignados pero sin anotar para que puedan asignarse de nuevo.
instance_reclaim:
enabled: true
timeout_hours: 24
preserve_completed_annotations: trueLa recuperación se ejecuta automáticamente para las asignaciones obsoletas cuando se ejecuta la asignación, para los trabajadores de Prolific cuyos envíos pasan a estado RETURNED, TIMED-OUT o REJECTED, y para los usuarios bloqueados por no superar una verificación de atención (que liberan de inmediato sus elementos sin anotar).
Puedes decidir, según el motivo, si conservar las anotaciones completadas de un trabajador recuperado. Esto te permite confiar en el trabajo parcial de un trabajador de Prolific cuyo tiempo se agotó y, al mismo tiempo, descartar todo lo de un trabajador bloqueado por el control de calidad:
instance_reclaim:
enabled: true
timeout_hours: 24
preserve_completed_annotations: true # default for reasons not overridden below
prolific:
status_policies:
TIMED-OUT:
preserve_completed_annotations: true
RETURNED:
preserve_completed_annotations: true
REJECTED:
preserve_completed_annotations: false
quality_control:
preserve_completed_annotations: falseCuando preserve_completed_annotations es false, Potato borra las anotaciones de ese usuario para sus elementos asignados, elimina su crédito como anotador y devuelve los elementos al grupo. La respuesta fallida de la verificación de atención que desencadena un bloqueo nunca se conserva.
Relacionado
- Cobertura heterogénea — límites de anotadores por elemento y muestreo de solapamiento
- Crowdsourcing — integración con MTurk y Prolific
- Cola de triaje basada en señales — la estrategia
priority
Para conocer los detalles de implementación, consulta la documentación de origen.