[论文笔记]思维链提示的升级版——回退提示

news2024/9/20 5:31:31

引言

今天又带来一篇提示策略的论文笔记:TAKE A STEP BACK: EVOKING REASONING VIA ABSTRACTION IN LARGE LANGUAGE MODELS。

作者提出了回退提示(STEP-BACK PROMPTING)技术,使大模型能够进行抽象,从包含具体细节的实例中推导出高层次的概念和基本原则。通过利用这些概念和原则来指导推理,LLMs显著提高了按照正确推理路径解决问题的能力。

Step back是后退一步的意思,退一步海阔天空。这里后退一步指对原始具体问题进行更高层次的抽象,然后基于后退一步问题的答案来帮助回答原始问题。

1. 总体介绍

尽管LLM取得了重大进展,复杂的多步推理对于即便是最先进的LLMs而言依然具有挑战性。思维链等技术被引入,以生成一系列连贯的中间推理步骤,从而提高跟随正确解码路径的成功率。受到这样一个事实的启发:在面对具有挑战性的任务时,人类往往会后退并进行抽象,以获得高层次的原则来指导过程,作者提出了STEP-BACK提示,以将推理建立在抽象之上,从而降低在中间推理步骤中出错的机会。

image-20240729164306652

本工作探讨了LLMs如何通过抽象与推理的两步过程来解决涉及多个低层次细节的复杂任务。第一步是通过上下文学习向LLMs展示如何后退——提示它们为特定示例推导出高层次的抽象,如概念和原则。第二步是利用推理能力基于高层次的概念和原则进行推理。

2. 回退提示

image-20240729164322172

图2:回退提示的示意图,包括基于概念和原则的抽象和推理两个步骤。顶部:一个来自MMLU高中物理的例子,通过抽象检索理想气体法则的第一原理。底部:一个来自TimeQA的例子,高层次概念“教育历史”是抽象的结果。左侧:PaLM-2L未能回答原始问题。在中间推理步骤中,链式推理提示出现了错误(用红色标出)。右侧:PaLM-2L通过回退提示成功回答了问题。

回退提示的动机来源于观察到许多任务包含大量细节,而LLMs在检索相关事实以解决任务时面临困难。如图2中的第一个示例所示,对于一个物理问题“如果温度增加2倍,体积增加8倍,理想气体的压力P会发生什么变化?”,LLM在直接推理时可能偏离理想气体法则的第一原理。同样,问题“Estella Leopold在1954年8月至1954年11月期间去过哪个学校?”由于详细的时间范围限制,直接解决起来非常困难。在这两种情况下,提出一个后退(抽象)问题可以有效帮助模型解决问题。

将后退问题定义为一个源自原始问题的更高层次抽象的问题。例如,不是直接问“Estella Leopold在特定期间去过哪个学校”,我们可以问一个后退问题(图2底部),“Estella Leopold的教育历史是什么”,这是一个包含原始问题的高层次概念。在这种情况下,回答关于“Estella Leopold的教育历史”的后退问题,将提供解决“Estella Leopold在特定期间就读于哪个学校”所需的所有必要信息。前提是,后退问题通常要容易得多。在此类抽象基础上进行推理有助于避免在中间步骤中出现推理错误,比如图2(左)中链式推理的示例所示。简而言之,回退提示包含两个简单步骤:

  • 抽象:首先提示LLM提出一个关于高层次概念或原则的一般性后退问题,而不是直接回答问题,并检索关于该高层次概念或原则的相关事实。每个任务的后退问题是独特的,以便检索到最相关的事实。
  • 推理:基于高层次概念或原则的事实,LLM可以推理出原始问题的解决方案。作者将其称为“基于抽象的推理”(Abstraction-grounded Reasoning)。

3. 实验设置

3.1 任务

我们实验以下多样化的任务:(a)STEM,(b)知识问答,以及(c)多跳推理。

  • STEM:评估MMLU和GSM8K以进行STEM任务。MMLU包含一系列跨不同领域的基准,以评估模型的语言理解能力。由于涉及较深的推理,我们考虑MMLU的高中物理和化学部分。

  • 知识问答:选择TimeQA,它包含需要复杂时效性知识的查询。还对另一个具有挑战性的开放检索问答数据集SituatedQA进行了实验,该数据集要求模型在给定时间或地理上下文的情况下回答问题。

  • 多跳推理:实验了MuSiQue,这是一个通过可组合的单跳问题对创建的困难多跳推理数据集,以及StrategyQA,该数据集包含需一定策略解决的开放域问题。

