摘要
近年来,大型语言模型在多个领域中展现出了卓越的泛化能力。然而,它们的推理能力仍有显著提升空间,尤其是在需要多步推理的场景中。尽管大型语言模型拥有广泛的知识,其推理过程往往未能有效地利用这些知识来建立连贯的思维范式。由于推理过程缺乏逻辑原则的约束,这些模型有时会产生幻觉。为了提升大型语言模型在零样本场景下的Chain-of-Thought推理能力,我们提出了LoT(Logical Thoughts) ,这是一种自我改进的提示框架,利用源自符号逻辑中的原则,尤其是归谬法(Reductio ad Absurdum) ,对推理过程逐步进行系统性的验证与修正。在涵盖算术、常识、符号推理、因果推理及社会问题等多个领域的语言任务中所进行的实验评估,展示了逻辑增强推理的有效性。LoT 的实现代码可通过以下链接访问:
https://github.com/xf-zhao/LoT
关键词:大型语言模型、思维链、提示、推理、归谬法
1. 引言
大型语言模型(LLMs)因其处理涉及常识或专业领域知识任务的卓越能力,表现得几乎无所不知。它们的成功已在众多领域得到验证,超出了语言处理的范畴(Bubeck et al., 2023;Yao et al., 2023b;Ahn et al., 2022;Zhao et al., 2023)。然而,生成式大型语言模型仍存在一个尚未解决的重大问题,即它们倾向于以自信的语气产生错误陈述(Bang et al., 2023)。举个简单例子,向一个不联网的语言模型询问最新新闻时,它很容易毫不犹豫地编造事实。
一个具有逻辑推理专长的受过教育的人能够系统地审视论述后再得出结论。与人类的逻辑推理不同,LLM推理中存在的逻辑不严谨使其决策缺乏可信度。虽然LLM拥有大量逻辑概念和技巧,但往往未能以有条理的方式主动利用它们。然而,人类适应的逻辑原则能够提升语言模型的推理能力。以一个简单的逻辑推理任务为例:"如果汤姆在外面踢足球,那么约翰也会加入踢球;如果约翰踢足球,那么玛丽就不会出去。已知玛丽在外面,汤姆在踢足球吗?"ChatGPT中有九成的回答会得出结论:"我们无法判断汤姆是否踢足球。"但借助于逆否命题与原命题具有完全相同的真值这一知识,我们可以提示ChatGPT"使用逆否命题"以另一种方式推理。然后它会正确推断:"......使用第一条陈述的逆否命题,如果约翰不加入(我们已推断出),则意味着汤姆不在外面踢足球。因此,基于给定的信息和逆否命题,可以推断汤姆没有踢足球。"尽管逻辑概念对LLM而言并非新鲜事物,但模型最初仍难以将其整合进去。完整对话见附录A中的图3。
通过提示LLM利用逻辑等价,即在逻辑上等价但用自然语言表达不同,原始前提可以用多种变体表达,有效促进对潜在解法的探索。
受逻辑推理过程的启发,我们提出了LoT(Logical Thoughts,逻辑思维)提示框架,一种完全自动化的推理范式,旨在进一步自我提升LLM的零样本推理能力,不仅让LLM逐步思考,而且根据"反证法"原理逐步验证并在必要时修正推理链,以保证推理的严谨性(整体框架见图1)。
2. 相关工作
为了发挥预训练生成式语言模型的能力,交互提示的质量起着关键作用。
2.1 链式思维提示
先前研究表明,LLM具备解决复杂任务的能力,但需要合适策略来激发这种能力,例如人类参与的对齐微调(Ouyang et al., 2022)和链式思维提示(CoT)(Wei et al., 2022)。CoT通过创建详细推理路径的少量示例,将原始问题拆解为多个小问题,方便模型处理。Least-to-most方法(Zhou et al., 2023)明确提示LLM将复杂问题分解为子问题,逐一解决。此外,零样本链式思维(zero-shot-CoT)(Kojima et al., 2022)展示了仅仅在推理开始前添加"让我们一步步思考"的句子,就能取得显著效果。
我们的方法基于零样本设置,并将零样本CoT作为基线进行对比。现有基于CoT的方法强调推理步骤的具体性,但缺乏对推理可信度的监督,而我们提出了逐步验证机制。
2.2 变异提示
作为一种自回归模型,LLM的输出会受到输入提示的影响。因此,关于提示多样性的研究也非常丰富。总结现有工作,推理过程从以下提示中受益:(1) 与推理任务相关,(2) 表达多样,(3) 有助于复杂任务的分解,(4) 能结合已知事实进行落地,(5) 导致推理步骤的逐步修正。在LoT提示设计中,我们选择性地采用了这些有效的提示特性。
相关性(Relevance)
LLM容易被提示中无关的词汇干扰。预先选择上下文可以提升推理的正确性(Creswell等,2023;Creswell和Shanahan,2022;Ling等,2023)。此前的工作通常利用语言模型评估事实的相关性,并基于对推理步骤有贡献的内容进行推断(Creswell等,2023;Ling等,2023)。我们对每一步推理的验证也是通过提示语言模型选择相关前提来进行的。
多样性(Diversity)
来自多条推理路径的集体智慧(通常通过采样N次获得)有助于产出一致且可靠的答案。尽管采样次数增加了成本,但这种集成方法已广泛结合其他技术以提升准确率(Li等,2023b;Ling等,2023;Yao等,2023a;Zheng等,2023)。单条推理轨迹可能存在偏见。为了产生一组推理候选项,过去的研究通过多次用相同提示生成样本(Wang等,2023),或者在初始阶段创建多样化提示(Li等,2023b)。然而,基于集成的方法既昂贵又效率低下,其多数投票策略的性能有限,因为它不是一种有引导的深入思考策略。
分解(Decomposition)
对复杂问题的自动分解可以提升推理的可靠性,这一点已被Least-to-Most(Zhou等,2023)、Zero-shot-CoT(Kojima等,2022)及许多提示技术(Yao等,2023a;Kojima等,2022;Wei等,2022)的成功所证明。
落地(Grounding)
外部工具或函数,如第三方计算器用于数学问题(Schick等,2023)、维基百科的信息获取(Yao等,2023b),或机器人学中的可操作性评估(Ahn等,2022),能够使生成内容更具意义。这种验证可以在特定条件触发或用于推理过程中(Lightman等,2024;Ling等,2023;Li等,2023b)。LoT主要从逻辑角度启发,利用逻辑原则为LLM生成内容"落地",赋予模型论证不同可能性的能力,同时建议验证并引入对可疑推理步骤的修正。
修正(Revision)
修正(或精炼)可以看作是一种特殊的多样性,但它是基于前一次生成结果作为提示。它重新审视文字,关注内容的有效性和简洁性等质量(Madaan等,2023;Zheng等,2023;Welleck等,2023)。这是一种基于已有内容的迭代生成过程。许多工作实际上都受益于这种方式,尽管未明确指出。例如,Progressive-Hint Prompting(Zheng等,2023)通过逐步引导LLM提供累计可能答案的提示,生成一致的答案,并重复生成直到答案与之前保持一致。其他研究在生成内容时不仅基于前文,还基于额外的反馈(Madaan等,2023)。为了获得高质量的修正,指导性反馈应具体且可操作。LoT避免在无争议的推理步骤上重复工作,只修正被判定为不合理的步骤,从而使推理链只在必要时增长(见图1蓝色圆圈)。此外,我们采用事后解释(Jung等,2022)提供有建设性的建议,以促进有针对性的修正。
2.3 神经符号模型
神经符号模型结合了神经网络与符号表示及推理技术。它们的成功源于能够利用符号化(结构化)的知识来增强学习或推理能力(Sarker 等,2021;d'Avila Garcez 和 Lamb,2020;Nye 等,2021)。与端到端的黑盒框架不同,这些神经符号模型因其透明性而更具可解释性和可说明性。
已有工作采用符号逻辑的概念(Agler,2012)来建立可靠的推理路径(Creswell 等,2023;Jung 等,2022)。针对二元问答问题,Jung 等(2022)提出生成一张事后解释图以表达陈述,并计算相对关系来构建符号逻辑表达式。通过求解该符号表达式的可满足性问题,确定陈述的真值。LoT框架采用了一种受控提示策略,利用逻辑规则和事后论证来增强错误检测。
3. 方法
正如引言中反例证明所示,当利用已知的逻辑规则实现逻辑等价时,生成的不同自然语言表达为LLM提供了从另一种视角进行推理的机会。
一个挑战在于语言模型首先必须识别内在的逻辑结构,才能判断某些先验知识是否能够有效应用。此外,将现实世界中的所有内容都转化为符号表达是不现实的。适用场景受到限制,因为许多超出逻辑领域的推理问题,例如数学问题求解,难以用符号逻辑来表达。然而,将逻辑中的概念纳入到论证证明过程中,构建一个神经符号框架(d'Avila Garcez 和 Lamb,2020;Creswell 等,2023)是有希望的,这样可以促进因果推理轨迹的形成,即前提和引导思路包含了背后的思考过程。延续"让模型自己思考"的成功经验,例如零样本链式思考(zero-shot-CoT)中的"让我们一步步思考"(Kojima 等,2022),我们进一步提出用逻辑来引导对话,以探索解决方案。指导示意见图 2。
3.1. 归谬法
对大型语言模型(LLMs)来说,自我检查是一项具有挑战性的任务(Ling 等,2023;Huang 等,2024),人类在这方面也可能会遇到困难。在逻辑学中,一种有效的证明方法称为归谬法,其过程包括先做出一个初始假设,然后推导出荒谬或矛盾的结论。设 P P P 和 Q Q Q 为两个命题。前提 P P P 与结论 Q Q Q 之间的关系可以表示为 P ⊢ Q P \vdash Q P⊢Q 。这里的" ⊢ \vdash ⊢" 是句法蕴含符号,表示 Q Q Q 是 P P P 的句法后果(Agler,2012),即存在一个证明能从前提 P P P 推导出结论 Q Q Q。
为了使用归谬法证明 Q Q Q,我们先假设其否定 − Q -Q −Q 为真,然后检查合取命题 P ∧ − Q P \wedge -Q P∧−Q 是否导致矛盾。
C = P ∧ ¬ Q ( 1 ) C = P \land \neg Q\quad(1) C=P∧¬Q(1)
其中,符号" ∧ \wedge ∧" 是二元合取运算符,表示合取命题为真需双方命题均为真。当假设 P P P 和 − Q -Q −Q 共存导致矛盾时,即证明了 P ⊢ Q P \vdash Q P⊢Q 成立,于是我们可以断言在前提 P P P 的条件下,结论 Q Q Q 是有效的。
许多逻辑原则,例如引言部分提到的逆否命题(详见附录 B 的证明),都可以通过遵循此规则进行推导。这种思维范式帮助人类在下结论前仔细检查论证的合理性。正如我们随后将演示的,这一思维方式也能提升大型语言模型的推理能力。
3.2. LoT 提示
已有证据表明,一系列连贯的解释有助于大型语言模型(LLM)发挥其推理能力(Wei 等,2022;Kojima 等,2022;Zhou 等,2023),而对模型输出的限制(例如"只告诉我结果,不要任何解释"这类提示)会负面影响语言模型的推理表现。因此,我们详细阐述了显式推理过程取得成功的原因。
一个典型的 N 步推理轨迹可以表示为 { P , T 1 , ⋯ , T N } \{ P, T_1, \cdots, T_N \} {P,T1,⋯,TN},其中 P P P 是已知前提, T i T_i Ti 是第 i i i 步思考,来源于普通链式思考(Chain-of-Thought, CoT)模型的输出。通常, T i T_i Ti 归纳了思考过程并回答特定问题。
不幸的是,LLM 会出现幻觉(hallucination)。LLM 通常以自回归方式生成内容,这意味着第 T i T_i Ti 步的生成基于之前的内容 { P , ⋯ , T i − 1 } \{ P, \cdots, T_{i-1} \} {P,⋯,Ti−1}。如果 T i T_i Ti 出错,错误会传播并逐渐影响后续步骤 T i ′ T_{i'} Ti′(其中 i ′ > i i' > i i′>i),导致后续推理甚至最终结论不可靠(参见图 1)。因此,我们提出一个验证循环来对每一步推理进行复核。根据公式 1,这个复核过程展开为检查 P , ⋯ , T i − 1 ⊢ T i P, \cdots, T_{i-1} \vdash T_i P,⋯,Ti−1⊢Ti 的有效性,也就是检验 T < i T_{<i} T<i 通过验证后是否与 T i T_i Ti 存在矛盾。
C i = P ∧ T 1 ∧ ⋯ ∧ T i − 1 ∧ ¬ T i ( 2 ) C _ { i } = P \wedge T _ { 1 } \wedge \dots \wedge T _ { i - 1 } \wedge \neg T _ { i } \quad(2) Ci=P∧T1∧⋯∧Ti−1∧¬Ti(2)
如果某一步 T i T_i Ti 未通过验证,说明前提和之前验证通过的思考 T < i \boldsymbol{T}{<i} T<i 并不蕴含 T i T_i Ti,此时需要修改步骤 T ≥ i T{\geq i} T≥i 的内容。
为了让 LLM 否定 T i T_i Ti,一个直接的方法是将 ¬ T i \neg T_i ¬Ti 形式化为"说 T i v T_i^{v} Tiv 是假的",或者给 LLM 一条指令"否定 T i r T_i^{r} Tir"。然后,LLM 需进一步识别可能的矛盾 C i C_i Ci(见公式 2)。
Cmps-LoT(复合链式思考) :考虑到 T i T_i Ti 是用自然语言表达且可能跨越多句,我们采用链式思考方法,要求模型为 ¬ T i \neg T_i ¬Ti 生成一个事后解释 E i ¬ E _ { i } ^ { \neg } Ei¬(Jung 等,2022),然后让 LLM 检查 C i ′ = C i ∧ E i − C_i' = C_i \wedge E_i^{-} Ci′=Ci∧Ei− 的有效性。我们称这一简单方法为 Cmps-LoT。
Adpt-LoT(自适应链式思考) :鉴于 LLM 自身难以发现文本中的逻辑错误(Huang 等,2024),我们进一步提出缓解验证困难的方法,即为 T i T_i Ti 和 ¬ T i \neg T_i ¬Ti 分别生成一对事后解释 E i E_i Ei 和 E i ¬ E _ { i } ^ { \neg } Ei¬,让 LLM 在 T i ∧ E i T _ { i } \wedge E _ { i } Ti∧Ei 和 ¬ T i ∧ E i ¬ \neg T _ { i } \land E _ { i } ^ { \neg } ¬Ti∧Ei¬ 之间做出选择,采用其中之一。我们将这种完整方法称为 Adpt-LoT,或简称 LoT。
温馨提示:
阅读全文请访问"AI深语解构 " LOT: 通过逻辑增强大型语言模型的零样本Chain-of-Thought推理能力