论文笔记:Large Language Models as Analogical Reasoners

iclr 2024 reviewer打分5558

1 intro

  • 基于CoT prompt的大模型能够更好地解决复杂推理问题
    • 然而传统CoT需要提供相关的例子作为指导,这就增加了人工标注的成本
    • ——>Zero-shot CoT避免了人工标注来引导推理
      • 但是对于一些复杂的任务难以完成推理,例如code generation
  • ——>论文提出一种“归纳学习”的提示方法
    • 首先设计prompt让大模型生成出与当前问题比较相关的问题和答案,以辅助问答提出的问题

2 preliminary

  • 给定一个问题x

    • 首先通过prompt将问题映射到文本输入ϕ ( x ) 

      • zero-shotϕ ( x ) 就是x
        zero-shot CoTϕ ( x ) 是[x] think step by step
        few-shot CoT

        ϕ ( x ) 是[x]和一些带label的例子 \{(x_i,r_i,a_i)\})_{i=1}^K,即

        [x1][r1][a1].....[xK][rK][aK][x]

    • 任务目标是调用LLM解决这个问题【生成目标答案y】

      • 生成的目标答案可以包含reasoning path r【推理过程】和答案a 

3 方法

3.1 Self-Generated Exemplars

  • 让大模型从在训练阶段掌握的problem-solving knowledge中生成出相关的问题和解决方法

3.1.1 prompt举例

3.1.2 大模型给的答案

大模型先生成出3个相关的且互不相同的problem,并给出相应的解决方案,然后再对目标问题进行解决。

3.1.3 self-generated instruction的三个核心部分

  • 明确地让大模型生成相关且不同的样例。
    • 因为大模型会偏向于重复地生成一些经典的问题,导致误导
  • single-pass VS independent exemplar generation
    • 所谓single-pass,就是直接prompt,让模型生成3个样例
    • independent exemplar generation:让模型生成若干样例,然后采样3个样例,之后再重新设计prompt让大模型进行生成
    • ——>通过实验,发现single-pass效果最好
  • 生成的样例数量:3~5最佳

3.2 Self-generated Knowledge + Exemplars

  • 对于像代码生成等复杂的任务,3.1这样的案例生成方法不一定能过让模型很好地解决此类问题
    • ——>论文提出一种high-level generation方法。通过设计如下指令来实现:
  • 【让模型先思考选择什么algorithm,以及algorithm对应的tutorial】

有点类似于:论文笔记:Take a Step Back:Evoking Reasoning via Abstraction in Large Language Models-CSDN博客的后退一步?

3.2.1 prompt 案例

3.2.2 大模型给的答案

4 实验

4.1 实验任务

  • 数学问题:GSM8K、MATH等;
  • 代码生成:动态规划、图算法等复杂的编程题

4.2 效果比较

4.2.1 数学问题

4.2.2 代码生成

4.3 few-shot example 数量的异同

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

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

相关文章

Android 14.0 添加自定义服务,并生成jar给第三方app调用

1.概述 在14.0系统ROM产品定制化开发中,由于需要新增加自定义的功能,所以要增加自定义服务,而app上层通过调用自定义服务,来调用相应的功能,所以系统需要先生成jar,然后生成jar 给上层app调用,接下来就来分析实现的步骤,然后来实现相关的功能 从而来实现所需要的功能 …

Type-c转USBA3.0芯片 USBA3.0转Type-c芯片(USB3.1GEN2 多路切换Switch芯片) VL162

VL162具有CC功能的USB Type-C数据开关USB 3.1 Gen2 (10Gbps) VL162 带CC功能的USB Type-C数据开关 支持最高10Gbps 2差分通道,2:1 MUX/DeMUX 兼容10Gbps USB3.1 Gen2 低功耗,6mW在设备模式下有效 高直流共模电压,支持2.0V 28针QFN 3.5 x 4.5m…

3d representation的一些基本概念

顶点(Vertex):三维空间中的一个点,可以有多个属性,如位置坐标、颜色、纹理坐标和法线向量。它是构建三维几何形状的基本单元。 边(Edge):连接两个顶点形成的直线段,它定…

【华为OD机试】芯片资源限制(贪心算法—JavaPythonC++JS实现)

本文收录于专栏:算法之翼 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-芯片资源限制二.解题思路三.题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码四…

人工智能数据分析Python常用库 04 matplotlib库

文章目录 一、matplotlib库的作用与环境配置1、环境配置示例2、改变绘图风格3、保存图片 二、绘制二维图形1、折线图(1)示例(2)调整线条颜色:(3)调整线条风格(4)调整线宽…

[蓝桥杯 2020 省 AB1] 解码(非常详细)

