MACE 能力估计
使用 MACE 算法估计标注者能力和真实标签。
MACE 能力估计
MACE(多标注者能力估计)是一种变分贝叶斯 EM 算法,可以联合估计每个项目的真实标签和标注者能力分数。它将每个标注者建模为"知道"(产生正确标签)或"猜测"(产生随机标签),得出 0.0 到 1.0 之间的能力分数。
何时使用 MACE
当你有多个标注者标注相同项目并且想要以下功能时,MACE 非常有用:
- 识别哪些标注者最可靠
- 通过加权标注者贡献产生更高质量的预测标签
- 自动检测低质量标注者(垃圾标注者)
- 衡量每个项目的标签不确定性(熵)
MACE 适用于分类标注类型:radio、likert、select 和 multiselect。不适用于自由文本、片段、滑块或数字标注。
工作原理
- 数据提取:Potato 收集所有标注者在每个模式下的所有标注,构建项目-标注者矩阵
- EM 算法:MACE 运行多次随机重启的变分贝叶斯 EM 算法,保留对数似然最好的解
- 输出:对于每个模式,MACE 产生预测标签、标签熵(不确定性)和每个标注者的能力分数
- 触发: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 次迭代。
配置参考
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled | boolean | false | 启用 MACE |
trigger_every_n | integer | 10 | 每 N 个新标注后运行 |
min_annotations_per_item | integer | 3 | 每个项目的最少标注者数(必须 ≥ 2) |
min_items | integer | 5 | 运行前的最少合格项目数 |
num_restarts | integer | 10 | EM 的随机重启次数 |
num_iters | integer | 50 | 每次重启的 EM 迭代次数 |
alpha | float | 0.5 | 标注者垃圾标注的先验 |
beta | float | 0.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最佳实践
- 从默认值开始 - 默认配置适用于大多数场景
- 监控能力分数 - 使用管理员仪表板跟踪标注者质量随时间的变化
- 与培训阶段结合 - 使用培训来筛选标注者,然后用 MACE 监控持续质量
- 设置适当的阈值 - 较小的标注项目可降低
min_annotations_per_item
延伸阅读
有关实现细节,请参阅源代码文档。