Назначение задач
Как Potato распределяет объекты между разметчиками: все стратегии назначения, стратегия Batch для повторных раундов и возврат брошенных назначений с Prolific.
Назначение задач определяет, какие объекты видит каждый разметчик, сколько он их размечает, сколько разметок получает каждый объект и в каком порядке объекты появляются. На этой странице описаны стратегии назначения в Potato, стратегия Batch для исследований с повторными раундами и возврат назначений, брошенных краудворкерами.
Стратегии назначения
Задайте assignment_strategy одним из значений:
| Стратегия | Что делает |
|---|---|
random | Назначает объекты случайно. |
fixed_order | Назначает объекты в порядке датасета (по умолчанию). |
least_annotated | Отдаёт приоритет объектам, у которых пока меньше всего разметок. |
max_diversity | Отдаёт приоритет объектам с наибольшим расхождением между уже имеющимися разметками. |
diversity_clustering | Строит эмбеддинги объектов, кластеризует их и выдаёт по кругу из разных кластеров. |
batch | Ограничивает назначение явно заданными когортами разметчиков и объектов (см. ниже). |
priority | Сначала выдаёт объекты с наивысшим приоритетом; см. очередь сортировки. |
active_learning | Использует модель, чтобы в первую очередь выдавать объекты, в которых она не уверена. |
assignment_strategy: random
max_annotations_per_user: 10 # -1 for unlimited
max_annotations_per_item: 3 # -1 for unlimitedНазначение пакетами (Batch)
Стратегия batch назначает заранее заданные пакеты объектов конкретным разметчикам. Она сделана для исследований с повторными раундами, где те же разметчики, что видели пакет первого раунда, должны получить соответствующий пакет второго раунда.
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"]Для длинных пакетов вынесите список объектов в отдельный файл данных (json, jsonl, csv, tsv или parquet); идентификаторы читаются по item_properties.id_key:
batch_assignment:
groups:
- name: round1_batch_a
annotators: ["u1", "u2", "u3", "u4"]
instances_file: batches/round1_batch_a.csvОбъекты могут и сами называть допустимых разметчиков. Это удобно, когда данные второго раунда получаются из разметки первого:
assignment_strategy: batch
batch_assignment:
annotator_key: round1_annotatorsПользователи вне заданных когорт при этой стратегии не получают ни одного объекта.
Возврат брошенных назначений
В краудсорсинговых пакетах исполнители могут вернуть задание, не уложиться во время или провалить проверки качества уже после того, как получили объекты. Если включён instance_reclaim, Potato возвращает назначенные, но не размеченные объекты в пул, чтобы их можно было назначить снова.
instance_reclaim:
enabled: true
timeout_hours: 24
preserve_completed_annotations: trueВозврат запускается автоматически: для устаревших назначений во время работы назначения, для исполнителей Prolific, чьи отправки получают статус RETURNED, TIMED-OUT или REJECTED, и для пользователей, заблокированных из-за проваленной проверки внимательности (они освобождают свои неразмеченные объекты сразу).
Для каждой причины можно решить, сохранять ли уже сделанную разметку исполнителя, у которого забрали объекты. Так можно доверять частичной работе исполнителя Prolific, у которого истекло время, и при этом отбрасывать всё от исполнителя, заблокированного контролем качества:
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: falseКогда preserve_completed_annotations равен false, Potato стирает разметку этого пользователя для назначенных ему объектов, снимает с него учёт как с разметчика этих объектов и возвращает объекты в пул. Проваленный ответ на проверку внимательности, из-за которого случилась блокировка, не сохраняется никогда.
Связанные страницы
- Неравномерное покрытие: лимиты разметчиков на объект и выборка перекрытия
- Краудсорсинг: Prolific, SONA и другие панели
- Очередь сортировки по сигналам: стратегия
priority
Подробности реализации см. в исходной документации.