任務分配
控制 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 會清除該使用者對其所分配標註項的標註,撤銷其標註者貢獻記錄,並將這些標註項返回到池中。觸發阻止的那次失敗的注意力檢查回答永遠不會被保留。
相關內容
有關實現細節,請參閱 源文件。