[蓝桥杯 2020 省 AB1] 解码 题目描述 小明有一串很长的英文字母,可能包含大写和小写。 在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 出现次数的形式。 例如,连续…

【C语言】_文件内容操作:随机读写

目录 1. fseek 1.1 随机读文件 1.2 随机写文件 2. ftell 3. rewind 当以读方式打开一个存在且存有内容的文件时,文件指针会默认指向第一个元素。以在test4.txt文件中存储abcdef为例: int main() {//打开文件FILE* pf fopen("E:\\C_文件操作…

关系型数据库与非关系型数据库、Redis数据库

相比于其他的内存/缓存数据库,redis可以方便的实现持久化的功能(保存至磁盘中) 一、关系数据库与非关系型数据库 1.1 关系型数据库 一个结构化的数据库,创建在关系模型基础上一般面向于记录 SQL语句 (标准数据查询语言) 就是一种…

C语言中不常用到的一些函数

basename 功能:basename() 函数用于获取路径中的文件名部分,即去除路径中的目录部分。 函数原型: char *basename(char *path); 参数说明: path: 指向以null结尾的字符串,表示文件路径。 用法示例: …

LNMP环境:揭秘负载均衡与高可用性设计

lb1: 192.168.8.5 lb2: 192.168.8.6 web1:192.168.8.7 web2:192.168.8.8 php-fpm: 192.168.8.9 mysql: 192.168.8.10 nfs:192.168.8.11 分别插入镜像 8.5-8.8 分别安装nginx,并设置启动 8.9 安装php 8.10 安装mysql 先配置一台web服务器然后同步 设置网站根目录 cp -…

蛮力算法与凸包蛮力算法的深入探究

一、引言 在计算机科学中,算法是解决问题的核心。蛮力算法(Brute Force Algorithm)是众多算法中的一种,它采取最直接的方式来解决问题,不进行任何优化。尽管这种方法的效率可能不高,但在某些情况下&#x…

静态路由协议

路由器工作原理 当数据包进入路由器后,路由器基于数据包中的目标IP地址,查询本地的路由表;若表中存在记录则无条件按照记录转发,若没有记录将丢弃。 默认路由器仅存在直连网段路由,非直连网段被称为未知网段。 路由器…

深入解析二叉树:理论与实践的完美结合

二叉树作为数据结构的核心,不仅在算法设计中占有重要位置,而且在互联网公司的面试中频繁出现。通过本文的学习,你将能够深入理解二叉树的概念、掌握其实现方式,并能应用于实际问题解决。 深入解析二叉树:理论与实践的完美结合 1. 二叉树的基础知识定义二叉树节点2. 二叉树…

【00】【solidity最新教程】-简介

Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。 Solidity 是静态类型语言,支持继承、库和复杂的用…

安卓手机APP开发的安卓工作台的简介

安卓手机APP开发的安卓工作台的简介 目录 概述 项目结构 Gradle的构建系统 构建变体 多APK支持 资源的废弃回收 管理依赖 调试与性能分析工具 内联调试 性能分析工具 堆转存

java -网络编程socket-聊天室-02

完整版代码 java -聊天室的代码: 用于存放聊天室的项目的代码和思路导图https://gitee.com/to-uphold-justice-for-others/java---code-for-chat-rooms.git 先引入线程的正统解释 线程(Thread)是程序执行流的最小单元。线程是操作系统分配CPU时间片的基…

【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)

题目 假设你在Uber工作。rides表包含了关于Uber用户在美国各地的行程信息。 编写一个查询,以获取纽约(NY)每位通勤者的平均通勤时间(以分钟为单位),以及纽约所有通勤者的平均通勤时间(以分钟为…

vue广告悬浮框,页面来回移动,鼠标放上停止,离开移动

1.dom <div class"popup-dialog" id"popupDialog" mouseover"onMmouseover" mouseout"onMouseout"><p>vue广告悬浮</p></div>2.js mounted() {this.initPopup();},beforeDestory() {if (this.times) {clearIn…

基于JAX的二阶优化方法的实践

使用协作分支上的算法 git clone https://github.com/linjing-lab/jax.git cd jax git checkout linjing-lab cd examples在命令行预览方法 牛顿方法&#xff1a; cat newton_method.py拟牛顿法&#xff1a; cat bfgs_method.py在命令行运行程序 python newton_method.pyp…

鸡尾酒排序解读

在数据处理的海洋中&#xff0c;排序算法无疑是引领我们探索数据规律的灯塔。今天&#xff0c;我们要探讨的是一种有趣且独特的排序算法——鸡尾酒排序。鸡尾酒排序&#xff0c;也被称为定向冒泡排序、双冒泡排序或搅拌排序&#xff0c;是冒泡排序的一种变体&#xff0c;它通过…