3.2 模型

使用以下最先进的语言模型(LLMs):指令调优的PaLM-2L、GPT-4和Llama2-70B。

3.3 评估

传统的评估指标,如准确率和F1分数,在评估最先进LLM的生成时存在局限性,因为这些模型通常会生成难以捕捉的长格式答案。因此,使用PaLM-2L模型进行评估,通过少量示例提示模型识别目标答案与模型预测之间的等效性。

3.4 基准方法
  • PaLM-2L,PaLM-2L 1-shot:PaLM-2L直接查询问题,或者在提示中包含一个问题-答案的单一示例。

  • PaLM-2L + CoT,PaLM-2L + CoT 1-shot:PaLM-2L模型通过零样本链式推理(CoT)提示进行查询:“让我们一步一步来思考”附加到问题上。对于1-shot,在提示中提供一个问题和答案对的演示示例,其中答案采用思维链推理的风格。

  • PaLM-2L + TDB:在问题前加上“深呼吸,逐步解决这个问题。”进行零样本提示。

  • PaLM-2L + RAG:使用检索增强生成(RAG),其中检索到的段落作为上下文由LLM使用。

  • GPT-4和Llama2-70B:对所有方法在MMLU任务上运行GPT-4和Llama2-70B。此外,还在所有任务的所有基准上运行GPT-4。

不对STEM任务使用RAG,因为这些任务的内在推理性质与其他寻求事实的数据集相反。所有推理均使用贪心解码进行。

4. STEM

image-20240729165249012

表1展示了三种模型系列:PaLM-2L、GPT-4和Llama2-70B的不同设置下的模型表现。CoT和TDB的零样本提示并未显著提高模型性能,这可能与这些任务固有的难度和深度推理有关。相比之下,STEP-BACK PROMPTING显著提高了模型性能:与PaLM-2L相比分别提升了7%和11%。STEP-BACK PROMPTING是模型无关的。

image-20240729171341241

首先,在图3中,我们观察到STEP-BACK PROMPTING对用作演示的(问题,原理)对的少量样本示例数量具有较强的鲁棒性。添加超过一个示例的更多演示示例并不会带来进一步的改进。这表明,通过上下文学习提取相关的原理和概念的任务相对简单,单个演示就足够了。

image-20240729171455132

将STEP-BACK PROMPTING的预测与基线PaLM-2L模型在MMLU高中物理的表现进行比较:STEP-BACK PROMPTING纠正了基线模型20.5%的错误,同时引入了11.9%的错误。

为了进一步了解STEP-BACK PROMPTING中错误的来源,我们对测试集中的所有错误预测进行了标注,并将其分类为5类:

  • 原理错误(Principle Error):错误发生在抽象步骤,模型生成的第一原理是错误或不完整的。
  • 事实错误(Factual Error):当模型背诵自身的事实知识时,至少存在一个事实错误。
  • 数学错误(Math Error):当涉及数学计算以推导出最终答案时,至少一个中间步骤出现数学错误。
  • 上下文缺失(Context Loss):模型响应中至少存在一个错误,其中响应失去了问题的上下文,偏离了原始问题。
  • 推理错误(Reasoning Error):我们将推理错误定义为模型在得出最终答案之前,在中间推理步骤中至少出现一次错误。

这五种类型的错误是在推理步骤中发生的,除了原理错误,后者指向抽象步骤的失败。如图4(右)所示,原理错误仅占模型错误的一小部分:超过90%的错误发生在推理步骤中。在推理过程中的四种错误类型中,推理错误和数学错误是主要的错误类别。

推理步骤仍然是STEP-BACK PROMPTING在执行复杂推理任务(如MMLU)时的瓶颈。特别是在MMLU物理中,推理和数学技能对于成功解决问题至关重要:即使第一原理被正确提取,深度推理和数学运算也涉及到通过典型的多步骤推理过程得出正确的最终答案。

5. 知识问答

在需要大量事实知识的问题回答基准上评估了STEP-BACK PROMPTING

