引言

想象一下,你正在阅读一份晦涩难懂的法律合同或一本复杂的医学期刊。你不是这方面的专家,所以你求助于 AI 助手——比如 ChatGPT 或专门的文档阅读器——来帮助你理解。基于你有限的理解,你问了一个问题: “如果租客粉刷墙壁,会有什么惩罚?”

AI 扫描了文档并回复: “文档没有提及粉刷墙壁的惩罚。”

从技术上讲,AI 是对的。但这并不有用。也许文档中讨论的是“财产改造”或“未经授权的修改”。作为用户,你不知道正确的术语,所以你碰壁了。这种情况凸显了当前问答 (QA) 系统中的一个巨大缺口。虽然大型语言模型 (LLMs) 在告诉我们它们不知道答案方面做得越来越好,但在帮助我们提出正确问题方面仍然相当糟糕。

在这篇文章中,我们将探讨一篇引人入胜的论文,题为 “I Could’ve Asked That: Reformulating Unanswerable Questions” (我本可以问那个: 重构无法回答的问题) , 由康奈尔大学的研究人员撰写。我们将深入探讨为什么用户会提出无法回答的问题,我们如何评估 AI 修正这些问题的能力,以及为什么即使像 GPT-4 这样最强大的模型在这个任务上也显得力不从心。

问题所在: 预设错误

当我们从不熟悉的文档中寻求信息时,我们往往带着假设而来。有时,这些假设是错误的。在自然语言处理 (NLP) 领域,这些通常被称为 预设错误 (presupposition errors)

当一个问题理所当然地认为某些与源文本冲突或根本不存在的事情是真实的时候,就会发生预设错误。例如,如果你问: “为什么公司在 2020 年解雇了 CEO?” 但 CEO 实际上是辞职的,你的问题就包含了一个错误的前提。文档无法回答“为什么他们被解雇”,因为这件事从未发生过。

研究表明,大约 30% 的信息搜索类问题 包含此类错误。

目前的 AI 系统处理这个问题的方式仅仅是检测错误并拒绝回答。虽然这防止了幻觉 (即 AI 编造假的解雇理由) ,但这让用户陷入了僵局。一个真正有用的助手不应该只是说“不”;它应该说: “我无法回答这个问题,但这是我可以回答的一个相关问题。”

目标: 问题重构

研究人员提出了一个新的任务: 问题重构 (Question Reformulation) 。 系统必须首先检测到一个问题是无法回答的,然后将其重写为一个既基于文档又有据可依,且与用户原始意图相关的有效问题。

Figure 1: An example of an LLM suggesting an alternative relevant question the user could have asked whose answers can be found in the document, besides only informing users with the presupposition errors.

如上图 Figure 1 所示,用户询问 Scalia 大法官决定退休的事。然而,文档从未提及退休;它讨论的是他的任命。一个标准的模型可能只会说“无法回答”。然而,提议的系统识别出了这种脱节,并建议: “为什么 Scalia 被任命为大法官?” 这将对话转回到了可验证的事实上,同时没有丢失用户兴趣的主线。

修正问题的策略

在我们教 AI 修正问题之前,我们需要了解人类是如何做到的。研究人员分析了人类如何重构糟糕的问题使其变得可回答。他们确定了几种独特的策略。

Table 1: Strategies from a human user reformulating questions on 100 examples.

Table 1 详细所示,当面对无法回答的前提时,人类倾向于使用三种主要策略:

  1. 修正 (Correction) : 如果用户暗示了一个错误 (例如,“什么食物掺杂了姜黄?”) ,人类会将其修正以符合现实 (“姜黄中通常掺杂了什么物质?”) 。
  2. 泛化 (Generalize) : 如果请求的具体细节不存在 (例如,法律通过的确切日期) ,人类会将范围扩大到可验证的内容 (例如,“该法律被提议了吗?”) 。
  3. 最近匹配/具体化 (Nearest Match / Specification) : 如果用户问了一个模糊或稍微偏离目标的问题,人类会将其细化为文本中涵盖的具体主题。例如,将“克里希纳 (Krishna) 有几只手臂?” (文本中无法验证) 改为“克里希纳通常被描绘成什么样的?” (可验证) 。

