摘要

我们提出了 STEP-BACK PROMPTING,这是一种简单的提示技术,可以让LLM进行抽象,从包含具体细节的实例中推导出高层次概念和第一性原理。利用这些概念和原理来引导推理过程,LLM在朝向正确解答路径上显著提升了推理能力。我们在PaLM-2L、GPT-4 和 Llama2-70B 等模型上进行了 STEP-BACK PROMPTING 的实验,并在多个具有挑战性的推理密集型任务中观察到显著性能提升,包括 STEM、知识问答(Knowledge QA)和多跳推理(Multi-Hop Reasoning)。例如,STEP-BACK PROMPTING 将 PaLM-2L 在 MMLU(物理和化学)上的表现分别提升了 7% 和 11%,在 TimeQA 上提升了 27%,在 MuSiQue 上提升了 7%。

1 引言

自然语言处理(NLP)领域正经历一场由基于Transformer(Vaswani 等,2017)的大型语言模型(LLMs)(Devlin 等,2018;Raffel 等,2020;Brown 等,2020;Anil 等,2023)所推动的突破性变革。随着模型规模和预训练语料的不断扩展(Hoffmann 等,2022;Chowdhery 等,2022),模型能力和样本效率得到了显著提升,这得益于 scaling law(Kaplan 等,2020;Hoffmann 等,2022)的研究洞见,以及诸如多步推理(Wei 等,2022b;Zhou 等,2022)和指令遵循(Mishra 等,2022b;Wei 等,2021)等涌现能力(Wei 等,2022a)的出现。

在这里插入图片描述

尽管已经取得了巨大进展,复杂的多步推理对即便是最先进的LLM来说仍然具有挑战性。Lightman 等(2023)表明,采用逐步验证的过程监督是一种有前景的方法,能够提升中间推理步骤的正确性。诸如 Chain-of-Thought(Wei 等,2022b)等技术被提出,用于生成连贯的一系列中间推理步骤,从而提高遵循正确解码路径的成功率。受启发于这样一个事实:在人类面对具有挑战性的任务时,往往会“退一步”进行抽象,以得到指导过程的高层次原理,我们提出了 STEP-BACK PROMPTING,通过将推理建立在抽象之上,来降低在中间推理步骤中出错的可能性。

在这里插入图片描述

在人类的众多认知能力中,抽象(Lachmy 等,2022)是处理大量信息并提炼出一般性原理时不可或缺的能力。例如,Kepler 将数以千计的观测数据浓缩为开普勒的三大行星运动定律,这些定律精确地描述了行星绕太阳运动的轨道(Russell,1964)。在人类面临关键决策时,抽象尤其有帮助,因为它能提供对环境更广阔的视角。

本研究探索了LLM如何通过抽象—推理的两步过程来应对涉及大量细节的复杂任务。第一步是通过in-context learning让LLM学会如何“退一步”——提示它们从具体实例中抽象出高层次的概念和原理。第二步则是利用LLM的推理能力,在这些高层概念和原理的基础上进行推理。我们使用few-shot 示例演示来在LLM中实现 STEP-BACK PROMPTING。

我们在多个涉及特定领域推理的任务上进行了实验,如物理和化学、需要事实性知识的知识密集型问答、多跳常识推理等任务。在 PaLM-2L(Anil 等,2023)上的实验表明,STEP-BACK PROMPTING 在这些复杂任务中带来了显著的性能提升(最高可达27%),而这些任务在以往由于需要处理大量细节而极具挑战性。图1展示了本文中所有关键结果的总结。

其中一些任务难度极高:即使是 PaLM-2L 和 GPT-4,在 TimeQA 和 MuSiQue 上的准确率也仅为约40%。Chain-of-Thought 提示在少数任务上带来轻微提升,而 STEP-BACK PROMPTING 在所有任务上都提升了 PaLM-2L 的性能:MMLU 的物理和化学子任务分别提升了7%和11%,TimeQA 提升了27%,MuSiQue 提升了7%。

我们进行了多种分析,发现 STEP-BACK PROMPTING 相较于 Chain-of-Thought(CoT)提示(Wei 等,2022b)和“take-a-deep-breath”(TDB)提示(Yang 等,2023),最多可带来36%的性能提升。我们还进行了一项定性评估,发现 Step-Back 能修正基础模型的大量错误(最多可达约40%),同时引入的新错误占比较小(最多约12%)。我们还进行了错误分析,发现 STEP-BACK PROMPTING 所犯的多数错误源于LLM在推理能力上的内在局限性,而抽象能力对于LLM来说相对容易掌握,这为类似 STEP-BACK PROMPTING 方法的未来改进指明了方向。

2 STEP-BACK PROMPTING

