AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


增强大模型的推理能力:从思维链到连续思维链(中)
发布日期:2025-01-06 12:46:34 浏览次数: 1591 来源:寒武纪人工智能


   
5
语言模型进行推理的底层逻辑
    前面我们提到,大模型回答问题有两种场景:一种是提示词上下文中没有“解题思路”的提示,也没有“让我们一步一步思考”的提示。另一种是有这类的提示词。现在有必要从大模型的原理上领悟一下,这两种场景的区别。
    大模型是一种自回归模型,依据前面的词来预测后面的词。前面出现的词会影响后面的词的出现概率。如果提示词上下文中没有“解题思路”的提示,也没有“让我们一步一步思考”的提示,那么大模型会依据预训练时所见过的样本,参考一个最相似的样本来回答。这相当于凭直觉来回答。但实际上很多情况下,直觉是错误的。
    如果提示词上下文中有“解题思路”的提示,模型的注意力机制将出现变化,将会促使模型寻找预训练时相似的推理路径,不断生成中间解题步骤。随着中间步骤的不断生成,上下文就继续不断发生变化,后面的词的出现概率也不断变化,最终达成结果生成。这就是大模型进行推理的原理机制。
    深刻领悟语言模型开展推理的这种原理机制,尤为很重要,领悟得越深,在AI算法领域里就走得越远
    注:人其实也可以看成是一个自回归模型:童年时的遭遇会影响成年时的三观形成;昨天的经历会影响今天的决策。。。
6
思维链的多样化
    我们人类解一道复杂的题目,大脑通常会涌现出好几种不同的解题思路。不同的解题思路会导致不同的答案。自回归的大模型也可以这样做。前面讲过,大模型是依据前面的词来预测后面的词,通过调整模型输出温度系数、Top_P等参数,可以改变模型输出的多样性。这种多样性会导致多样化的思维链的生成。也就是说,对于一道题,我们可以生成多套思维链。当然这些思维链有些会导致正确的答案,有些会导致错误的答案。
    Wang等人(2022)在研究这些多样化的思维链中发现:对于一个问题,每次让大模型生成多套思路链,每套思维链都会导致一个答案。然后取多数答案作为最终答案。这种方法能够提高大模型最终答案的准确率。
    这种方法就相当于,你用不同的思路去解一道题(如解一次线性方程组,分别用消元法、克拉姆法则、矩阵法),如果得出的最终答案都是58,那么58就有相当大的概率是正确答案。Wang等人(2022)把这种方法称之为思维链的自一致性。
7
推理能力的训练探索
    当了解到思维链能够促进大模型推理能力时,自然而然想到如何进一步训练大模型,使得模型能够拥有生成正确思维链的能力。常规的训练思路主要是用包含推理步骤的数据集进行训练。这种方法由于要构造数据集,每条数据不只是输入和输出还有包含推理过程,构造成本太高。
    Zelikman 等人(2022)提出了一种通过推理引导推理的方案STaR,具体来说,STaR方法包括以下几个步骤:
    第一步,使用少量带有推理过程的示例作为提示,引导预训练的大型语言模型(LLM)生成多个问题的推理过程。
    第二步,只保留那些生成了正确答案的推理过程,并在这些数据上对原始模型进行微调训练。这一步骤的目的是强化模型生成高质量推理过程的能力。
    第三步,对于模型未能正确回答的问题,向模型提供正确答案,然后要求模型生成一个合理的推理过程来解释这个答案。这样做可以让模型从错误中学习,并改进其推理策略。
    第四步,重复上述过程,每次都使用上一轮微调训练后的模型来生成新的训练数据。通过这种方式,模型逐渐学习如何更好地生成推理过程,并解决越来越复杂的问题。
    第五步,在每次迭代后,评估模型在测试集上的性能,直到性能达到饱和或不再显著提升。
    这种方法有点类似于学生习题练习。先自我解题,如果答案正确,则记住这套解题方法;如果答案不正确,则参考正确答案,依据正确答案,反推解题步骤,再记住这套解题步骤。如此反复训练,直到成绩不再提高为止。
    Zelikman 等人(2022)的论文里举了个例子:    

    问题:小明想在家里养一只猫,他应该准备什么?选项:(a) 狗粮 (b) 猫砂 (c) 鱼缸 (d) 鸟笼 (e) 兔子饲料

    正确答案:(b) 猫砂

    模型的初始回答(a) 狗粮,是错误的:

    这时候提供正确答案并让模型生成相应的推理过程:

    模型依据答案提示生成新的推理过程(合理化推理):

    通过这种方式,就能构建出“问题--推理--答案”三元组数据,给大模型进行迭代微调训练,来提高模型的推理能力。不需要费力地手工构建推理数据集。这为大规模开展模型推理训练创造了条件。这就是STaR 的意义。

    另外,STaR 可以看作是对强化学习 RL 风格的策略梯度目标的近似,激发了人们用强化学习增强大模型推理能力的研究。