这种人类分析充当了路线图。如果 AI 要变得有用,它需要具备这种语义转换的能力——有时修正事实,有时缩小范围,有时放大范围。

COULDASK 基准测试

为了衡量 LLM 执行此任务的能力,作者创建了一个名为 COULDASK 的新基准测试。

为此构建数据集很困难,因为你需要的是看似合理错误的问题。如果问题完全是无稽之谈,任务就太简单了。问题需要微妙,反映真实用户可能产生的困惑。

该基准测试结合了现有数据集 (如 SQuADv2) 和来自三个不同领域的全新生成数据集:

  1. BBC News (新闻文章)
  2. Reddit (社交媒体故事)
  3. Yelp (产品/服务评论)

为了创建新数据,他们使用了一个巧妙的“对抗性”生成流程。他们让一个版本的 GPT-4 生成问题,另一个版本检查它们。他们专门筛选那些让检查模型感到困惑的问题——即模型不确定是否可以回答的问题。这些是最需要重构的“困难”案例。

我们如何给 AI 打分?

评估文本生成本来就很难。评估问题重构更难,因为并没有唯一的“正确”新问题。

研究人员设计了一个包含两部分的指标,称为 成功率 (Success Rate) :

  1. 可回答性 (Answerability) : 新问题实际上能由文档回答吗? (他们训练了一个 Llama-2 分类器来判断这一点,准确率达 95%) 。
  2. 相关性 (Relevance) : 新问题实际上与用户最初询问的内容相关吗?

为了衡量相关性,他们没有使用标准的文本相似度 (这容易被相似的措辞欺骗) 。相反,他们查看了 实体重叠 (Entity Overlap) 。 如果用户问的是关于“特斯拉”和“发明”,重构后的问题理想情况下应该仍然涉及“特斯拉”和“发明”,即使动词发生了变化。

Table 3: Different aspects of question reformulation. Ans indicates whether the reformulated question can be answered by the document, and Rel indicates whether the reformulated question is relevant to the original question.

Table 3 说明了这种评估的细微差别。重构后的问题可能是可回答但不相关的 (右下角的行) ,或者是相关但仍然无法回答的 (上面的行) 。一个成功的模型必须击中“最佳击球点 (sweet spot) ”——即两个条件都满足的第一行。

结果: 现代 LLM 有多聪明?

研究人员测试了几种最先进的模型,包括像 GPT-4GPT-3.5 这样的专有模型,以及像 Llama-2Zephyr 这样的开源模型。

他们使用了各种提示技术,包括:

  • 零样本 (Zero-Shot, ZS) : 只是要求模型修正问题。
  • 少样本 (Few-Shot, FS) : 向模型展示修正问题的示例。
  • 思维链 (Chain-of-Thought, CoT) : 要求模型在生成新问题之前“一步一步地思考”。

发现

结果令人惊讶。尽管围绕 LLM 的炒作很多,但它们在这个特定任务上表现得非常糟糕。

Table 5: Question Reformulation. Success rates using different prompting methods with both proprietary and open-source models on COULDASK. The best method for each base model is italicized, and the best method across all base models is bolded.

Table 5 显示了成功率。几个关键结论:

  • 成功率低: 即使是强大的 GPT-4 也只能达到大约 26% 的平均成功率 (使用零样本提示) 。这意味着它有 3/4 的时间未能提供有用的、可回答的重构。
  • GPT-3.5 挣扎: GPT-3.5 明显更差,成功率通常是个位数 (平均约 7%) 。
  • 开源 vs. 专有: 开源模型 Zephyr 实际上表现得相当好,击败了 Llama-2 和 Mistral,有时在特定数据集上甚至可以与 GPT-4 匹敌。
  • 提示并不总是有帮助: 虽然“思维链” (要求模型逐步思考) 通常能改善推理任务,但在这里并没有持续提供帮助。在某些情况下,它实际上损害了重构的性能。

