超越“我不知道”: 教导大语言模型解释未知
我们在与大语言模型 (LLM) 交互时都经历过这样的时刻: 你问了一个问题,模型以绝对、坚定不移的自信给出了回答。这听起来合情合理,语法完美,逻辑似乎也无懈可击。但随后你意识到——这完全是瞎编的。
这种现象通常被称为“幻觉 (hallucination) ”,当模型面对未知问题 (Unknown Questions) 时,这种现象尤为危险。这些问题实际上并没有确定的答案。它们可能基于错误的前提,询问未来的事情,或者在语言上模棱两可。
当一个 LLM 面对像“谁赢得了 2035 年的超级碗?”这样的问题时,标准模型可能会臆造一支获胜队伍。一个经过更多安全微调的模型可能会直接拒绝回答: “我不知道”或“我无法回答这个问题”。
但是,简单的拒绝就足够了吗?想象一下人类专家。如果你问一位历史学家: “拿破仑什么时候使用过互联网?”,他们不会仅仅说“我不知道”。他们会纠正你: “拿破仑不可能使用互联网,因为在他去世近两个世纪后互联网才被发明出来。”
这篇博客文章将深入探讨一篇引人入胜的研究论文,题为 “Don’t Just Say ‘I don’t know’! Self-aligning Large Language Models for Responding to Unknown Questions with Explanations” (别只说“我不知道”!大语言模型针对未知问题进行解释性回答的自我对齐) 。我们将探讨研究人员如何使用一种称为自我对齐 (Self-Alignment) 的方法,不仅教导 LLM 拒绝未知问题,还能解释为什么这些问题无法回答。
问题所在: 过度自信与“未知”
LLM 接受的训练是预测下一个 token。它们擅长延续某种模式。如果你提供一个问题,最自然的模式补全就是一个答案。这导致了过度自信。
研究人员指出了当前 AI 安全措施中的一个关键缺口。现有的方法大多集中在拒绝上——教导模型在检测到不确定性时关闭回答。然而,作者认为,一个值得信赖的 LLM 应该表现出“响应能力 (response-ability) ”。它应该能够:
- 检测到一个问题是未知的。
- 分类它为什么是未知的 (例如,它是错误的前提吗?它是关于未来的吗?) 。
- 向用户解释其中的推理。
让我们看一个论文中提供的具体例子,来说明这些反应之间的区别。

在图 1 中,用户问道: “温布尔登网球锦标赛男子奖杯顶端能找到什么动物?”
- 第一个回答 (幻觉) : 模型自信地编造了一只“猎鹰”。这在事实上是错误的。
- 第二个回答 (拒绝) : “答案是未知的。”这很安全,但没有帮助。
- 第四个回答 (自我对齐) : 这是黄金标准。模型纠正了前提: 奖杯实际上是以菠萝为特色,而不是动物。
要达到这种细致程度通常需要大量的人工标注训练数据,这既昂贵又缓慢。这篇论文的核心创新在于一种无需海量人工干预,而是利用 LLM 自我教学来实现这一目标的方法。
解决方案: 自我对齐
提出的方法被称为 Self-Align 。 其直觉非常巧妙: 虽然 LLM 可能难以直接正确回答未知问题,但如果引导得当,它们通常具备构建这些问题并评估它们的潜在知识。
该过程利用少量的“种子数据” (仅几个示例) 和大量的标准已知问题数据集 (如广泛可用的 QA 数据集) 。然后,它使用 LLM 将这些已知问题转化为未知问题,从而生成自己的训练数据。

如图 2 所示,该工作流包含四个不同的阶段:
- 引导式问题重写: 将已知问题转化为未知问题。
- 条件化响应生成: 用解释来回答这些新问题。
- 差异驱动的自我筛选: 过滤掉糟糕的数据 (关键的质量控制步骤) 。
- 监督微调 (SFT): 在这些筛选后的数据上训练模型。
让我们分解这个“迭代式自我对齐”过程的每个阶段。
第一阶段: 引导式问题重写
该过程始于大量标准的“已知问题” (例如,“谁赢得了 1996 年奥运会?”) 。目标是将这些问题变异为“未知问题”。
研究人员确定了未知问题的四个主要类别:
- 信息不全 (Incomplete) : 缺乏必要的细节。
- 未来式 (Futuristic) : 询问尚未发生的事件。
- 错误前提 (Incorrect) : 包含错误的假设。
- 歧义 (Ambiguous) : 语言上不清楚或有多种解释。
模型会获得一些人类编写的示例 (种子数据) ,展示如何重写问题。例如,为了创建一个未来式问题,种子可能会展示如何将过去的日期更改为未来的日期。
这个生成过程的数学公式为:

在这里,\(\mathcal{D}_{uq}^c\) 代表针对特定类别 \(c\) (如“未来式”) 生成的未知问题。模型 \(\mathcal{M}\) 接受提示 \(z_{qr}^c\)、种子数据 \(\mathcal{D}_{seed}^c\) 和一个已知问题 \(q\) 来生成新的未知问题。
例如,如果已知问题是*“2003 年得克萨斯州州长是谁?”,模型可能会将其重写为“2033 年得克萨斯州州长会是谁?”*
第二阶段: 条件化响应生成
现在系统已经生成了成千上万个“未知问题”,它需要生成理想的响应——即我们期望的“解释”。
研究人员使用“类别感知提示 (Class-Aware Prompts) ”。由于系统知道它刚刚生成了一个未来式问题,它会专门提示 LLM 解释为什么一个未来式问题无法得到确定的回答。

在这个公式中,模型通过查看新的未知问题 (\(p_i\)) 和原始的已知问题 (\(q_i\)) 来生成响应。这使得模型可以对比两者。
对于像*“温布尔登奖杯上是什么动物?”*这样的错误前提问题,提示会指示模型: “以下问题是不正确的。请指出其不正确之处来回答该问题。”
第三阶段: 差异驱动的自我筛选
这可以说是论文中最具创新性的部分。
当 LLM 生成自己的训练数据时,存在很高的噪声风险。有时“重写”会失败。也许模型试图将“谁是总统?”重写为未来式问题,但只是再次输出了“谁是现任总统?”。如果我们用这个来训练,模型就会学会拒绝回答有效的问题。
标准的自我对齐方法通常要求模型对自己的输出进行“打分” (例如,“给这个回答打 1 到 5 分”) 。作者发现这对于未知问题效果不佳,因为模型通常对问题是否真的未知感到困惑。
相反,他们提出了差异驱动的自我筛选 (Disparity-driven Self-Curation) 。
这个想法依赖于语义差异。系统向模型展示两对内容:
- 原始的已知对: (已知问题,已知答案)
- 生成的未知对: (未知问题,解释性回答)
然后,它要求模型对这两对之间的差异进行打分。

如果重写成功,差异应该很大。
- 已知对: “谁在 2000 年赢了?” -> “某人。”
- 未知对: “谁会在 3000 年赢?” -> “我无法回答,因为那是在未来。”
这两种交互在语义上是非常不同的。因此,差异分数很高,数据被保留。
如果重写失败 (问题仍然可回答) ,差异分数就会很低,数据就会被丢弃。这个过滤器起到了高质量筛子的作用,确保只有最好的例子进入训练集。
第四阶段: 监督微调与迭代
最后,筛选后的数据集被用于微调基础模型。

这是一个标准的监督学习目标,即最大化给定未知问题 (\(p\)) 下正确解释 (\(r\)) 的概率。
关键在于,这个过程是迭代式的。一旦模型经过微调 (变成 \(\mathcal{M}^{(1)}\)) ,它在理解未知问题方面就会变得更好。然后,它被用来生成新的数据,这些数据经过筛选后用于训练 \(\mathcal{M}^{(2)}\),依此类推。模型自举其能力,在每个循环中变得更聪明。
实验与结果
为了验证这种方法,研究人员将 Self-Align 方法与几个强基线进行了测试,包括提示工程方法 (如 Self-Ask) 和其他微调策略。
设置
他们使用了两个主要的数据集进行评估: QNotA (一个公共数据集) 和一个名为 KUQP (已知-未知问题对) 的新建数据集。它们涵盖了四类未知问题: 信息不全、未来式、错误前提和歧义。