首先通过上下文示例向LLMs展示如何进行抽象。图2中的“Estella Leopold的教育历史是什么”这一回退问题是通过少量示例由LLM生成的。考虑到这些查询的知识密集特性,将检索增强(RAG)与STEP-BACK PROMPTING结合使用。通过回退问题检索相关事实,这些事实作为额外的上下文为最终推理步骤提供依据。

image-20240729171757488

在TimeQA的测试集上评估模型。如表2所示,GPT-4和PaLM-2L的基线模型分别达到了45.6%和41.5%的准确率,突显了任务的难度。相比之下,常规的检索增强(RAG)提升了基线模型的准确率至57.4%,强调了任务的事实密集特性。Step-Back + RAG的结果显示了回归到高层次概念的有效性,从而实现了更可靠的检索增强;TimeQA的准确率达到了显著的68.7%。

image-20240729171958914

少样本消融:在图5(左)中观察到,STEP-BACK PROMPTING在TimeQA上的表现对演示中使用的示例数量稳健,这再次突显了像PaLM-2L这样的模型在上下文学习中的样本效率。

错误分析:图5(右)显示了STEP-BACK PROMPTING在TimeQA中造成的所有剩余错误的细分。

这里将错误分类为:

  • StepBack:生成的回退问题对解决任务没有帮助。
  • RAG:尽管回溯问题是针对性的,RAG仍无法检索到相关信息。
  • 评分错误:评估模型出现了错误。
  • 推理错误:检索到的上下文是相关的,但模型依然无法通过上下文推理出正确答案。

回退几乎很少失败。相反,超过一半的错误是由推理错误引起的。此外,45%的错误是由于未能检索到正确的信息,尽管回退提供的抽象使任务变得更容易。

6. 多跳推理

image-20240729172301977

在具有挑战性的多跳推理基准MuSiQue和StrategyQA上评估了STEP-BACK PROMPTING。表3显示了在MuSiQue和StrategyQA的开发集上各种基线的表现。

在MuSiQue的情况下,CoT和TDB略微提高了模型的性能,这可以归因于此任务的内在推理特性,使得这些方法表现得很有帮助。在StrategyQA的情况下,使用CoT和TDB没有显著的性能提升,这可能是由于此任务的基线性能较高,这些提示方法的改进空间有限。通常,1-shot的表现显著低于其0-shot的方法,这可能是由于潜在的示例偏差。RAG提高了模型性能。结合抽象能力的STEP-BACK PROMPTING在所有方法中表现最佳:在MuSiQue中为42.8%,在StrategyQA中为86.4%。

7. 讨论

抽象帮助人类通过去除无关细节并提炼高层次的概念和原则来解决复杂任务,从而指导问题解决过程。STEP-BACK PROMPTING将复杂任务,如知识密集型问答、多跳推理和科学问题,分解为两个独立的步骤:抽象和推理。

尽管取得了一定成功,通过错误分析发现,推理仍然是LLMs最难掌握的技能之一:即使在STEP-BACK PROMPTING大幅度降低任务复杂性之后,推理仍然是主要的失败模式。

然而,抽象并不是在所有场景中都是必要或可能的。例如,任务可以简单到像“2000年美国总统是谁?”这样的问题,在这种情况下,没有必要退后一步去问一个高层次的问题,因为此类问题的答案显而易见。诸如“光速是多少?”这样的题目直接指向了第一原理。在这种情况下进行抽象也不会带来区别。

8. 相关工作

8.1 提示技术

少样本提示显著提升了模型在多种任务上的表现,而无需更新任何模型参数。STEP-BACK PROMPTING与思维链推理提示和草稿纸(scratchpad)处于同一类别,因为它们都具有简单性和通用性。但专注于抽象这一关键思想。也与背诵增强语言模型(e recitation-augmented language models)相关;然而,与他们的工作不同,明确地执行了回退和抽象,并根据当下任务的性质选择性地使用检索增强。

8.2 任务分解

