ELF-DISCOVER:大型语言模型自我构建推理结构

论文地址:https://arxiv.org/pdf/2402.03620.pdf

Abstract

我们引入了SELF-DISCOVER,这是一个通用框架,用于让LLMs自我发现任务内在的推理结构,以解决对典型提示方法具有挑战性的复杂推理问题。该框架的核心是一个自我发现过程,在这个过程中,LLMs选择多个原子推理模块,比如批判性思维和逐步思维,并将它们组合成一个明确的推理结构,供LLMs在解码过程中遵循。SELF-DISCOVER显著提高了GPT-4和PaLM 2在具有挑战性的推理基准测试(如BigBench-Hard、基于代理人的推理和数学推理)上的性能,相比于Chain of Thought(CoT)高达32%。此外,SELF-DISCOVER在需要推理密集型方法,如CoT-Self-Consistency,时的表现超过20%,同时推理计算量减少了10-40倍。最后,我们展示了自我发现的推理结构在模型家族之间具有普遍适用性:从PaLM 2-L到GPT-4,从GPT-4到Llama2,并与人类推理模式共享共同点。

引言

在人工智能领域,大模型(LLMs)如GPT-4和PaLM 2在文本生成方面展现了强大性能。然而,这些模型在处理复杂推理任务时仍面临挑战。传统的提示方法,如思维链(CoT),虽然在某些情况下有效,但它们通常依赖于预设的推理过程,这可能不适用于所有类型的任务。

为此,Google的研究人员提出了「SELF-DISCOVER框架,可实现自动发现和构建推理结构,以解决各种任务」。该方法显著提高了GPT-4和PaLM 2的性能,相比思维链(CoT),性能提升高达32%

背景介绍

大型语言模型(LLM)的基础是由Transformer组成的,例如:GPT-4、PaLM 2,它们在连贯文本生成、指令遵循方面取得了令人印象深刻的突破。为了提升大模型解决复杂问题的能力,受到人类认知理论的启发,人们提出了各种提示(Prompt)方法。例如,Zero-Shot、Few-Shot思维链(CoT)模仿了人们分步解决问题的方式;基于分解的提示(decomposition-based prompting)技术,灵感来自于人们如何将一个复杂的问题分解为一系列较小的子问题,然后逐一解决这些子问题;回溯提示(step-back prompting)技术灵感来源于人类对相关任务的反思。

但是以上的这些技术作为一个原子推理模块,存在一定的局限性,因为当面对给定任务时都会存在隐含的先验假设。相反,本文作者认为每个任务都有独特的内在结构,这是有效解决推理问题的基础。

基于以上考虑,本文作者提出了一个名为自发现(SELF-DISCOVER)的框架,它允许LLMs自发现并组合原子推理模块,并形成一个明确的推理结构,以便在解码过程中遵循。这种方法的核心是一个自发现过程,其中LLMs从多个原子推理模块(如批判性思维和逐步思考)中选择,并将其组合成一个推理结构。

SELF-DISCOVER框架

SELF-DISCOVER框架的核心部分是自发现过程,它允许大型语言模型(LLMs)在没有明确标签的情况下,自主地为特定任务生成推理结构。SELF-DISCOVER框架包含两个主要阶段:自发现特定任务的推理结构、应用推理结构解决问题。如下图所示:

图片

「阶段一:自发现特定任务的推理结构」主要包含三个主要动作:选择(SELECT)、适应(ADAPT)和实施(IMPLEMENT)。如下图所示:

图片

其中:

  • 「选择(SELECT)」在这个阶段,模型从一组原子推理模块(例如“批判性思维”和“逐步思考”)中「选择对于解决特定任务有用的模块」。模型通过一个元提示(meta-prompt)来引导选择过程,这个元提示结合了任务示例和原子模块描述。选择过程的目标是确定哪些推理模块对于解决任务是有助的。

  • 「适应(ADAPT)」 一旦选定了相关的推理模块,下一步是调整这些模块的描述使其更适合当前任务。这个过程到将一般性的推理模块描述转化为更具体的任务相关描述。例如,对于算术问题,“分解问题”的模块可能被调整为“按顺序计算每个算术操作”。同样,这个过程使用元提示和模型来「生成适应任务的推理模块描述」

  • 「实施(IMPLEMENT)」 在适应了推理模块之后,SELF-DISCOVER框架将这些适应后的推理模块描述「转化为一个结构化的可执行计划」。这个计划以键值对的形式呈现,类似于JSON,以便于模型理解和执行。这个过程不仅包括元提示,还包括一个人类编写的推理结构示例,以帮助模型更好地将自然语言描述转化为结构化的推理计划。

