任务分配
控制 Potato 如何将标注项分发给标注者。涵盖所有分配策略,包括用于多轮重复研究的自定义 Batch 策略,以及从 Prolific 或被 QC 阻止的工作者那里回收已放弃的分配。
任务分配控制每位标注者看到哪些标注项、完成多少个、每个标注项获得多少次标注,以及标注项出现的顺序。 本页介绍 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);ID 通过 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回收会在以下情况下自动运行:分配运行时针对陈旧的分配、针对提交状态变为 RETURNED、TIMED-OUT 或 REJECTED 的 Prolific 工作者,以及针对因注意力检查失败而被阻止的用户(他们会立即释放其未标注的标注项)。
你可以按原因分别决定是否保留被回收工作者已完成的标注。这样你既可以信任超时 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 会清除该用户对其所分配标注项的标注,撤销其标注者贡献记录,并将这些标注项返回到池中。触发阻止的那次失败的注意力检查回答永远不会被保留。
相关内容
有关实现细节,请参阅 源文档。