Truth Serum
把意外流行打分用到标注上。每个标签后面多问一个小问题,就能让 Potato 在难题上胜过多数投票,全程不需要任何黄金标签。
v2.7.0 新增
多数投票偏偏在标注最难的地方失效:一群人自信地答错,而知情的少数人是对的。Truth Serum 在每次给出标签之后追加一个小问题。
你选的是 Sarcastic。你觉得有多大比例的其他标注者会和你选一样的标签?

一个滑块,一次点击。这些预测支撑起意外流行(surprisingly popular)原则(Prelec 2004;Prelec、Seung 与 McCoy 2017,Nature):实际流行度超出预测流行度最多的那个标签,就是当前能拿到的对真相的最佳估计,而且计算它不需要任何黄金标签。
背后的直觉是,持有正确少数派观点的人通常知道自己是少数派,所以他们的答案最后会比所有人预测的都更流行。
据我们所知,Potato 是第一个提供同伴预测打分的标注工具。
你能得到什么
- 在难题上胜过多数投票的条目判定。 仪表板上的“多数可能出错的地方”队列会列出所有意外流行标签与多数标签不一致的实例。优先审这些,或者把它们送去裁定。
- 标注者校准分数。 每位标注者预测的一致度,和他们实际从同伴那里得到的一致度差了多远。过度自信和校准不良的标注者不需要任何黄金题目就会浮出水面。
- SP 对齐度。 每位标注者的标签与意外流行判定一致的频率,这是“是否真的知情”而非“是否只是随大流”的一个代理指标。
配置
yaml
truth_serum:
enabled: true
schema: sarcasm # scheme to collect predictions for (default: first radio)
min_annotators: 3 # predictions per item before a verdict is computed
# question: "What percentage of other annotators will choose the same label as you?"| 选项 | 默认值 | 说明 |
|---|---|---|
enabled | false | 总开关。 |
schema | 第一个 radio 方案 | 哪个方案的标签会被要求预测流行度。 |
question | 见上 | 显示在滑块上方的提问。 |
min_annotators | 3 | 计算判定前每个条目所需的最少预测数(下限为 2)。 |
方法说明
在论文里引用 Truth Serum 之前,请先读这几条。
- 这是简化的自答预测变体。每位标注者只预测自己所选标签的流行度,而不是给出所有标签上的完整分布。一个标签的预测流行度是其支持者预测值的均值,它的意外度是
actual % − predicted %,SP 判定就是被投过票的标签中意外度最高的那个。 - 只有在预测数达到
min_annotators或以上时才会算判定。小样本的判定噪声很大;3 是下限而不是推荐值,5 以上更好。 - 校准误差是拿每个预测去比对该条目上其他标注者之间的一致度,把标注者自己排除在外。
- 标注者可以改。每个实例上最后一对 (标签, 预测) 生效。
数据与 API
预测持久化到 {output_annotation_dir}/truth_serum/predictions.jsonl(只追加;每位标注者在每个实例上以最后一条记录为准)。
| 端点 | 方法 | 鉴权 | 用途 |
|---|---|---|---|
/truth_serum/api/predict | POST | session | 记录标签 + 预测百分比 |
/truth_serum/api/mine | GET | session | 该标注者的预测(用于恢复控件状态) |
/truth_serum/dashboard | GET | admin | 判定 + 校准仪表板 |
/truth_serum/api/stats | GET | admin | 仪表板聚合数据 |
/truth_serum/api/export | GET | admin | 完整 JSON 导出(判定 + 原始预测) |