8
语言模型的自我反思
    与大模型推理能力相关的,还有一项重要的研究成果:大模型的自我反思。人类智能的一个显著特点是能够从错误中学习。我们通常不会在第一次尝试时就解决问题,但当我们犯错时,我们会通过自我反思和分析失误来生成新的想法,从而改进我们的方法。
    大模型也可以有此特性。Shinn等人(2023)提出了一个新颖的框架Reflexion。在这个框架里,模型会依据收到的任务反馈信息,输出一段反思文本,如果将自己的这段反思文本再加入到原有的上下文中(即记忆缓冲区),便能够随后的步骤中诱导更好的决策。Reflexion框架由以下几个核心部分组成:
     Actor(执行者):负责生成文本和推理步骤,它是一个大语言模型(如GPT-3、GPT-4)。

    Evaluator(评估者):负责评估Actor生成的推理步骤的质量,并提供一个奖励信号(reward signal)。它可以是一个独立的模型,也可以是与Actor相同的模型。

    Self-Reflection(自我反思):负责生成语言反馈。分析Actor的失败推理步骤和环境反馈,生成自然语言的反思总结。提供具体的改进建议,帮助Actor在后续尝试中调整行为。它是一个大语言模型(通常与Actor使用相同的模型)。

    Memory(记忆):用于存储Actor的经验和Self-Reflection模型生成的反馈。整个框架是一个“反思-改进”的迭代过程,需要存储历次“反思-改进”过程信息,作为下一次的上下文输入。

    Shinn等人(2023)在论文里举了几个反思框架的例子。其中之一是要求智能体在虚拟的家庭环境中执行一系列动作。

    在论文的例子中,智能体在第一次尝试中失败了,因为它先找到了杯子,然后找到了台灯,但任务要求是“用台灯检查杯子”,因此智能体应该先找到台灯,再找杯子。在这种情况下,Self-Reflection会用如下提示词要求模型进行反思:

    在反思提示词下,模型进行了反思如下:

    经过反思后,模型第二次执行任务:Actor直接前往桌子1,找到台灯。Actor拿起台灯。Actor找到杯子。Actor使用台灯检查杯子,任务成功。

    大模型的自我反思能力,根本原理还是前面讲的,自回归模型输出是受前面上文影响的。当加入反思文本后,改变了后续文本输出的概率,也就改变了输出的结果。这种反思能力具有非常重要的意义,不仅可以提高模型在推理方面的准确率,也是智能体运用的基石之一

9
思维链结构的革新--思维树
    到目前为止,我们讨论的推理步骤都是一种链式结构。这种链式结构在推理过程中遵循的是一种从左到右的顺序决策过程。 这意味着它们在需要探索性、策略性前瞻或初始决策起关键作用的任务中可能会表现不佳
    比如下棋,你需要计算这一步以后的多步,来判断评估当前这一步是否是正确的。又比如做数学题,你可能有两三种解题思路,究竟哪一种思路是行得通的呢?你需要探索一下,在草稿纸上对每种思路都试一下,最终选择一种靠谱的思路算下去。
    Yao 等人 (2023) 受50年代的Newell等人的启发,将问题解决描述为在一个树状空间在搜索。Yao提出了一种新的语言模型推理框架:“思维树”(ToT)。思维树以树的形式组织其解决问题的策略。每个节点都被称为“思维”,是一段语言文本,是通往最终答案的一步。 思维树允许语言模型通过考虑多个不同的推理路径和自评估选择来决定下一步行动,并在需要时进行前瞻或回溯以做出全局选择,从而执行深思熟虑的决策。
上图从左到右,分别是无思维链的输入输出、思维链、自一致性思维链、思维树的示意图    
    思维树将基于语言的能力与搜索算法(如广度优先搜索 (BFS) 或深度优先搜索 (DFS))相结合,以生成和评估不同的思想,它允许对思想树进行系统探索,并进行前瞻性和回溯性操作。
    Yao 等人 (2023)在论文里举了几个思维树的例子。其中一个是“24点”的游戏。24点游戏就是使用四个数字和基本算术运算(加、减、乘、除)来得到24。例如,给定输入“4 9 10 13”,一个解决方案输出可以是“(10 - 4) * (13 - 9) = 24”。通过四个步骤来构建思维树:问题分解、思维生成、状态评估、思维树搜索
    1、先用提示词生成候选思维(即中间步骤)。
    2、再用提示词评估每个候选思维的进展,决定其是否值得进一步探索。
    3、模型会回答“确定”、“可能”或“不可能”。依据模型的回答保留最有希望的几个(例如,13 - 9 = 4和10 - 4 = 6)。即原来有四条分支,现在经过筛选只保留两条分支。
    4、对剩余的两个分支继续进行探索。探索过程即重复1、2、3步。例如,对分支13 - 9 = 4,这时候剩余数字4, 4, 10,可以继续产生两个分支:10 - 4 = 6(剩余数字:4, 6)和4 + 4 = 8(剩余数字:8, 10)。如此不断探索下去,最终找到一个有效的解决方案。
    思维树提出的意义在于将推理思维变成一种可被计算机搜索的行为。虽然Yao 等人 (2023)在论文使用的搜索算法是一种比较低效的算法,但它为后面的蒙特卡洛搜索算法的介入打开了大门。而蒙特卡洛搜索正是围棋AlphoGo战胜李世石核心算法,这也等于打开了大模型在推理能力超越人类的大门!



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询