引言

大型语言模型 (LLM) 已经掌握了流畅表达的艺术。它们可以写诗、总结邮件,甚至生成代码。然而,有一个领域是它们出了名地难以攻克的: 严格的逻辑推理 。 如果你向一个 LLM 展示一个涉及多个变量、量词 (“所有人”、“有些人”) 和否定的复杂一阶逻辑 (FOL) 谜题,它经常会产生一个看起来令人信服但在逻辑上站不住脚的答案 (幻觉) 。

为了弥合这一差距,研究人员一直在使用“合成数据”——由算法生成的逻辑谜题——来训练模型。其思路很简单: 如果模型看到足够多完美的逻辑示例,它可能会学到背后的规则。然而,现有的数据生成方法有些僵化,依赖于特定领域的算法先生成证明,然后再将其翻译成文本。这限制了训练数据的多样性和语言的自然度。

在论文 “Scaling Synthetic Logical Reasoning Datasets with Context-Sensitive Declarative Grammars” (利用上下文敏感的声明式文法扩展合成逻辑推理数据集) 中,Damien Sileo 提出了一个名为 Unigram 的新颖框架。这种方法彻底改变了我们生成推理数据的方式。Unigram 不再是构建证明树然后翻译,而是使用灵活的文法同时生成自然语言和逻辑公式,然后使用外部定理证明器来确定答案。

结果令人震惊。通过在这个新数据集上训练一个相对较小的模型 (DeBERTa-v3-base,仅有 1.84 亿参数) ,研究人员在人类编写的逻辑基准测试中达到了最先进的准确率,超越了庞大的 GPT-4 的表现。

背景: 合成逻辑数据的困境

要理解这篇论文的重要性,我们首先需要看看合成推理数据集通常是如何创建的。

标准做法: 前向推理

以前的数据集如 RuleTakerLogicNLI 依赖于 前向推理 或证明树生成。

  1. 从公理开始: 系统从一组逻辑规则开始 (例如,“如果 X 是 A,那么 X 就是 B”) 。
  2. 生成证明: 它通过算法构建一个有效的推导路径 (证明树) 。
  3. 翻译: 最后,它将该特定证明翻译成英语。

虽然这确保了逻辑的正确性,但它引入了“采样偏差”。生成器只产生符合其特定证明生成算法的问题。这通常导致“推理深度的错觉”,即模型学会了识别证明的形状,而不是理解逻辑语义。此外,在这个框架中生成“中立” (Neutral,即前提既不能证明也不能证伪假设) 或“矛盾” (Contradiction) 的示例需要复杂且不自然的变通方法。

目标: 自然语言推理 (NLI)

该论文关注自然语言推理格式,它包含三个部分:

  • 前提 (Premise): 一组事实和规则 (例如,“所有学生都是快乐的。Mary 是个学生。”) 。
  • 假设 (Hypothesis): 一个需要测试的陈述 (例如,“Mary 是快乐的。”) 。
  • 标签 (Label): 逻辑关系:
  • 蕴涵 (Entailment): 基于前提,假设 必须 为真。
  • 矛盾 (Contradiction): 假设 必须 为假。
  • 中立 (Neutral): 无法从前提确定假设的真假。

挑战在于如何在无需人工干预的情况下,生成数百万个语言多样且逻辑复杂的此类对子。

核心方法: Unigram 框架

研究人员提出了 Unigram , 这是一个声明式的生成框架。他们不再编写代码来生成证明,而是编写一个 文法 (grammar) 来描述英语句子和逻辑公式如何相互关联。

1. 绑定两种语言

Unigram 的核心创新在于它能在完全相同的时间生成两种输出: 自然语言 (英语)逻辑代码 (TPTP)

在标准的上下文无关文法 (CFG) 中,你可能有一条规则说一个 Sentence (句子) 由一个 NounPhrase (名词短语) 和一个 VerbPhrase (动词短语) 组成。在 Unigram 中,规则绑定了 两种 语言。一条规则定义了:

  • 输入类型: 这条规则需要什么参数?
  • 实现器 (Realizers): 两个模板——一个用于英语,一个用于逻辑表示 (TPTP) 。
  • 约束 (Constraints): 规则应用必须满足的条件。

例如,一条规则可能定义如何表达“全称肯定”陈述:

  • 英语实现器: “Everyone who is {0} is {1}.” (所有是 {0} 的人都是 {1}。)
  • 逻辑实现器: ![X]: ({0}[X] => {1}[X]) (对于所有 X,如果 X 是 0,那么 X 是 1) 。

2. 上下文敏感约束

标准文法通常是“上下文无关”的,意味着它们不知道句子生成过程中之前发生了什么。Unigram 是上下文敏感的。它维护生成的“状态”。

这允许实施至关重要的语义约束,例如:

  • 相异性 (Distinctness): 防止冗余陈述,如“Mary likes Mary” (Mary 喜欢 Mary) 或“If Mary is happy then Mary is happy” (如果 Mary 快乐那么 Mary 快乐) 。
  • 约束检查: 确保生成的谓词在逻辑上不会相互冲突 (例如,确保某人不会同时被描述为“高”和“矮”,除非那是故意的矛盾设计) 。

