2411.04368_SimpleQA: Measuring short-form factuality in large language models

Abstract

  • SimpleQA 是一个用来测试语言模型回答简单事实性问题能力的评测集。

  • 它有两个特点:

    1. 有挑战性:这些问题是专门设计来难倒 GPT-4 的。

    2. 评分简单:每个问题只有一个明确无误的正确答案。

  • 模型的表现分为三类:正确、错误、未作答。

  • 理想的模型应该答对自己有把握的问题,跳过自己不确定的

1.Introduction

  • 目前的大语言模型(LLM)有一个重要问题:它们有时会“胡说八道”,也就是产生不符合事实的回答,这被称为“幻觉(hallucination)”。这是限制它们广泛应用的一个关键障碍。

  • 由于评估一个回答是否真实很难(尤其是长文本里包含很多事实),作者提出了一个简化方法:只看简短、明确的事实性问答题,每个问题只有一个正确答案。

  • 为此,他们设计了一个名为 SimpleQA 的基准数据集,共有 4,326 个这类简短问题。

  • 这个数据集具有以下特点:

    1. 答案准确性高:由两个独立的 AI 训练师确认答案。

    2. 易用:问题短小,运行快,便于自动打分。

    3. 有挑战性:对现有最强模型(如 GPT-4o 和 Claude)也很难,准确率不到 50%。

    4. 题材广泛:涵盖历史、科技、艺术、地理、电视节目等多种领域。

  • 目标是用 SimpleQA 来更准确、可靠地衡量模型的“事实性能力”。

2.Data Collection and Verification

2.1 问题与答案标准

  • 单一答案:问题必须有一个明确无争议的答案,避免模糊问法(如“哪一年”比“什么时候”更明确)。

  • 答案不随时间变化:问题要“永不过时”,例如限定具体剧集(如“第13季”),不允许加“截至2023年”。

  • 有依据:创建问题时要提供可靠网页作为答案来源,另一位标注员独立回答问题,答案一致才保留。

  • 要有挑战性:问题必须能难倒至少一个GPT模型(大多数是GPT-4),否则重新设计问题。

  • 截止时间点:所有问题都需能在2023年12月31日前被回答。

2.2 数据质量

  • 自动检测:使用ChatGPT自动检查问题是否违规(例如不明确、时效性差、多重答案),违规的退回修改。

  • 独立验证:每个问题由第二位标注员独立回答,同时回答是否满足“唯一答案”和“答案不变”。

  • 多来源验证:最终只保留至少有两个不同网站作为依据的问题。

  • 人工抽查:从中抽1000个问题由第三位标注员回答,ChatGPT评估准确率为94.4%,最终估计整体错误率约为3%。

2.3 数据多样性

  • 涵盖多个话题:科技(858)、政治(709)、艺术(550)等。

  • 答案类型多样:约33%为日期,24%是人名,15%是数字,10%是地点,18%是其他。

  • 来源广泛:大多数来自wikipedia.com,其次是fandom.com、ac.uk、imdb.com等。

2.4 评分与指标

  • 评分方式:ChatGPT 判断模型答案是“正确”“错误”或“未尝试”:

    • 正确:包含参考答案、无矛盾。

    • 错误:与参考答案矛盾。

    • 未尝试:没有回答或答案不完整。

  • 核心指标

    • 整体正确率:正确回答问题的比例。

    • 尝试正确率:在尝试回答中,答对的比例。

    • F-score:两者的调和平均值,反映整体表现。

  • 惩罚式评分:可设定错误答案的负分值(如 -9),然后用“答对+1,未答+0,答错-9”的方式算总分,更严格衡量模型风险控制能力。

4.Measuring calibration

  • 这段主要讲的是如何衡量大语言模型(LLM)是否“知道自己知道什么”,也就是“校准能力(calibration)”。

什么是校准?

  • 校准指的是模型的信心值(自我评估)与真实准确率的一致程度

  • 比如一个模型说它对某个答案有 80% 的把握,那它在所有说 80% 把握的题上,实际答对的比例也应该是 80%,这就是“完美校准”。

怎么衡量校准?

有两种方法:

方法一:让模型说出它的信心值

  • 提问时加入提示词,比如:“请给出你的最佳答案,并附上你对这个答案正确的信心百分比。”

  • 然后统计不同信心水平下,模型实际答对的概率。

  • 结果:

    • 模型说得越有信心,准确率确实越高(有正相关)✅。

    • 但总体来看,模型普遍高估了自己的能力(在 y=x 线下),即信心大于实际准确率 ❌。

    • 大模型(如 gpt4o、o1-preview)通常比小模型(如 gpt4o-mini、o1-mini)更校准。

  • prompt:

Here is the question:
{question}
Please provide your best guess and a confidence score between
0% to 100% in the following JSON format:
{
    "answer": "Your answer here",
    "confidence_score": number
}

方法二:同一个问题问 100 次,看答案出现的频率

  • 使用相同问题反复提问,看模型是否总给出同样答案。

  • 如果某个答案出现频率很高,那说明模型“很有信心”。

  • 然后看高频答案的实际正确率是否也高。

  • 结果:

    • 高频答案的准确率确实更高 ✅。

    • 和第一种方法一样,大模型校准更好,频率越高,准确率越高。

总结

  • 校准好:模型信心值 ≈ 真实准确率。

  • 当前模型问题:通常太自信,准确率低于信心值。

  • 改进方向:提高模型对自己答案信心值的准确性。

Appendix B Guessing strategy and F-score

  • 虽然 F-score 是一个常用的评价指标,但它有一个问题:它鼓励模型在有超过 50% 把握答对时就去猜答案,而不是选择不回答。

  • 如下为证明

  • F-score 的计算公式是: $F=2c2c+2i+n$

    • 其中:

      • c 是答对的数量;

      • i 是答错的数量;

      • n 是没作答的数量。

  • 如果模型面对一道题,它有超过 50% 的把握能答对,那么:

    • 猜这道题的期望得分高于直接跳过这道题。

    • 即使有可能猜错,从总体 F-score 来看还是更划算

  • 数学上,他们举了个不等式来证明这点:

    • 左侧表示猜测的预期 F 分数,假设正确的概率为 50/50;右侧表示未回答附加问题的分数。

    • 表示“尝试猜”带来的期望得分更高。

    • 公式 $2c+12c+2i+n+2>2c2c+2i+n+1$

备注

一句话总结:F-score 机制下,只要模型有超过一半把握答对,就应该选择猜答案而不是跳过。

推理过程

  • F-score 原始公式:

F=2c2c+2i+n
  • 场景设定:

    • 假设:模型预测这道题有 50% 概率答对,50% 答错;

  • 尝试作答之后的期望 F-score

情况 A:选择作答

  • 答对(概率 0.5)

    • cc+1

    • 分母变为 2(c+1)+2i+n=2c+2+2i+n

    • 对应 F-score 为: $F答对=2(c+1)2c+2i+n+2$

  • 答错(概率 0.5)

    • ii+1

    • 分母变为 2c+2(i+1)+n=2c+2i+2+n

    • 对应 F-score 为: $F答错=2c2c+2i+n+2$

  • 期望 F-score = 两种结果的加权平均

    • 公式 $F平均=2c+12c+2i+n+2$

情况 B:放弃作答

  • 放弃作答

    • nn+1

    • 公式 $F放弃=2c2c+2i+n+1$