Skip to content
Guides1 min read

用片段标注发现幻觉

通过高亮出确切的词语并标注错在哪里,以 MQM 风格在 Potato 中用片段标注捕捉模型幻觉和事实错误。

Potato Team

当模型编造内容时,对整个回答点一个"踩"几乎什么都说明不了。你知道它某处错了,却不知道是哪一句、是哪种错误,也不知道有多严重。片段标注解决了这个问题:标注者高亮出确切的词语,并标注它们错在哪里。

这与 MQM 背后的理念如出一辙——MQM 是机器翻译评估多年来一直采用的错误片段框架。标出片段,归类错误,评定严重程度。其结果是你真正能据此行动的数据。

为什么片段胜过整体标记

针对整个回答的"不忠实"标签是一个汇总统计量。而一个片段则是一个位置加一个诊断。有了片段,你就能按类型衡量错误率,在大量输出中发现规律,并为你所关心的失败模式构建有针对性的训练数据。当判断的单位是整个回答时,这些都无从谈起。

在 Potato 中进行配置

高亮出有问题的文本,标注错误类型,并加上一个严重程度的判断,这样一个微不足道的小失误和一个危险的捏造就不会被同等看待。

yaml
annotation_schemes:
  - annotation_type: span
    name: errors
    description: "Highlight each problematic span and label the error type."
    labels: [unsupported_claim, factual_error, contradiction, fabricated_citation]
    label_colors:
      unsupported_claim: "#f59e0b"
      factual_error: "#ef4444"
      contradiction: "#8b5cf6"
      fabricated_citation: "#ec4899"
  - annotation_type: radio
    name: severity
    description: "How serious is the worst error?"
    labels: [Minor, Major, Critical]

决定你数据质量的那些规则

把源材料交给标注者。离开它,"缺乏依据"就无从定义,所以文档或上下文必须显示在界面上,而不是藏在某个标签页背后。

把你的边界规则一次性确定下来。片段是覆盖整个句子,还是只覆盖那个虚假的从句?两者都说得通;选定一种并把它写下来。

预料到边缘情况下的主观性。在临界案例上,忠实度判断会出现分歧,所以要在一部分样本上收集重叠标注,并在信任这些数字之前先检查一致性。

接下来去哪里

完整的演练,包括如何定义每一种错误类型,可参见检测幻觉指南。若要了解这个问题在检索基础上的版本,请参见 RAG 评估片段标注指南。有关实现细节,请参见错误片段源文档