「阶段二:应用发现推理结构」 完成阶段一之后,模型将拥有一个专门为当前任务定制的推理结构。在解决问题的实例时,模型只需遵循这个结构,逐步填充JSON中的值,直到得出最终答案。

这个过程的关键在于,它允许模型在没有人类干预的情况下,自主地生成适合特定任务的推理结构,这不仅提高了模型的推理能力,而且提高了推理过程的可解释性。通过这种方式,模型能够更有效地处理复杂和多样化的任务。

实验结果

在实验阶段,作者主要验证SELF-DISCOVER框架如何提升大型语言模型(LLMs)在处理复杂推理任务上的性能。实验选取了25个具有挑战性的任务,覆盖了算法推理、自然语言理解、世界知识和数学等多个领域。

在性能方面,如下图所示,在BigBench-Hard、Thinking for Doing和MATH等复杂推理基准测试中,SELF-DISCOVER显著提高了GPT-4和PaLM 2的性能,与Chain of Thought (CoT)相比,性能提升高达32%。

图片

在计算效率方面,与其他推理密集型方法(如CoT+Self-Consistency)相比,SELF-DISCOVER在保持性能的同时,所需的推理计算量减少了10-40倍。

图片

7. 结论

我们引入了SELF-DISCOVER,这是一个高效且性能优越的框架,用于模型从通用问题解决技能的种子集中自我发现任何任务的推理结构。我们观察到,在多个LLMs上,挑战性推理基准测试的性能显著提高了多达30%。SELF-DISCOVER的消融研究表明,组合的推理结构在LLMs之间具有普遍可转移性。展望未来,我们很兴奋地探索更多关于LLM结构化推理的内容,以推动问题解决的边界,并发现人机协作的潜力。

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

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

相关文章

测试交付类项目-文档规范

目的:为了确保项目的顺利进行和成功完成,并且为项目交付物提供准确的说明和指导。 文档提供时间:一般为产品验收完成,需求方初步确认完成后,需进行相关文档的提供,供需求方进行验收。 交付文档模板&#…

Python pip 换成国内镜像源

用 easy_install 和 pip 来安装第三方库很方便,它们的原理其实就是从Python的官方源pypi.python.org/pypi 下载到本地,然后解包安装。不过因为某些原因,访问官方的pypi不稳定,很慢甚至有些还时不时的访问不了。 跟 ubuntu 的 apt …

代码随想录算法训练营第七天|454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

题目&#xff1a;454.四数相加II 文章链接&#xff1a;代码随想录 视频链接&#xff1a;LeetCode:454.四数相加|| 题目链接&#xff1a;力扣题目链接 图释&#xff1a; // 四数相加|| int fourSumCount(vector<int>& nums1, vector<int>& nums2, vect…

项目经理到底要不要考PMP?有啥好处?

很多新手项目经理或者想要转行做项目经理的人&#xff0c;都会很快的注意到”PMP”这个证书。并且开始认真思考自己要不要考这个证书&#xff1f;以及想知道这个证书考试的具体难度、流程和内容。 先说结论&#xff1a; 值得考&#xff0c; 很容易考。 我在备考的过程中惊异…

excel批量数据导入时用poi将数据转化成指定实体工具类

1.实现目标 excel进行批量数据导入时&#xff0c;将批量数据转化成指定的实体集合用于数据操作&#xff0c;实现思路&#xff1a;使用注解将属性与表格中的标题进行同名绑定来赋值。 2.代码实现 2.1 目录截图如下 2.2 代码实现 package poi.constants;/*** description: 用…

【消息队列开发】 实现消息持久化

文章目录 &#x1f343;前言&#x1f340;消息存储格式设计&#x1f6a9;queue_data文件设计&#x1f6a9;queue_stat文件设计&#x1f6a9;拓展 &#x1f384;实现统计文件&#xff08;queue_stat&#xff09;的读写⭕总结 &#x1f343;前言 本次开发目标&#xff0c;实现消…

2024阿里云域名优惠口令大全(3月更新)

2024年阿里云域名优惠口令&#xff0c;com域名续费优惠口令“com批量注册更享优惠”&#xff0c;cn域名续费优惠口令“cn注册多个价格更优”&#xff0c;cn域名注册优惠口令“互联网上的中国标识”&#xff0c;阿里云优惠口令是域名专属的优惠码&#xff0c;可用于域名注册、续…

C# MES通信从入门到精通(1)——串口传输文件

