Skip to content

MACE 能力估計

使用 MACE 演算法估計標註者能力和真實標籤。

MACE(多標註者能力估計)是一種變分貝葉斯 EM 演算法,可以聯合估計每個項目的真實標籤標註者能力分數。它將每個標註者建模為"知道"(產生正確標籤)或"猜測"(產生隨機標籤),得出 0.0 到 1.0 之間的能力分數。

MACE takes a noisy items-by-annotators label matrix and estimates each annotator's competence and the inferred true label per itemWhat MACE estimates

何時使用 MACE

當你有多個標註者標註相同項目並且想要以下功能時,MACE 非常有用:

  • 識別哪些標註者最可靠
  • 通過加權標註者貢獻產生更高品質的預測標籤
  • 自動檢測低品質標註者(垃圾標註者)
  • 衡量每個項目的標籤不確定性(熵)

MACE 適用於分類標註類型:radiolikertselectmultiselect。不適用於自由文本、片段、滑塊或數字標註。

工作原理

  1. 資料提取:Potato 收集所有標註者在每個模式下的所有標註,構建項目-標註者矩陣
  2. EM 演算法:MACE 執行多次隨機重啟的變分貝葉斯 EM 演算法,保留對數似然最好的解
  3. 輸出:對於每個模式,MACE 產生預測標籤、標籤熵(不確定性)和每個標註者的能力分數
  4. 觸發:MACE 在每 N 個新標註後自動執行(可配置),也可通過管理員 API 手動觸發

配置

yaml
mace:
  enabled: true
 
  # Run MACE after every N new annotations
  trigger_every_n: 10
 
  # Minimum annotators per item before including in computation
  min_annotations_per_item: 3
 
  # Minimum eligible items before MACE will run
  min_items: 5
 
  # EM algorithm parameters
  num_restarts: 10
  num_iters: 50
  alpha: 0.5    # Prior for annotator spamming (Beta distribution)
  beta: 0.5     # Prior for guessing strategy (Dirichlet distribution)

最小配置

yaml
mace:
  enabled: true

使用所有預設值:每 10 個標註觸發一次,每個項目需要 3 個標註者,最少 5 個合格項目,10 次重啟每次 50 次迭代。

配置參考

選項類型預設值描述
enabledbooleanfalse啟用 MACE
trigger_every_ninteger10每 N 個新標註後執行
min_annotations_per_iteminteger3每個項目的最少標註者數(必須 ≥ 2)
min_itemsinteger5執行前的最少合格項目數
num_restartsinteger10EM 的隨機重啟次數
num_itersinteger50每次重啟的 EM 迭代次數
alphafloat0.5標註者垃圾標註的先驗
betafloat0.5猜測策略的先驗

管理員 API 端點

所有 MACE 端點需要通過 X-API-Key 頭進行管理員認證。

概覽

bash
curl http://localhost:8000/admin/api/mace/overview \
  -H "X-API-Key: your-admin-key"

返回標註者能力分數和 MACE 狀態:

json
{
  "enabled": true,
  "has_results": true,
  "schemas": ["sentiment"],
  "annotator_competence": {
    "user_1": {"average": 0.92, "per_schema": {"sentiment": 0.92}},
    "user_2": {"average": 0.85, "per_schema": {"sentiment": 0.85}},
    "user_3": {"average": 0.45, "per_schema": {"sentiment": 0.45}}
  },
  "total_annotations": 30,
  "annotations_until_next_run": 0
}

預測

bash
curl "http://localhost:8000/admin/api/mace/predictions?schema=sentiment" \
  -H "X-API-Key: your-admin-key"

返回每個項目的預測標籤和熵。

手動觸發

bash
curl -X POST http://localhost:8000/admin/api/mace/trigger \
  -H "X-API-Key: your-admin-key"

解讀結果

標註者能力

  • 0.9 - 1.0:高度可靠的標註者
  • 0.7 - 0.9:優秀標註者,偶有分歧
  • 0.5 - 0.7:中等標註者,可能需要額外培訓
  • 低於 0.5:潛在的垃圾標註者或困惑的標註者

標籤熵

  • 接近 0.0:對預測標籤有高度信心
  • 高於 0.5:中等不確定性,項目可能確實有歧義
  • 接近 log(標籤數):最大不確定性,無共識

裁決整合

當 MACE 和裁決同時啟用時,MACE 預測標籤作為額外訊號出現在裁決介面中:

yaml
adjudication:
  enabled: true
  adjudicator_users: ["admin"]
  min_annotations: 2
 
mace:
  enabled: true
  trigger_every_n: 10
  min_annotations_per_item: 2

最佳實踐

  1. 從預設值開始 - 預設配置適用於大多數場景
  2. 監控能力分數 - 使用管理員儀表板跟蹤標註者品質隨時間的變化
  3. 與培訓階段結合 - 使用培訓來篩選標註者,然後用 MACE 監控持續品質
  4. 設定適當的閾值 - 較小的標註項目可降低 min_annotations_per_item

延伸閱讀

有關實現細節,請參閱原始碼文件