如何提升大模型的推理和规划能力:思维链 CoT + 由少至多提示 Least-to-Most Prompting

本文主要是介绍如何提升大模型的推理和规划能力:思维链 CoT + 由少至多提示 Least-to-Most Prompting,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如何提升大模型的推理和规划能力

    • 思维链 - CoT
      • 思维链改进:Auto-CoT、小冰链(X-CoTA)
    • 由少至多提示 - Least-to-Most Prompting

思维链 - CoT

最初的语言模型都是基于经验的,只能根据词汇之间的相关性输出答案,根本没有思考能力……

但是从使用思维链后,大模型已经是有思考能力的。能进行一定的推理。

2021年,OpenAI在训练神经网络过程中有一个意外发现。

神经网络他可以很好地模仿现有的数据,很少犯错误。

可是如果你给他出个没练过的题目,他还是说不好。于是你就让他继续练。

继续训练好像没什么意义,因为现在只要是模仿他就都能说得很好,只要是真的即兴发挥他就不会。

但你不为所动,还是让他练。


1 0 2 10^2 102 1 0 5 10^5 105 训练完全没有成果。

就这样练啊练,惊奇地发现,他会即兴演讲了!给他一个什么题目,他都能现编现讲,发挥得很好!

  • 一千步乃至一万步,模型对训练题的表现已经非常好了,但是对生成性题目几乎没有能力
  • 练到10万步,模型做训练题的成绩已经很完美,对生成性题也开始有表现了
  • 练到100万步,模型对生成性题目居然达到了接近100%的精确度

这就是量变产生质变。研究者把这个现象称为「开悟(Grokking)」。

2022年8月,谷歌大脑研究者发布一篇论文,专门讲了大型语言模型的一些涌现能力,包括少样本学习、突然学会做加减法、突然之间能做大规模、多任务的语言理解、学会分类等等……

而这些能力只有当模型参数超过1000亿才会出现 —— 涌现新能力的关键机制,叫 思维链

此前的模式是直接让模型输出结果,而忽略了其中的思考过程。

人类在解决包括数学应用题在内的,涉及多步推理的问题时,通常会逐步书写整个解题过程的中间步骤,最终得出答案。如果明确告知模型先输出中间推理步骤,再根据生成的步骤得出答案,是否能够提升其推理表现呢?

除了将问题输入给模型外,还将类似题目的解题思路和步骤输入模型,使得模型不仅输出最终结果,还输出中间步骤,从而提升模型的推理能力的方法。

思维链就是当模型听到一个东西之后,它会嘟嘟囔囔自说自话地,把它知道的有关这个东西的各种事情一个个说出来。

思维链是如何让语言模型有了思考能力的呢?

比如你让模型描写一下“夏天”,它会说:“夏天是个阳光明媚的季节,人们可以去海滩游泳,可以在户外野餐……”等等。

只要思考过程可以用语言描写,语言模型就有这个思考能力。

怎么用思维链呢?

思维链的主要思想是通过向大语言模型展示一些少量的样例,在样例中解释推理过程。

那大语言模型在回答提示时也会显示推理过程,这种推理的解释往往会引导出更准确的结果。

既然如此,只要我们设置好让模型每次都先思考一番再回答问题,ta就能自动使用思维链,ta就有了思考能力。

CoT(链式思考)已被证实能够改善大型AI模型在算术、常识和符号推理等任务上的表现。

用户发现,当他们在问题中添加“让我们一步步来思考”时,模型仿佛被施了魔法,之前答错的数学题突然能够正确解答,原本无理的论述变得有条有理。

不过,CoT对模型性能的提升与模型的大小成正比关系,模型参数至少达到100亿才有效果,达到1000亿效果才明显。

研究中指出,处理策略性问题通常需要大量的世界知识。

然而,小型模型由于其有限的参数,往往难以存储这些庞大的知识信息,这限制了它们在产生正确推理步骤方面的能力。

思维链改进:Auto-CoT、小冰链(X-CoTA)

使用了人工构造的思维链。然而,由不同人员编写的推理范例,在准确率上存在高达 28.2% 的差异。

因此,如果能够自动构建具有良好问题和推理链的范例,则可以大幅度提升推理效果。

Auto-CoT 可以让机器从各种问题中学习,生成多种多样的推理链。

