AI知识库

53AI知识库

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


竟然不知道?还可以这样提升大语言模型的推理规划能力
发布日期:2024-08-05 21:02:49 浏览次数: 1697


一、前言

以 ChatGPT 为代表的大语言模型在问题回答、文稿撰写、代码生成、数学解题等任务上展现出了强大的能力,引发了研究人员广泛思考如何利用这些模型开发各种类型的应用,并修正它们在推理能力、获取外部知识、使用工具及执行复杂任务等方面的不足。此外,研究人员还致力于如何将文本、图像、视频、音频等多种信息结合起来,实现多模态大模型,这也成了一个热门研究领域。鉴于大语言模型的参数量庞大,以及针对每个输入的计算时间较长,优化模型在推理阶段的执行速度和用户响应时长也变得至关重要。

二、推理规划

随着语言模型规模的不断扩大,其也具备了丰富的知识和强大的语境学习能力。然而,仅仅通过扩大语言模型的规模,并不能显著提升推理(Reasoning)能力,如常识推理、逻辑推理、数学推理等。通过示例(Demonstrations)或者明确指导模型在面对问题时如何逐步思考,促使模型在得出最终答案之前生成中间的推理步骤,可以显著提升其在推理任务上的表现。这种方法被称为思维链提示(Chain-of-Thought Prompting)

同样地,面对复杂任务或问题时,大语言模型可以展现出良好的规划(Planning)能力。通过引导模型首先将复杂的问题分解为多个较为简单的子问题,然后逐一解决这些子问题,可使模型得出最终解答,这种策略被称为由少至多提示(Least-to-Most Prompting)。本节将重点介绍如何利用思维链提示和由少至多提示这两种方式,提升大语言模型的推理规划能力。

2.1、思维链提示

语言模型在推理能力方面的表现一直未能令人满意,一些研究人员认为这可能是因为此前的模式是直接让模型输出结果,而忽略了其中的思考过程。人类在解决包括数学应用题在内的、涉及多步推理的问题时,通常会逐步书写整个解题过程的中间步骤,最终得出答案。 如果明确告知模型先输出中间的推理步骤,再根据生成的步骤得出答案,是否能够提升其推理表现呢? 针对这个问题,Google Brain 的研究人员提出了思维链(Chain-of-Thought,CoT)提示方式,除了将问题输入模型,还将类似题目的解题思路和步骤输入模型,使得模型不仅输出最终结果,还输出中间步骤,从而提升模型的推理能力。研究人员甚至提出了零样本思维链(Zero-shot Chain-of-Thought,Zero-shot CoT)提示方式,只需要简单地告知模型“让我们一步一步思考(Let’s thinkstep by step)”,模型就能够自动输出中间步骤。

思维链提示(Chain-of-Thought Prompting)方式如下图所示,标准少样本提示(StandardFew-shot Prompting)技术在给模型的输入里面提供了 k 个[问题,答案] 对,以及当前问题,由模型输出答案。

然而,通过实验发现,使用由不同人员编写的符号推理范例在准确率上存在高达28.2%的差异,而改变范例的顺序在大多数任务中则只产生了不到2% 的变化。因此,如果能够自动构建具有良好问题和推理链的范例,则可以大幅度提升推理效果。

仅通过搜索相似问题并将其对应的推理过程作为范例对于效果提升而言作用十分有限,但是问题和推理链示例的多样性对于自动构建范例至关重要。因此,上海交通大学和Amazon Web Services 的研究人员提出了Auto-CoT方法,通过采集具有多样性的问题和生成推理链来构建范例。Auto-CoT 算法的整体过程如下图 所示。Auto-CoT 包括以下两个主要阶段。

  • (1)问题聚类:将给定数据集中的问题划分为几个簇(Cluster)。
  • (2)范例采样:从每个簇中选择一个代表性问题,并基于简单的启发式方法使用Zero-shotCoT 生成问题的推理链。

由于基于多样性的聚类可以降低相似性带来的错误,因此Auto-CoT 算法对于给定的问题集合 Q 首先进行聚类。使用Sentence-BERT为 Q 中的每个问题计算一个向量表示。然后,使用K-means 聚类算法根据问题向量表示生成K 个问题簇。对于簇i 中的问题,按照到簇中心的距离升序排列,并将排序后的列表表示为

在聚类的基础上,需要为问题生成推理链,采样生成符合选择标准的范例。对每个簇 i 构建一个范例 d(i),包括问题、解释和答案。对于簇i,根据排序列表

迭代选择问题,直到满足条件为止。

此外,还有一些研究人员提出了对思维链提示的改进方法,例如从训练样本中选取推理最复杂的样本来形成示例样本,被称为Complex-CoT。 也有研究者指出可以从问题角度考虑优化思维链提示,通过将复杂的、模糊的、低质量的问题优化为模型更易理解的、高质量的问题,进一步提升思维链提示的性能,这一方法被称为Self-Polish。

2.2、由少至多提示

当面对复杂任务或问题时,人类通常倾向于将其转化为多个更容易解决的子任务/子问题,并逐一解决它们,得到最终想要的答案或者结果。这种能力就是通常所说的任务分解(Task Decomposition)能力。基于这种问题解决思路,研究人员们提出了由少至多提示(Least-to-Most Prompting)方法。这种方法试图利用大语言模型的规划能力,将复杂问题分解为一系列的子问题并依次解决它们。 由少至多提示流程如图所示,主要包含两个阶段:问题分解阶段和逐步解决子问题阶段。在问题分解阶段中,模型的输入包括k×[原始问题,子问题列表] 的组合,以及要测试的原始问题;在逐步解决子问题阶段中,模型的输入包括k×[原始问题,m×(子问题,子答案)] 元组,以及要测试的原始问题和当前要解决的子问题。 




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

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

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

联系我们

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

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询