为什么模型会失败?

为了理解为什么数字这么低,研究人员进行了定性的错误分析。他们查看了模型所犯的具体错误。

Table 6: Error analysis on 100 revised questions generated by different models

Table 6 分解了错误类别。结果发人深省:

  1. 鹦鹉学舌 (Parroting, 62%) : 最常见的错误是模型简单地重新措辞原始的无法回答的问题。它改变了语法,但保留了错误的预设。例如,将 “他什么时候出生的?” 改为 “周杰伦是什么时候出生的?”,如果文档从未提及他的出生日期,这并没有帮助。
  2. 不相关 (Irrelevance, 17%) : 有时模型会完全幻觉出一个新主题。如果用户问一个乐队的“最著名的歌曲”,模型可能会转向“喜欢该乐队的著名音乐家”。这是可回答的,但不是用户想要的。
  3. 复制粘贴 (Copy-Paste, 14%) : 模型在文本中找到一个看起来像问题的句子,然后只是把那个句子变成一个问题,不管它是否有意义。

“全局”与“局部”编辑的难点

这篇论文最有见地的贡献之一是区分了 局部 (Local)全局 (Global) 编辑。

  • 局部编辑 (短片段 Short Span) : 问题中的错误很小。也许只是一个词错了。
  • *例子: * “ USB-C 是什么时候开发的?” vs “ USB 是什么时候开发的?”
  • 全局编辑 (Q Span) : 问题的整个前提都有缺陷。整个句子结构需要改变。
  • *例子: * “什么药是用可卡 (Coca) 制成的?” (如果文本只一般性地讨论了古柯叶) 。

研究人员假设“全局”编辑对 LLM 来说要难得多,因为它们需要组合推理——你必须拆解问题并重建它。

Figure 3: The relation between the percentage of reformulations answerable by the documents and the type of minimum spans in the original questions.

Figure 3 证实了这一假设。图表绘制了成功率 (可回答性) 与所需编辑类型的关系。

  • “q span” (图表左侧) 代表需要全局编辑的问题。
  • “short span” (图表右侧) 代表需要局部编辑的问题。

对于几乎所有模型 (GPT-4, ChatGPT, Zephyr) ,当模型必须修复 “q span” 错误时,性能都会显著下降。这告诉我们,LLM 擅长替换名词 (实体 A -> 实体 B) ,但它们很难完全重构查询的逻辑。

Table 7: Examples of a question with the minimum span being the entire question (q span) and a question where the minimum span is a noun (short span).

Table 7 提供了这种区分的具体例子。“q span” 的例子需要将“什么药是用可卡制成的?”改为“什么物质是从古柯叶中提取的?”这是一种微妙的语义转换,需要理解实体之间的整体关系。“short span” 的例子则是一个简单的关键词交换。

结论与启示

“I Could’ve Asked That” 这篇论文揭示了 AI 中一个关键的用户体验问题。随着我们越来越依赖 LLM 来解析海量信息,我们不能假设用户总是会提出完美的问题。

目前的技术状态,即模型简单地拒绝无法回答的问题,是不够的。然而,正如 COULDASK 基准测试所揭示的,迈向下一个层次——主动重构——是一个巨大的障碍。即使是我们最好的模型,如 GPT-4,也经常陷入简单重复用户错误或幻觉出不相关主题的陷阱。

对于学生和未来的研究人员来说,关键的要点是:

  1. 检测 \(\neq\) 修正: 识别一个糟糕的问题很容易;修复它很难。
  2. 结构很重要: 模型在处理需要重新思考问题逻辑的“全局”编辑时很吃力。
  3. 评估是关键: 我们需要创造性的指标 (如实体重叠) 来判断没有单一正确答案的开放式生成任务。

通过解决问题重构的挑战,我们可以将 AI 从一个只会说“我不知道”的被动工具,转变为一个会说“我不知道那个,但我可以告诉你这个”的主动合作者。