将任务分解为更简单的任务并解决这些任务以完成原始任务一直是一种有效的方式来提高模型在复杂任务上的表现。在这方面,一些提示方法已经取得了成功。STEP-BACK PROMPTING工作则是在使问题更抽象和高层次,这与通常是原始问题的低层次分解不同。例如,对于“史蒂夫·乔布斯在1990年为哪个雇主工作?”这一通用问题,可以转化为“史蒂夫·乔布斯的就业经历是什么?”而分解则会导致子问题,如“史蒂夫·乔布斯在1990年做什么?”、“史蒂夫·乔布斯在1990年是否受雇?”以及“如果史蒂夫·乔布斯受雇,他的雇主是谁?”此外,诸如“史蒂夫·乔布斯的就业经历是什么?”这样的抽象问题通常是通用性质的,具有多对一的映射关系,因为许多问题(例如“史蒂夫·乔布斯在1990年为哪个雇主工作?”和“史蒂夫·乔布斯在2000年为哪个雇主工作?”)可以对应同一个抽象问题。这与分解不同,通常存在一对多的映射关系,而解决给定问题通常需要多个分解的子问题。

9 结论

作者引入了回退提示,作为一种简单但通用的方法,通过抽象在大型语言模型中引发深度推理。抽象帮助模型减少幻觉并更好地推理,可能反映了模型的真实特性,而这些特性在没有抽象的情况下回答原始问题时往往被隐藏。

Langchain中关于回退提示的示例代码如下:

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI

system = """You are an expert at taking a specific question and extracting a more generic question that gets at \
the underlying principles needed to answer the specific question.

You will be asked about a set of software for building LLM-powered applications called LangChain, LangGraph, LangServe, and LangSmith.

LangChain is a Python framework that provides a large set of integrations that can easily be composed to build LLM applications.
LangGraph is a Python package built on top of LangChain that makes it easy to build stateful, multi-actor LLM applications.
LangServe is a Python package built on top of LangChain that makes it easy to deploy a LangChain application as a REST API.
LangSmith is a platform that makes it easy to trace and test LLM applications.

Given a specific user question about one or more of these products, write a more generic question that needs to be answered in order to answer the specific question. \

If you don't recognize a word or acronym to not try to rewrite it.

Write concise questions."""
prompt = ChatPromptTemplate.from_messages(
    [
        ("system", system),
        ("human", "{question}"),
    ]
)
llm = ChatOpenAI(model="gpt-3.5-turbo-0125", temperature=0)
step_back = prompt | llm | StrOutputParser()

总结

⭐ 作者提出了回退提示技术,使大模型能够进行抽象,从包含具体细节的实例中推导出高层次的概念和基本原则。通过利用这些概念和原则来指导推理,LLMs显著提高了按照正确推理路径解决问题的能力。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

centos7 docker空间不足

今天在使用docker安装镜像的时候,出现报错 查看原因,发现是分区空间不足导致的 所以考虑进行扩容 首先在vmware扩容并没有生效 因为只是扩展的虚拟空间,并不支持扩展分区大小,下面对分区进行扩容 参考: 分区扩容 主…

【echarts】echarts-liquidfill 水球图