STEP-BACK PROMPTING 的动机来源于这样一个观察:许多任务包含大量细节,使得LLMs难以检索出相关事实来解决问题。如图2顶部所示的第一个例子中,对于一个物理问题——“如果温度增加2倍、体积增加8倍,理想气体的压强P会发生什么变化?”,LLM在直接进行推理时可能会偏离理想气体定律这一基本原理。同样,“Estella Leopold 在1954年8月至1954年11月之间就读于哪所学校?”这样的问题由于其涉及特定时间范围,也很难被直接解决。在这两种情况下,引导模型思考一个“退一步”的问题有助于更有效地解决原始问题。

我们将step-back question(退一步的问题)定义为:从原始问题中抽象出来的更高层次的问题。例如,与其直接问“Estella Leopold 在特定时期就读哪所学校?”,不如提出一个退一步的问题(如图2底部所示):“Estella Leopold 的教育经历是什么?”,这是一个涵盖原始问题的高层概念。回答“Estella Leopold 的教育经历”这一退一步的问题,将提供所有推理出“特定时期她在哪所学校就读”所需的信息。其前提是,退一步的问题通常更容易回答。基于这类抽象事实进行推理,可以避免在中间步骤中出现推理错误,例如图2左侧 Chain-of-Thought 示例中出现的错误。

简而言之,STEP-BACK PROMPTING 包含两个简单步骤

  • Abstraction(抽象):不是直接处理原始问题,而是首先提示LLM提出一个关于高层概念或原理的通用性 step-back 问题,并检索与该高层概念或原理相关的事实。每个任务都有独特的 step-back 问题,以检索最相关的事实。
  • Reasoning(推理):在获取的高层概念或原理相关事实的基础上,LLM可以围绕原始问题进行推理,我们将其称为基于抽象的推理(Abstraction-grounded Reasoning)

在接下来的章节中,我们将展示 STEP-BACK PROMPTING 在一系列具有挑战性的任务上的实证研究,这些任务涉及复杂推理,包括 STEM(科学、技术、工程和数学)、知识问答以及多跳推理。

3 实验设置

在本节中,我们定义了所使用的任务和模型,并介绍了评估指标以及对比的基线方法。

3.1 任务

我们在以下多样化任务上进行实验:(a)STEM、(b)知识问答(Knowledge QA)、(c)多跳推理(Multi-Hop Reasoning)。所使用的数据集如下(详见附录 B):

  • STEM:我们在 MMLU 和 GSM8K 上评估 STEM 任务的表现。MMLU(Hendrycks et al., 2020)是一个跨多个领域的基准集,用于评估模型的语言理解能力。我们选择其中高中物理和化学部分,因为这些题目需要深度推理。
  • 知识问答(Knowledge QA):我们使用 TimeQA(Chen et al., 2021),因为其中包含对时间敏感的复杂查询问题。我们也使用 SituatedQA(Zhang & Choi, 2021),该数据集需要模型在给定时间或地理上下文的情况下回答开放检索式问题。
  • 多跳推理(Multi-Hop Reasoning):我们选用 MuSiQue(Trivedi et al., 2022),这是一个通过组合单跳问题构造的多跳推理数据集;以及 StrategyQA(Geva et al., 2021),它包含需要策略性思考的开放域问题。

3.2 模型

我们使用以下当前最先进的大语言模型(LLMs):

  • PaLM-2L(指令微调版本)(Anil et al., 2023)
  • GPT-4(OpenAI, 2023)
  • Llama2-70B(Touvron et al., 2023)

3.3 评估

传统的评估指标如准确率(accuracy)、F1分数,在评估最先进的LLMs生成内容时存在局限性,因为这些模型往往生成的是长文本答案,很难直接比较是否一致。因此,我们使用 PaLM-2L 模型进行评估,采用 few-shot prompt 的方式判断模型预测结果与目标答案是否等价。具体的 few-shot 示例、提示语及评估细节可见附录 C。

3.4 基线方法

我们对以下基线方法进行评估:

  • PaLM-2L / PaLM-2L 1-shot:直接对模型提问,或在提示中加入一个问题-答案的示例(1-shot)。
  • PaLM-2L + CoT / CoT 1-shot:使用零样本 Chain-of-Thought 提示(CoT)(Kojima et al., 2022),在问题后附加“Let’s think step by step”。1-shot 情况下,在提示中加入一个按 CoT 格式写出的示例问答对(Wei et al., 2022b)。
  • PaLM-2L + TDB:使用“Take a deep breath and work on this problem step-by-step.”(Yang et al., 2023)作为前缀进行零样本提示。
  • PaLM-2L + RAG:在第5节和第6节的实验中使用检索增强生成(RAG)方法,将检索到的文本作为上下文提供给LLM。
    ⚠️ 对于 STEM 任务未使用 RAG,因为这类任务本质上依赖推理而非事实检索。
  • GPT-4 和 Llama2-70B:我们在所有方法上对 MMLU 数据集使用 GPT-4 和 Llama2-70B。此外,GPT-4 还被用于所有任务的所有基线实验。

