文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

  • 文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
    • 1. 文章简介
    • 2. 具体方法
    • 3. 实验结果
      • 1. 数学推理
        • 1. 实验设计
        • 2. 实验结果
        • 3. 消解实验
        • 4. 鲁棒性考察
      • 2. 常识推理
        • 1. 实验设计
        • 2. 实验结果
      • 3. 符号推理
        • 1. 实验设计
        • 2. 实验结果
    • 4. 结论 & 思考
  • 文献链接:https://arxiv.org/abs/2201.11903

1. 文章简介

这篇文章还是一篇关于大模型的prompt调优的文章。

这里,主体的思路是使用Chain of Thought,也就是说把CoT的思路加入到prompt调优当中。和finetune当中使用的CoT方式相似,前者是将答案推导的推理链给出然后交给模型进行finetune,而这里,不在用于finetune,而是将其给出到few-shot learning当中,作为例子来指导模型进行生成推理,从而优化推理过程。

下面是一个具体的CoT prompt的例子:

在这里插入图片描述

而CoT Prompting效果的话,我们可以从下述GSM8K上的效果上一窥大概:

在这里插入图片描述

可以看到,在GSM8K测试集上,CoT Prompting的效果给LLM带来了显著的效果提升,且超过了当前的SOTA结果。

下面,我们就来看一下CoT Prompting的设计以及文中的实验考察。

2. 具体方法

关于CoT Prompting的具体方法设计,其实在上述的样例图中已经展示的比较清晰了,主旨来说,其实就是通过带有CoT的推理链的few shot例子的方式教给LLM推理的思路链,从而使得模型可以模仿其将问题进行拆分从而获得更加合理的回答。

更具体的,文中给出了CoT Prompting的4个主要的优点如下:

  1. CoT Prompting将问题进行了解构,从而将多步的问题拆分为了多个中间子问题,从而使得模型在推理过程中可以获得更多的计算,从而优化推理准确率;
  2. CoT由于解构了问题,从而在回答过程中存在了更多的可解释性,便于调试以及模型的自纠正;
  3. 可拓展性,CoT Prompting的方式可以广泛地用于数学问题,常识推理以及符号推理等问题当中;
  4. 使用上的便捷性,只需要通过几个简单的few shot的case,就能引导模型进行CoT的推理方式;

我们给出一些常见问题当中CoT Prompting使用的case如下:

在这里插入图片描述

下面,我们来看一下文中给出的一些具体的实验考察。

3. 实验结果

文中从数学推理,常识推理以及符号推理三个方面对CoT Prompting的效果进行了具体的考察。

下面,我们来看一下其各自的实验结果。

1. 数学推理

1. 实验设计

对于数学推理的问题,文中使用的测试数据主要包括:

  1. GSM8K
  2. SVAMP
  3. ASDiv
  4. AQuA
  5. MAWPS

而关于Prompt的设计,作为control,文中使用Brown et al.(2020)给出prompt,具体可以参考图一左侧的样例。而作为treatment,则是通过few-shot给出了CoT的样例,同样可以参考图一当中右侧的样例。

最后,关于实验中使用的LLM模型,具体包括以下一些:

  1. GPT-3
  2. LaMDA
  3. PaLM
  4. UL2 20B
  5. Codex

2. 实验结果

给出文中具体的实验结果如下:

在这里插入图片描述

可以看到:

  • 和早期的CoT实验效果相仿,对于小模型,CoT Prompting不一定能够带来提升,但是对于大模型,CoT Prompting可以带来显著的效果提升。

3. 消解实验

对于数学推理问题,中文还给出了CoT Prompting的一些消解实验,具体考察了以下几方面的影响:

  1. 用公式替换文本描述
  2. 依然只给出公式,不过公式中用变量名替换掉纯数字
  3. 将CoT的解释放置到给出答案之后,而不是之前

得到的实验结果如下:

在这里插入图片描述

可以看到,普遍效果都不太好,而这些也都比较好理解:

  • LLM显然对于语义的理解方面做的比公式的理解能力会强很多;
  • 前置解释可以辅助语言模型对于后续答案概率的生成优化。

4. 鲁棒性考察

而除了上述实验之外,文中还对CoT Prompting的鲁棒性进行了考察,具体而言,通过:

  1. 给出不同的人写作的CoT Prompting进行考察
  2. 用不同的样例作为few-shot的case

得到的结果如下:

在这里插入图片描述

可以看到:

  • 虽然存在一定的效果波动,不过整体而言CoT Prompting依然可以稳定地带来效果上的提升。

