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 评估和片段标注指南。有关实现细节,请参见错误片段源文档。