Consistency-Guided Decoding with Proof-Driven Disambiguation for Three-Way Logical Question Answering

本文提出了 CGD-PD 方法,通过一致性引导解码与证明驱动的消歧机制,有效解决了大语言模型在三值逻辑问答中常见的否定不一致及不确定性预测问题,显著提升了 FOLIO 基准测试的准确率并减少了“未知”预测。

Tianyi Huang, Ming Hou, Jiaheng Su, Yutong Zhang, Ziling Zhang

发布于 2026-04-09
📖 1 分钟阅读☕ 轻松阅读

Each language version is independently generated for its own context, not a direct translation.

这篇论文讲的是如何让大语言模型(LLM)在回答逻辑问题时变得更聪明、更靠谱。我们可以把它想象成给模型请了一位"逻辑纠察队队长"。

1. 核心问题:模型为什么会“翻车”?

想象一下,你让一个学生(大模型)做一道逻辑题:

  • 前提:所有猫都怕水。
  • 假设 A:这只猫怕水。
  • 假设 B:这只猫不怕水。

理论上,如果 A 是对的,B 肯定就是错的。但在实际中,大模型经常犯两个错:

  1. 左右互搏(否定不一致):
    你问它“假设 A 对吗?”,它说“对”。
    你换个问法问它“假设 B 对吗?”,它居然也说“对”!
    这就好比你问一个人“今天是白天吗?”他说是,你问“今天是晚上吗?”他也说是。这种自相矛盾在逻辑上是绝对不允许的。

  2. 过度“装傻”(认知性未知):
    明明题目里信息足够得出答案,模型却总是回答“我不知道(Unknown)”。
    这就像学生明明会做,但因为怕做错,或者稍微有点拿不准,就干脆交白卷说“我不会”。这虽然显得“安全”,但作为助手,这种“装傻”其实降低了它的实用性。

2. 解决方案:CGD-PD(逻辑纠察队)

作者设计了一个叫 CGD-PD 的小工具,它不需要重新训练模型,就像给模型戴上了一副“逻辑眼镜”,在回答问题前自动检查一遍。它的流程非常像侦探破案:

第一步:双重询问(左右互搏检查)

它不会只问一次,而是把问题拆成两半:

  • 问模型:“假设 A 是真的吗?”
  • 同时问模型:“假设 A 的反面(即假设 B)是真的吗?”

如果模型两个回答都很有把握,而且逻辑上互斥(一个说真,一个说假),那就直接通过。

第二步:专门“打假”(针对“我不知道”)

如果模型对其中一个问题回答“我不知道”,纠察队不会马上放弃。它会启动**“证据挖掘模式”**:

  • 它会逼问模型:“你确定不知道吗?能不能从前提里找出一句话作为证据,证明它是真的或假的?”
  • 这就好比老师问学生:“你说不会,那你能不能把课本第几页的那句话背出来?”如果学生能背出来,那就说明他其实知道,只是刚才太保守了。

第三步:二元探针(最后的一击)

如果上面两步还是不行,模型还是说“不知道”,纠察队会换一种更简单的方式提问:

  • 不再问“是/否/不知道”,而是直接问简单的“是/否”判断题。
  • 比如直接问:“前提能推导出 A 吗?(是/否)”。
  • 这种简单的“二选一”往往比复杂的“三选一”更不容易出错。

第四步:最终裁决

如果模型给出的两个答案互相打架(比如两个都说“是”),纠察队会根据逻辑规则,强行把其中一个修正过来,确保最终答案符合逻辑铁律。

3. 效果如何?

作者用了一个叫 FOLIO 的逻辑测试集来检验这个方法。结果非常惊人:

  • 准确率提升:就像给模型开了“外挂”,在 GPT-5.2 和 Claude Sonnet 4.5 这两个顶尖模型上,准确率分别提升了 4.4%6.9%
  • 减少“装傻”:模型回答“我不知道”的次数大幅减少。它不再因为一点点犹豫就放弃,而是敢于在证据充分时给出确定的答案。
  • 成本可控:虽然它多问了几次(平均每个问题多问 4-5 次),但这就像是为了保证质量多检查几遍,对于需要高可靠性的场景(比如医疗、法律、教育)来说,这点额外的计算成本是非常值得的。

总结

这篇论文的核心思想就是:不要盲目相信模型第一次给出的答案

通过**“双重检查”(问正反两面)和“证据逼问”**(针对不知道的情况),我们可以用很少的额外成本,把模型那些“自相矛盾”和“过度保守”的毛病治好。这就好比给一个天才但有点马虎的助手,配了一个严谨的校对员,让最终输出的结果既聪明又靠谱。

在收件箱中获取类似论文

根据您的兴趣定制的每日或每周摘要。Gist或技术摘要,使用您的语言。

试用 Digest →