Skip to content

任務分配

控制 Potato 如何將標註項分發給標註者。涵蓋所有分配策略,包括用於多輪重複研究的自定義 Batch 策略,以及從 Prolific 或被 QC 阻止的工作者那裡回收已放棄的分配。

任務分配控制每位標註者看到哪些標註項、完成多少個、每個標註項獲得多少次標註,以及標註項出現的順序。 本頁介紹 Potato 的分配策略、用於多輪重複研究設計的自定義 Batch 策略,以及如何回收眾包工作者放棄的分配。

分配策略

assignment_strategy 設定為以下之一:

策略作用
random隨機分配標註項(預設值)。
fixed_order按資料集順序分配標註項。
least_annotated優先分配迄今為止標註次數最少的標註項。
max_diversity優先分配現有標註中分歧最大的標註項。
diversity_clustering對標註項進行嵌入和聚類,然後跨聚類輪詢分發。
batch將分配限制於明確的標註者/標註項群組(見下文)。
priority優先分發優先順序最高的標註項;參見 分診佇列
active_learning使用模型優先分配不確定的標註項。
yaml
assignment_strategy: random
max_annotations_per_user: 10    # -1 for unlimited
max_annotations_per_item: 3     # -1 for unlimited

自定義 Batch 分配

batch 策略將預定義的標註項批次分配給特定標註者。它專為多輪重複研究設計而構建,在這類設計中,看過第一輪批次的同一批標註者必須收到與之匹配的第二輪批次。

yaml
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"]

對於較長的批次,將實例列表移到單獨的資料檔案中(jsonjsonlcsvtsvparquet);ID 通過 item_properties.id_key 讀取:

yaml
batch_assignment:
  groups:
    - name: round1_batch_a
      annotators: ["u1", "u2", "u3", "u4"]
      instances_file: batches/round1_batch_a.csv

標註項也可以直接指定其允許的標註者,這在第二輪資料由第一輪標註生成時非常有用:

yaml
assignment_strategy: batch
 
batch_assignment:
  annotator_key: round1_annotators

在此策略下,處於已配置群組之外的使用者不會收到任何標註項。

回收已放棄的分配

在眾包批次中,工作者在收到所分配的標註項後可能會退回、超時或未通過品質檢查。啟用 instance_reclaim 後,Potato 會將已分配但未標註的標註項返回到池中,以便再次分配。

yaml
instance_reclaim:
  enabled: true
  timeout_hours: 24
  preserve_completed_annotations: true

回收會在以下情況下自動執行:分配執行時針對陳舊的分配、針對提交狀態變為 RETURNEDTIMED-OUTREJECTED 的 Prolific 工作者,以及針對因注意力檢查失敗而被阻止的使用者(他們會立即釋放其未標註的標註項)。

你可以按原因分別決定是否保留被回收工作者已完成的標註。這樣你既可以信任超時 Prolific 工作者的部分工作,又能丟棄被品質控制阻止的工作者的全部內容:

yaml
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_annotationsfalse 時,Potato 會清除該使用者對其所分配標註項的標註,撤銷其標註者貢獻記錄,並將這些標註項返回到池中。觸發阻止的那次失敗的注意力檢查回答永遠不會被保留。

相關內容

有關實現細節,請參閱 源文件