这个方法首先把类似的问题分成不同的组,然后从每一组中挑选出代表性的问题,并让机器学习如何解答这些问题。

  • 问题向量表示:使用 Sentence-BERT 对问题进行编码。
  • 聚类算法:使用 K-means 根据问题的向量表示进行聚类。
  • 排序:根据问题到聚类中心的距离进行排序。
  • 范例构建:选择距离中心近的问题,并生成推理链。
  1. Clustering(聚类): 将类似问题通过聚类算法分组,如图中的几个小圆圈所示。

  2. LLM Demo Construction(LLM 示范构建): 根据选择的标准,从每个问题簇中抽取一个代表性的问题,并利用语言模型构建出问题的解决步骤或推理链,即“Let’s think step by step…”的过程。

  3. Sampling by Selection Criteria(按选择标准抽样): 从每个簇中选取问题并生成推理链,这可能包括使用问题本身作为提示输入到模型中,并观察模型如何一步一步解决问题。

  4. Test Question(测试问题): 这是一个实际例子,说明了如何将上述方法应用于一个具体的问题——宠物店的问题。在这个例子中,解释了宠物店如何根据出售的小狗数量和每个笼子里的小狗数量来决定需要多少笼子。

这种方法可以提升大型语言模型处理复杂、多步骤问题的能力,尤其是需要详细解释步骤的场合中。

以及强调多样性在构建有效范例中的重要性。

 
也还有一些研究人员提出了对思维链提示的改进方法,例如从训练样本中选取推理最复杂的样本来形成示例样本,被称为 Complex-CoT。

也有研究者指出可以从问题角度考虑优化思维链提示,通过将复杂的、模糊的、低质量的问题优化为模型更易理解的高质量问题,进一步提升思维链提示的性能,被称为 Self-Polish。

 
感觉有一个很强,叫小冰链(X-CoTA)。

不仅是回答用户问题,⽽是将其 思考过程 完整透明地呈现在⽤户⾯前,揭开⼤模型的⿊盒。

更重要的是,她能真正实施某种⾏动。

例如:在⽤户提出问题后,她经过思考,发现⾃⼰需要进⾏搜索,或是实时编写⼀段代码并真的加以运⾏,或是⾃主决
定她应当控制物理世界的⼀系列设备或交通⼯具,来更好地满⾜⽤户的需求。

⼩冰链展示的不只是“聊天”,⽽是在“逻辑思维”驱动下的“下⼀代⾏动中枢”,能影响数字和物理世界。

⼩冰链所解决的问题包括:解决⼤模型训练数据更新不及时的问题,并提⾼回复的准确性和可信度,使信息可溯源;有效降低参数规模和成本,促进⼤模型普及等。

 


由少至多提示 - Least-to-Most Prompting

通过引导模型首先将复杂问题分解为多个较为简单的子问题,然后逐一解决这些子问题,可引导模型得出最终解答,这种策略被称为 由少至多提示。

当面对复杂任务或者问题时,人类通常倾向于将其转化为多个更容易解决的子任务/子问题,并逐一解决它们,得到最终想要的答案或者结果。

这种能力就是通常所说的任务分解能力。

基于这种问题解决思路,研究人员们提出了由 少至多提示 (Least-to-Most Prompting)方法。

主要包含两个阶段:

  • 问题分解阶段
  • 逐步解决子问题阶段

在问题分解阶段中,模型的输入包括 k×[原始问题,子问题列表] 的组合,以及要测试的原始问题;

在逐步解决子问题阶段中,模型的输入包括 k×[原始问题,m×(子问题,子答案)] 元组,以及要测试的原始问题和当前要解决的子问题。

阶段 1:问题简化

  • 在这个阶段,原始问题是关于Amy在水滑梯关闭前可以滑多少次的。问题的复杂性在于它包含多个步骤的计算。

阶段 2:顺序解决子问题

为了解决这个问题,语言模型采取了分步骤的方法,将原始问题分解为两个子问题。

  • 子问题 1: 首先,模型被问到每次滑行需要多少时间。这是解决原始问题的第一步,因为只有知道了每次滑行的时间,我们才能计算出Amy在水滑梯关闭前可以滑多少次。

    模型的答案是:每次滑行需要5分钟(爬上去需要4分钟,滑下来需要1分钟)。

  • 子问题 2: 接下来,模型使用了子问题 1 的答案来解决最初的问题——Amy在水滑梯关闭前可以滑多少次。

    模型的答案是:水滑梯在15分钟内关闭,每次滑行需要5分钟,所以Amy可以在水滑梯关闭前滑3次。

通过将一个问题分解成多个更简单的子问题,一个语言模型可以逐步构建答案,并最终解决原始问题。

分步解决问题的逻辑思维,及如何有效地使用语言模型来辅助问题解决过程。

这篇关于如何提升大模型的推理和规划能力:思维链 CoT + 由少至多提示 Least-to-Most Prompting的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/653345

相关文章

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

提示:Decompiled.class file,bytecode version如何解决

《提示:Decompiled.classfile,bytecodeversion如何解决》在处理Decompiled.classfile和bytecodeversion问题时,通过修改Maven配... 目录问题原因总结问题1、提示:Decompiled .class file,China编程 bytecode

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}