他们在两个流行的开源 LLM 上测试了该方法: Vicuna-7B 和 LLaMA-2-7B 。
评估涵盖了三个不同的任务:
任务 1: 未知问题检测
模型能否简单地识别出一个问题是否未知?这是一个二分类任务 (已知 vs. 未知) 。
结果显示,基于提示的基线 (询问模型“这是已知的吗?”) 表现不一致,并且对提示的措辞很敏感。然而, Self-Aligned 方法始终优于基线。
论文指出了一个有趣的观察结果: 标准的 LLaMA-2 通常比 Vicuna 更过度自信,经常无法检测到未知问题。在自我对齐之后,两个模型都看到了显著的改进。
任务 2: 未知问题分类
模型能否识别出问题为什么未知 (例如,将其分类为“歧义”或“未来式”) ?

如表 3 所示,Self-Aligned 方法在所有方面都取得了最高的 F1 分数。对于 Vicuna 模型,F1 分数在 QNotA 数据集上从仅有的 0.076 (零样本) 跃升至 0.436 (Self-Aligned) 。这是一个巨大的进步,表明微调过程成功地教会了模型关于信息缺失原因的细微差别。
任务 3: 开放式响应生成
这是终极测试: 生成实际的文本响应。由于没有单一的“正确”句子,研究人员使用 GPT-4 作为裁判,比较 Self-Aligned 响应与基线响应 (胜率分析) ,并进行了人工评估。

表 4 显示了胜率。如果数字高于 0.500,则表示 Self-Aligned 模型击败了基线。你可以看到 Self-Aligned (K=3) (意味着 3 次迭代训练) 始终击败几乎所有基线,通常胜率在 60% 到 90% 之间。
研究人员还进行了人工评估 (论文中的表 5,在图片集中显示为针对自我增强数据的表 6) 。人类标注者对响应的诚实性、可理解性和有用性进行了评分。

Self-Augmented 数据 (模型为训练生成的数据) 的评分明显高于零样本尝试,证明了条件化生成和差异筛选过程产生了高质量的训练材料。
为什么有效?差异的力量
这篇论文最重要的发现之一是对差异驱动的自我筛选方法的验证。
研究人员将他们的方法与“原则驱动”的方法 (即仅询问模型“这是一个好的训练示例吗?”) 进行了比较。

在图 3 中, 蓝色柱状图代表差异方法。你可以看到它始终优于“无筛选” (黄色) 和“原则驱动” (粉色/红色) 方法。
这证实了一个假设,即 LLM 更擅长发现语义差异 (差异) ,而不是对质量做出绝对判断。对于模型来说,说“这两个句子意味着非常不同的事情”比说“这个句子是一个有效的未知问题”要容易得多。
迭代的影响
如果重复这个过程,模型会持续变好吗?

图 4 显示了 3 次迭代 (K=0 到 K=3) 的性能。
- 任务 1 (左) : 检测准确率稳步上升。
- 任务 2 (右) : 分类能力在第一次迭代后急剧提高,然后趋于平稳/稳定。
这表明模型有效地进行了“自举”。它变得越聪明,它为下一轮生成的训练数据就越好,这反过来又使它更聪明。
更广泛的意义与结论
“Self-Align” 论文为 AI 的安全性和可靠性提出了一条令人信服的道路。通过将目标从简单的拒绝 (“我不知道”) 转变为解释 (“这就是为什么该前提是有缺陷的”) ,我们创造了更有帮助、更值得信赖的 AI 系统。
最令人兴奋的方面是可扩展性 。 因为该方法依赖于 LLM 生成自己的训练数据,所以它不需要数千小时昂贵的人工劳动。几颗种子足以培育出高质量训练示例的森林。
关键要点:
- 主动解释: LLM 应该解释为什么它们无法回答,纠正用户的误解。
- 自我增强: LLM 可以通过重写已知问题来为未知问题生成自己的训练数据。
- 差异过滤: 比较“已知”和“未知”对是过滤 AI 生成的训练数据的一种更优越的方式。
- 信任: 一个能解释其局限性的 AI 是我们可以更深层信任的 AI。
随着我们迈向更自主的智能体,模型识别其边界并清晰解释它们的能力,将成为高级智能的一个决定性特征。
](https://deep-paper.org/en/paper/file-2982/images/cover.png)