所有推理均使用贪婪解码(greedy decoding)进行。

4 STEM

我们在STEM任务(Hendrycks et al., 2020)上评估STEP-BACK PROMPTING,以衡量我们的方法在高度专业化领域推理方面的有效性。我们在下文中解释了在MMLU高中物理与化学部分以及GSM8K基准上应用STEP-BACK PROMPTING的实验设置、结果和分析。

4.1 STEP-BACK PROMPTING

MMLU基准中的问题需要更深层次的推理。此外,它们还要求理解和应用公式,这些公式通常是物理和化学中的原理和概念。在这种情况下,我们首先以概念和第一性原理的形式向模型展示抽象能力,例如牛顿第一运动定律、多普勒效应和吉布斯自由能等。

在这里插入图片描述

这里隐含的后退一步问题是“解决该任务涉及了哪些物理或化学原理和概念?”。我们通过示例演示让模型从自身知识中背诵解决该任务所需的相关原理(具体的少量示例见附录D.1)。

4.2 结果

表1展示了三个模型家族(PaLM-2L、GPT-4和Llama2-70B)在不同设置下的模型表现。报告了5次评估运行的平均准确率及标准差(括号内)。PaLM-2L基线在物理和化学任务上的准确率分别为66.4%和70.9%。我们发现零-shot的Chain-of-Thought(CoT)和Take-a-Deep-Breath(TDB)提示法并未显著提升模型表现,这可能是由于这些任务固有的难度和深度推理需求。PaLM-2L 1-shot及PaLM-2L + CoT 1-shot的表现也未对基线带来明显提升,凸显了向模型演示推理步骤的挑战。相比之下,STEP-BACK PROMPTING显著提升了模型表现,分别比PaLM-2L提升了7%和11%。同样,在GPT-4和Llama2-70B模型上,STEP-BACK PROMPTING在我们测试的所有基线方法中表现极具竞争力,表明STEP-BACK PROMPTING具有模型无关性。GSM8K的结果见附录A.1。

在这里插入图片描述
温馨提示:
阅读全文请访问"AI深语解构" STEP-BACK PROMPTING:退一步:通过抽象在大型语言模型中唤起推理能力

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912773.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912773.shtml
英文地址,请注明出处:http://en.pswp.cn/news/912773.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Paimon vs. HBase:全链路开销对比

Paimon 在特定场景(如流式 Lookup Join)下,会为了极致的查询性能而引入额外的存储(本地磁盘 LookupFile)和计算(构建 LookupFile)开销。但这是一种用一次性的、可控的开销,换取后续持…

本地的包名导致的AttributeError: module ‘langchain‘ has no attribute ‘verbose‘

你遇到的 AttributeError: module langchain has no attribute verbose 问题,确实可能是因为你的本地文件或目录名与 langchain 官方包冲突,导致 Python 在导入时优先加载了你的本地文件而非真正的 langchain 库。 问题原因 Python 模块加载机制&#xf…

玄机——某学校系统中挖矿病毒应急排查

本篇文章主要记录某学校长期未运营维护的程序,被黑客发现了漏洞,但好在学校有全流量设备,抓取到了过程中的流量包 需要你进行上机以及结合流量分析,排查攻击者利用的漏洞以及上传利用成功的木马 文章目录 靶机介绍1.使用工具分析共…

如何解决wordpress批量删除媒体库中的图片很慢甚至卡死问题

批量删除WordPress媒体库中的图片速度很慢,如果批量删除的图片多会出现CPU100%甚至卡死,出现这个问题通常最主要的原因是服务器性能问题,如果换成性能好的服务器就不会了,比如换Siteground 家的服务器,就不会有这个问题…

深度学习入门day4--手写数字识别初探