3. 基于求解器的标注

Unigram 不是试图生成一个 导致 特定假设的前提 (这很难) ,而是独立 (但相关) 地生成前提和假设,然后问: “这两者之间的关系是什么?”

为了回答这个问题,系统将生成的 TPTP 逻辑代码输入 Vampire , 这是一个强大的外部一阶逻辑定理证明器。

  • 如果 Vampire 证明 Premise AND (NOT Hypothesis) 是不可能的,则标签为 蕴涵 (Entailment)
  • 如果 Vampire 证明 Premise AND Hypothesis 是不可能的,则标签为 矛盾 (Contradiction)
  • 否则,就是 中立 (Neutral)

这种方法允许生成更复杂多样的逻辑结构,因为生成器不需要预先知道答案——求解器会稍后算出结果。

4. 更好的逻辑建模

论文引入了以前数据集中缺失的几个逻辑细节:

  • 显式有限域与开放域: 在逻辑中,证明“房间里的每个人”和证明“宇宙中的每个人”是不同的。

  • *有限: * “Mary 和 Paul 是房间里仅有的人。” (此处可进行归纳法) 。

  • *开放: * “任何地方的每个人……” Unigram 对这种区别进行了建模,创建了测试模型是否理解量词范围的问题。

  • 现实谓词: 以前的数据集经常使用随机形容词 (“悲伤的老鼠是绿色的”) 。Unigram 使用语义一致的谓词。它确保“蓝色”和“绿色”被视为互斥的 (你不能既是蓝又是绿) ,而“富有”和“快乐”则不是。这迫使模型学习现实世界的逻辑约束。

  • 约束实质条件句: 在形式逻辑中,“如果 P 那么 Q” (\(P \rightarrow Q\)) 在 P 为假时技术上是真的。这被称为 实质条件句。然而,在自然语言中,说“如果独角兽存在,那么月亮就是用奶酪做的”感觉很奇怪,即使在逻辑上它是“有效”的 (因为独角兽不存在) 。这经常让模型感到困惑。Unigram 添加了约束,防止这些令人困惑、空泛的条件句出现在否定中,使数据更清晰、更稳健。

实验与结果

研究人员创建了一个名为 Unigram-FOL 的数据集,包含 10 万个生成的示例。然后,他们在这个数据上微调了 DeBERTa-v3 模型 (Base 和 Large 版本) ,并在各种基准上进行了测试。

基准测试

  • FOLIO: 由专家人工标注的逻辑问题数据集。这是黄金标准。
  • RuleTaker / LogicNLI / FLD: 其他合成数据集 (用于比较) 。
  • WANLI: 一个需要多样化推理的困难 NLI 数据集。

主要发现

结果显示了明显的性能层级。

辅助合成训练数据集对评估任务影响的比较。

如上表所示,在 Unigram-FOL 模型 (D-base 的第 5 行,D-large 的第 13 行) 上的训练效果始终优于在以前的合成数据集 (RuleTaker, LogicNLI, FLD) 上训练的模型。

1. 击败 GPT-4: 也许最惊人的结果是在 FOLIO 上的表现。

  • GPT-4 (配合外部求解器提示) 在 FOLIO 上达到约 72.5% 的准确率。
  • 在 Unigram-FOL 上微调的 DeBERTa-Large 达到了 82.2%
  • 当 Unigram-FOL 与另一个数据集 (FLD) 结合时,性能跃升至 88.6%

这证明了如果训练数据质量足够高,一个比大型语言模型 (LLM) 小得多的专用模型可以在逻辑任务上实现超越人类水平的性能。

2. “现实性”消融实验: 研究人员进行了“消融研究” (移除特征以查看什么最重要) 。

  • 移除现实谓词: 当他们用随机形容词 (像 LogicNLI 那样) 替换智能谓词时,性能显著下降 (Base 模型从 64.4% 降至 62.4%,在特定片段测试中下降更多) 。
  • 移除条件约束: 允许“空泛”的实质条件句同样损害了性能。

这证明了不仅仅是数据的 数量 很重要,逻辑质量——对开放域和语义干扰等现实世界约束的建模——至关重要。

结论与启示

“Unigram” 论文给我们上了关于当前 AI 状态宝贵的一课: 数据质量至高无上。

通过从过程式证明生成转变为由强大的求解器支持的声明式文法,作者创建了一个比以往任何尝试都能更好地捕捉一阶逻辑细微差别的数据集。他们证明了我们不一定需要万亿参数的模型来解决复杂的推理任务。一个 1.84 亿参数的模型,当被喂以高质量、语言多样且逻辑合理的合成数据时,可以超越行业巨头。

对于学生和研究人员来说,这开辟了令人兴奋的途径。它表明“神经符号” AI——结合神经网络的灵活性与符号逻辑 (通过像 Vampire 这样的求解器) 的严谨性——是一条强有力的前进道路。未来的工作可以将这种基于文法的方法扩展到更复杂的领域,如规划、模态逻辑 (推理可能性/必要性) ,甚至是代码验证。

代码和数据集已公开,允许任何人尝试生成自己的逻辑世界并训练模型来掌握它们。