前言: 在上位机软件开发领域,有一些工厂的mes系统需要我们通过串口发送文件的方式把一些图片或者检测数据csv文件等发送给服务器,这种方式是一些比较旧的工厂采用的方式,但是这种方式也是存在的,本文就是讲解如何使用串口发送文件详情见下文。 1、串口发送文件思路 将需…

【刷题节】美团2024年春招第一场笔试【技术】

1.小美的平衡矩阵 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int[][] nums new int[n][n], sum new int[n][n];char[] chars;for (int i 0; i < n; i) {…

介绍Oracle的SQL调化健康检查脚本(SQLHC)

概述 Oracle提供了一个SQL调优健康检查脚本&#xff08;SQLHC&#xff09;&#xff0c;用于检查需要优化的SQL的运行环境&#xff0c;生成报告以便帮助DBA找到SQL性能不佳的原因。SQLHC是SQLT的一个子集&#xff08;我后续的文章会介绍SQLT&#xff09;&#xff0c;但SQLHC与S…

迁移学习怎么用

如果想实现一个计算机视觉应用&#xff0c;而不想从零开始训练权重&#xff0c;比方从随机初始化开始训练&#xff0c;更快的方式是下载已经训练好权重的网络结构&#xff0c;把这个作为预训练&#xff0c;迁移到你感兴趣的新任务上。ImageNet、PASCAL等等数据库已经公开在线。…

C#,数值计算,希尔伯特矩阵(Hilbert Matrix)的算法与源代码

Hilbert, David (1862-1943) 1 希尔伯特(Hilbert) 德国数学家,在《几何学基础》中提出了第一套严格的几何公理(1899年)。他还证明了自己的系统是自洽的。他发明了一条简单的空间填充曲线,即埃里克魏斯汀的数学世界,即希尔伯特曲线,埃里克魏斯汀的数学世界,并证明了不…

C/C++程序设计实验报告2 | 循环结构实验

本文整理自博主学校大一&#xff08;2021级&#xff09;C/C专业课的课程实验报告&#xff0c;适合学弟妹或C语言初学者入门C语言学习、练习。 编译器&#xff1a;gcc 10.3.0 ---- 注&#xff1a; 1.虽然课程名为C程序设计&#xff0c;但实际上当时校内该课的内容大部分其实都是…

ElasticSearch学习篇10_Lucene数据存储之BKD动态磁盘树

前言 基础的数据结构如二叉树衍生的的平衡二叉搜索树通过左旋右旋调整树的平衡维护数据&#xff0c;靠着二分算法能满足一维度数据的logN时间复杂度的近似搜索。对于大规模多维度数据近似搜索&#xff0c;Lucene采用一种BKD结构&#xff0c;该结构能很好的空间利用率和性能。 …

查找jdk的安装

方式1&#xff1a;which或者where java which java -- linux where java --windows 方式2: echo 使用echo 打印配置的java home环境变量 echo $JAVA_HOME$ --linux echo %JAVA_HOME% --windows 方式3&#xff1a;使用ls -lrt -a &#xff1a;显示所有文件即目录…

沃通SSL证书证券行业应用案例

金融证券行业作为现代经济体系中的重要组成部分&#xff0c;其安全性直接关系到国家经济的稳定和广大投资者的利益。沃通SSL证书基于密码技术保护传输数据的机密性、完整性&#xff0c;通过权威身份认证确保服务器身份真实性&#xff0c;已持续为众多知名证券行业客户提供服务&…

微信小程序之vue按钮切换内容变化

效果图如下&#xff1b; 上代码 <template><view class"content"><view class"searchDiv"><view class"paytab"><view class"buttab" v-for"(t,index) in tabList" :key"index" clic…

Python小设计

1. 五个PPT上的界面打印【print、input函数】 &#xff08;1&#xff09;英雄商城登陆界面 print(英雄联盟商城登录界面 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~1. 用户登录2. 新用户注册3. 退出系统 ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~…

【Numpy】基础学习:一文了解np.expand_dims的作用、用法

【Numpy】基础学习&#xff1a;一文了解np.expand_dims的作用、用法 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望…

MySQL用法---MySQL Workbench创建数据库和表

1. 连接数据库 打开软件&#xff0c;点击左下角卡片&#xff0c;输入设置的数据库密码&#xff0c;勾选单选框 2. 了解主页面的组成部分 3. 创建数据库 先点击工具栏的创建按钮 再输入数据库名称 点击 Apply 创建 4. 创建数据表 展开数据库&#xff0c;在Tables上右键&…