鱼书提供的代码可以在github找到。源码地址 环境配置部分可以看前面几篇博客,还是用Anaconda,运行下面代码,可以看哪个库缺失。 import importlib import numpy as np deps {"torch": "torch","torchvision"…

STM32中定时器配置,HAL_Delay的原理,滴答定时器,微秒延时实现,PWM,呼吸灯

目录 定时器基本定时功能实现 CubeMX设置 手动书写代码部分 定时器启动 实现溢出回调函数 HAL_Delay介绍 HAL_Delay实现原理 HAL_Delay的优点 HAL_Delay的缺点 利用滴答定时器(SysTick)实现微秒级延时 PWM PWM介绍 通用定时器中的重要寄存器 PWM中的捕获比较通道 …

飞牛NAS(fnOS)详细安装教程

以下是飞牛NAS(fnOS)的详细安装教程,结合官方指南和社区实践整理而成: 一、准备工作 硬件需求 8GB或更大容量的U盘(用于制作启动盘)待安装设备(支持x86架构的物理机或迷你主机,如天钡…

springboot 显示打印加载bean耗时工具类

一 spring的原生接口说明 1.1 接口说明 Aware是Spring框架提供的一组特殊接口,可以让Bean从Spring容器中拿到一些资源信息。 BeanFactoryAware:实现该接口,可以访问BeanFactory对象,从而获取Bean在容器中的相关信息。 Environm…

OpenGL空间站场景实现方案

OpenGL空间站场景实现方案 需求分析 根据任务要求,我需要完成一个基于Nehe OpenGL的空间站场景,实现以下功能: 完整的空间站场景建模(包含多个模型和纹理贴图)Phong光照模型实现(包含多种光源和材质效果)摄像机键盘控制交互功能解决方案设计 技术栈 C++编程语言OpenG…

基于昇腾310B4的YOLOv8目标检测推理

YOLOv8目标检测 om 模型推理 本篇博客将手把手教你如何将 YOLOv8 目标检测模型部署到华为昇腾 310B4 开发板上进行高效推理(其他昇腾开发版也可参考此流程)。 整个流程包括: 模型格式转换(ONNX → OM)昇腾推理环境配…

前端跨域问题解决Access to XMLHttpRequest at xxx from has been blocked by CORS policy

在前端开发中,跨域资源共享(CORS)是一个常见的问题。它涉及到浏览器安全机制,防止网页从一个域获取资源时被另一个域阻止。错误信息如“Access to XMLHttpRequest at xxx from origin has been blocked by CORS policy”是典型的跨…

[ linux-系统 ] 软硬链接与动静态库

软硬链接 介绍 软链接 通过下图可以看出软链接和原始文件是两个独立的文件,因为软链接有着自己的inode编号: 具有独立的 inode ,也有独立的数据块,它的数据块里面保存的是指向的文件的路径,公用 inode 硬链接 通过…

3D 商品展示与 AR 试戴能为珠宝行业带来一些便利?

对于珠宝行业而言,长久以来,如何让消费者在做出购买决策之前,便能真切且直观地领略到珠宝独一无二的魅力,始终是横亘在行业发展道路上的一道棘手难题。而 3D 互动营销的横空出世,恰似一道曙光,完美且精准地…

电子电气架构 --- SOVD功能简单介绍

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

【Java编程动手学】 Java中的运算符全解析

文章目录 一、引言二、算术运算符1、基本概念2、具体运算符及示例 三、关系运算符1、基本概念2、具体运算符及示例 四、自增减运算符1、基本概念2、具体运算符及示例 五、逻辑运算符1、基本概念2、具体运算符及示例 六、位运算符1、基本概念2、具体运算符及示例 七、移位运算符…

【前端】1 小时实现 React 简历项目

近期更新完毕。仅包括核心代码 目录结构 yarn.lock保证开发者每次能下载到同版本依赖,一般不需要特别留意 package.json 是 Node.js 项目、前端项目、npm/yarn的配置文件。 Dockerfile 是用来 定义 Docker 镜像构建过程的文本文件。它是一份脚本,告诉 …

python中的pydantic是什么?

Pydantic 是 Python 中一个用于数据验证和设置管理的库,主要通过 Python 类型注解(Type Hints)来定义数据结构,并自动验证输入数据的合法性。它广泛应用于 API 开发(如 FastAPI)、配置管理、数据序列化等场…

腾讯云市场目前饱和度

首先我需要理解市场饱和度的概念。市场饱和度通常指一个产品或服务在潜在市场中的渗透程度,高饱和度意味着市场增长空间有限,低饱和度则表明还有较大发展潜力。 从搜索结果看,腾讯云目前在中国云服务市场排名第三,市场份额约为15%…

EDR、NDR、XDR工作原理和架构及区别

大家读完觉得有帮助记得关注和点赞!!! EDR、NDR、XDR是网络安全中关键的检测与响应技术,它们在覆盖范围、数据源和响应机制上有显著差异。以下是它们的工作原理和架构详解: --- ### 🔍 一、EDR&#xff0…

vue3 + luckysheet 实现在线编辑Excel

效果图奉上: 引入的依赖: "dependencies": {"types/jquery": "^3.5.32","types/xlsx": "^0.0.36","jquery": "^3.7.1","xlsx": "^0.18.5",}在index.html中…