echarts-liquidfill3兼容echarts5 echarts-liquidfill2兼容echarts4 npm install echarts npm install echarts-liquidfill设置水球图背景色和内边框样式 var option {series: [{type: liquidFill,data: [0.6, 0.5, 0.4, 0.3],backgroundStyle: {borderWidth: 5,//边框宽度bo…

怎样看待AI就业冲击?

技术进步对于就业的影响,从工业革命开始就是社会的焦点和研究的关注点。具有“卢德主义”性质的运动和思潮,曾经以各种面貌反复出现。不过,无论是从原因穷究结果,还是从本质看到表象,AI就业冲击这一次来得真的不同以往…

申请美区 Apple ID 完整步骤图解,轻松免费创建账户

苹果手机在下载一些软件时需要我们登录其 Apple ID 才能下载,但是由于一些限制国内的 Apple ID 在 App Store 中有一些限制不能下载某些软件,如何解决这个问题?那就是申请一个美区 Apple ID,怎么申请国外苹果账户呢?下…

国家超算互联网平台:模型服务体验与本地部署推理实践

目录 前言一、平台显卡选用1、显卡选择2、镜像选择3、实例列表4、登录服务器 二、平台模型服务【Stable Diffusion WebUI】体验1、模型运行2、端口映射配置3、体验测试 三、本地模型【Qwen1.5-7B-Chat】推理体验1、安装依赖2、加载模型3、定义提示消息4、获取model_inputs5、生…

typescript中interface常见3种用法

文章目录 函数类型对象类型【自命名】: (函数)对象类型 函数类型 作用:声明一个函数接口:可用于类型声明 | 不可implements 对象类型 作用:声明对象具备哪些实例接口:可用于类型 | 可implements 【自命名】&…

【C#】ThreadPool的使用

1.Thread的使用 Thread的使用参考:【C#】Thread的使用 2.ThreadPool的使用 .NET Framework 和 .NET Core 提供了 System.Threading.ThreadPool 类来帮助开发者以一种高效的方式管理线程。ThreadPool 是一个线程池,它能够根据需要动态地分配和回收线程…

DATE_ADD、DATE_SUB Function - Mysql

DATE_ADD、DATE_SUB Function - SQL DATE_ADD() 和 DATE_SUB() 用于在日期或日期时间上增加或减少指定的时间间隔。 1. DATE_ADD() DATE_ADD() 函数用于向指定的日期或日期时间值添加一个时间间隔。 DATE_ADD(date, INTERVAL expr unit)date: 要添加时间间隔的日期或日期时间…

【Lampiao靶场渗透】

文章目录 一、IP地址获取 二、信息收集 三、破解SSH密码 四、漏洞利用 五、提权 一、IP地址获取 netdiscover -i eth0 Arp-scan -l Nmap -sP 192.168.78.0/24 靶机地址:192.168.78.177 Kali地址:192.168.78.128 二、信息收集 nmap -sV -p- 192.…

实战:ElasticSearch 索引操作命令(补充)

四.ElasticSearch 操作命令 4.1 集群信息操作命令 4.1.1 查询集群状态 (1)使用 Postman 客户端直接向 ES 服务器发 GET 请求 http://hlink1:9200/_cat/health?v (2)使用服务端进行查询 curl -XGET "hlink1:9200/_cat/h…

装饰大师——装饰模式(Python实现)

大家好,今天我们继续来讲结构型设计模式,上一期我们介绍了组合模式,这个模式特别适合用于处理树形结构的问题,它能够让我们像处理单个对象一样来处理对象组合。 装饰模式(Decorator Pattern)是一种结构型设…

最新彩虹自助下单代发卡码知识付费商城多模板系统完整版去授权源码V6.9

最新彩虹的知识付费商城源码,后台可以选择多套模板,完整版去授权,支持对接多个资源网站,不怕无资源 推荐用宝塔上传后直接访问即可根据提示安装。 后面用户名/密码:admin/123456 PHP推荐使用7.0及以上版本 V6.9 1.修复SQL注入…

k8s 部署RuoYi-Vue-Plus之ingress域名解析

可参看https://blog.csdn.net/weimeibuqieryu/article/details/140798925 搭建ingress 1.创建Ingress对象 ingress-ruoyi.yaml其中host替换为你对应域名,需要解析域名到服务器, 同时为后端服务添加了二级域名解析 api. 访问http://xxx.xyz/就能访问前端&#xff0…

应急靶场(11):【玄机】日志分析-apache日志分析

题目 提交当天访问次数最多的IP,即黑客IP黑客使用的浏览器指纹是什么,提交指纹的md5查看index.php页面被访问的次数,提交次数查看黑客IP访问了多少次,提交次数查看2023年8月03日8时这一个小时内有多少IP访问,提交次数 …

【Redis 初阶】Redis 常见数据类型(Set、Zset、渐进式遍历、数据库管理)

一、Set 集合 集合类型也是保存多个字符串类型的元素的(可以使用 json 格式让 string 也能存储结构化数据),但和列表类型不同的是,集合中: 元素之间是无序的。(此处的 “无序” 是和 list 的有序相对应的…

重载云台摄像机如何通过国标28181接入到统一视频接入平台(视频国标接入平台)

目录 一、国标GB/T 28181介绍 1、国标GB/T28181 2、内容和特点 二、重载云台摄像机 1、定义 2、结构与设计 3、功能和优势 4、特点 5、应用场景 二、接入准备工作 1、确定网络环境 (1)公网接入 (2)专网传输 2、检查重…

软件测试基础1--功能测试

1、什么是软件测试? 软件是控制计算机硬件运行的工具。 软件测试:使用技术手段验证软件是否满足使用需求,为了发现软件功能和需求不相符合的地方,或者寻找实际输出和预期输出之间的差异。 软件测试的目的:减少软件缺陷…

golang JSON序列化

JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 json历史 [外链图片转存失败,源站可能有防盗链机…

080基于ssm+vue的大学生兼职信息系统

开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.…