2. 常识推理

文中除了对于数学推理之外,还对常识推理进行了一些实验考察。

1. 实验设计

我们首先来看一下常识推理的一些实验设计。

在数据集选择方面,文中使用了如下一些测试数据集:

  1. CSQA
  2. StrategyQA
  3. Date
  4. Sports
  5. SayCan

而关于prompt以及模型的设计,则保持和前述数学推理相一致。

2. 实验结果

给出文中的实验结果如下:

在这里插入图片描述

可以看到:

  • 除了在CSQA数据集上没有获得较大的提升之外,在其他数据集上,CoT Prompting都带来了很大的性能提升,甚至在Sports数据集上超出了人类的水平。

3. 符号推理

最后,我们来看一下文中对于符号推理的实验结果。

1. 实验设计

首先,在实验设计方面,其他方面同样和之前的两个实验保持一致,只有在数据集上存在区别。

具体而言,这里使用如下两个数据集:

  1. Last letter concatenation
  2. Coin flip

2. 实验结果

给出文中的实验结果如下:

在这里插入图片描述

同样可以看到:

  • CoT可以稳定地带来效果提升。

4. 结论 & 思考

综上,我们基本可以得出结论:

  • 通过在few-shot learning当中加入CoT的方式,可以使得模型在生成过程中模仿CoT的方式,从而优化生成的结果。

这个结论本身倒是还挺好理解的,易用且有效,在这个以优化prompt为王的时代里,倒是可以在工作当中帮上大忙了。

不过这里我个人觉得,更本质的特征还是如何诱导模型进行CoT推理,诚然,这里是使用了一个最直接的方式,就是在few-shot当中直接加入样例,但是对于一些context非常长的case,这不一定可行,但是核心思路依然是可以借鉴的,在后续的prompt调优当中,个人觉得不失为一种优化的思路。

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

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

相关文章

华为数通方向HCIP-DataCom H12-821题库(单选题:241-260)

第241题 ​​LS Request​​报文不包括以下哪一字段? A、通告路由器(Advertising Router) B、链路状态 ID (Link Srate ID) C、数据库描述序列号(Database Dascription Sequence lumber) D、链路状态类型 Link state type) 答案:C 解析: LS Request 报文中包括以下字段…

协议定制 + Json序列化反序列化

文章目录 协议定制 Json序列化反序列化1. 再谈 "协议"1.1 结构化数据1.2 序列化和反序列化 2. 网络版计算器2.1 服务端2.2 协议定制(1) 网络发送和读取的正确理解(2) 协议定制的问题 2.3 客户端2.4 代码 3. Json实现序列化反序列化3.1 简单介绍3.2 使用 协议定制 J…

【送书活动】揭秘分布式文件系统大规模元数据管理机制——以Alluxio文件系统为例

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

python调用GPT实现:智能用例生成工具

工具作用: 根据输入的功能点,生成通用测试点 实现步骤 工具实现主要分2个步骤: 1.https请求调用Gpt,将返回响应结果保存为.md文件 2.用python实现 将 .md文件转换成.xmind文件 3.写个简单的前端页面,调用上述步骤接口 详细代…

操作系统强化认识之Shell编程学习与总结

目录 1.Shell的概述 2.Shell脚本入门 3.变量 3.1.系统预定义变量 3.2.自定义变量 3.3.特殊变量 4.运算符 5.条件判断 6.流程控制 6.1.if判断 6.2.case语句 6.3.for循环 6.4.while循环 7.read读取控制台输入 8.函数 8.1.系统函数 8.2.自定义函数 9.正则表示式入…

【C++入门到精通】C++入门 ——搜索二叉树(二叉树进阶)

阅读导航 前言一、搜索二叉树简介1. 概念2. 基本操作⭕搜索操作🍪搜索操作基本代码(非递归) ⭕插入操作🍪插入操作基本代码(非递归) ⭕删除操作🍪删除操作基本代码(非递归&#xff0…

MySQL无法查看系统默认字符集以及校验规则

show variables like character_set_database; show variables like collation_database;这个错误信息表示MySQL在尝试访问performance_schema.session_variables表时,发现该表不存在。这个问题可能是由于MySQL的版本升级导致的。解决这个问题的一种方法是运行mysql…

论文浅尝 | 训练语言模型遵循人类反馈的指令

笔记整理:吴亦珂,东南大学硕士,研究方向为大语言模型、知识图谱 链接:https://arxiv.org/abs/2203.02155 1. 动机 大型语言模型(large language model, LLM)可以根据提示完成各种自然语言处理任务。然而&am…

Java JUC 并发编程(笔记)

文章目录 再谈多线程并发与并行顺序执行并发执行并行执行 再谈锁机制重量级锁轻量级锁偏向锁锁消除和锁粗化 JMM内存模型Java内存模型重排序volatile关键字happens-before原则 多线程编程核心锁框架Lock和Condition接口可重入锁公平锁与非公平锁 读写锁锁降级和锁升级 队列同步…

[构建 Vue 组件库] 小尾巴 UI 组件库 —— 横向商品卡片(仿淘宝)

文章归档于:https://www.yuque.com/u27599042/row3c6 组件库地址 npm:https://www.npmjs.com/package/xwb-ui?activeTabreadmegitee:https://gitee.com/tongchaowei/xwb-ui 下载 npm i xwb-ui配置 按需导入 import {组件名 } from xwb-…

【Unity】 2D 游戏 库存模块实现

库存模块主要参考了 youtube 上的视频 BMo 的 Flexible INVENTORY SYSTEM in Unity with Events and Scriptable Objects 和 Simple Inventory UI in Unity With Grid Layouts 这两个视频是一个系列 还是一个视频也是 BMo的 How To INTERACT with Game Objects using UNITY E…

Nginx详解 第五部分:Ngnix反向代理(负载均衡 动静分离 缓存 透传 )

Part 5 一、正向代理与反向代理1.1 正向代理简介1.2 反向代理简介 二、配置反向代理2.1 反向代理配置参数2.1.1 proxy_pass2.1.2 其余参数 2.2 配置实例:反向代理单台web服务器2.3 代理转发 三、反向代理实现动静分离四、缓存功能五、反向代理客户端的IP透传5.1 原理概述5.2 一…

谁在为网络安全制造标尺?

“我们想帮助企业往后退一步,去全局的看一下自己的安全能力建设水平如何,以及在当下的阶段最应该做的安全建设是什么? ” 度量,对应的是更清晰的认知。而对企业安全而言,这种认知,也更在成为一把新的标尺…

Redis带你深入学习数据类型set

目录 1、set 2、set相关命令 2.1、添加元素 sadd 2.2、获取元素 smembers 2.3、判断元素是否存在 sismember 2.4、获取set中元素数量 scard 2.5、删除元素spop、srem 2.6、移动元素smove 2.7、集合中相关命令:sinter、sinterstore、sunion、sunionstore、s…

CSS:屏幕正中间有个元素A,元素A中有文字A,随着屏幕宽度的增加

始终需要满足以下条件: A元素垂直居中于屏幕***;A元素距离屏幕左右边距各10px;A元素里面的文字”A”的font-size:20px;水平垂直居中;A元素的高度始终是A元素宽度的50%; (如果搞不定可以实现为A元素的高度固定为200px;)请用 html及…

【Unity基础】3.脚本控制物体运动天空盒

【Unity基础】3.脚本控制物体运动&天空盒 大家好,我是Lampard~~ 欢迎来到Unity基础系列博客,所学知识来自B站阿发老师~感谢 (一)搭建开发环境 (1)下载visual studio 在我们下载unity编译器的时候&…

Microsoft Edge网页视频播放绿屏解决方法(B站)

一:问题,在B站观看视频时有绿色条纹 二:查找原因,未知 三:解决方法 三.1网页设置关闭硬件加速 三.2 点击视频播放下的 “小齿轮”,然后点击“更多播放设置” 把播放策略 “默认” 改为“AVC” 四&…

Tomcat配置域名和端口

Tomcat配置域名和端口 1.进入tomcat文件夹2. cd 到你的tomcat下3. 修改server.xml文件中监听端口4. 重启tomcat 1.进入tomcat文件夹 2. cd 到你的tomcat下 3. 修改server.xml文件中监听端口 继续修改server.xml中Host 4. 重启tomcat 进入bin ./shutdown.sh ./startup.sh …

etcd分布式存储

etcd分布式存储 etcd简介etcd下载安装etcd常用命令etcd配置参数etcd集群golang操作etcd

rrweb入门

rrweb 背景 rrweb 是 record and replay the web,是当下很流行的一个录制屏幕的开源库。与我们传统认知的录屏方式(如 WebRTC)不同的是,rrweb 录制的不是真正的视频流,而是一个记录页面 DOM 变化的 JSON 数组&#x…