Chain of Thought Prompting和Zero Shot Chain of Thought初步认识

2023-10-11 03:50

本文主要是介绍Chain of Thought Prompting和Zero Shot Chain of Thought初步认识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 思维链提示(Chain-of-Thought Prompting)

思维链(Chain-of-Thought:CoT)提示过程是一种最近开发的提示方法,论文中对三种大型语言模型的实验表明,思维链提示提高了一系列算术、常识和符号推理任务的性能。它鼓励大语言模型解释其推理过程。下图显示了 few shot standard prompt(左)与链式思维提示过程(右)的比较。

思维链提示使大型语言模型能够处理复杂的算术、常识和符号推理任务。 突出显示了思维链推理过程。
思维链提示使大型语言模型能够处理复杂的算术、常识和符号推理任务。 突出显示了思维链推理过程。

思维链的主要思想是通过向大语言模型展示一些少量的 exemplars,在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。

结论

思维链已被证明对于算术、常识和符号推理等任务的结果有所改进1。特别是,在GSM8K2基准测试上,PaLM 540B3的提示达到了57%的解决率准确性。

例子

思维链提示:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.
The odd numbers in this group add up to an even number: 17,  10, 19, 4, 8, 12, 24.
A: Adding all the odd numbers (17, 19) gives 36. The answer is True.
The odd numbers in this group add up to an even number: 16,  11, 14, 4, 8, 13, 24.
A: Adding all the odd numbers (11, 13) gives 24. The answer is True.
The odd numbers in this group add up to an even number: 17,  9, 10, 12, 13, 4, 2.
A: Adding all the odd numbers (17, 9, 13) gives 39. The answer is False.
The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 
A:

结果:

Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.

哇! 当我们提供推理步骤时,我们可以看到一个完美的结果。 事实上,我们可以通过提供更少的例子来解决这个任务,即一个例子似乎就足够了:

思维链提示:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.

A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1.

A:

结果

Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.

请记住,作者声称这是一种随着足够大的语言模型而出现的新兴能力。

限制

思维链已被证明对于算术、常识和符号推理等任务的结果有所改进1。特别是,在GSM8K2基准测试上,PaLM 540B3的提示达到了57%的解决率准确性。

备注​

本章的写作过程中,没有对任何语言模型进行微调 

论文地址

Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

https://ai.googleblog.com/2022/05/language-models-perform-reasoning-via.html

2.零样本思维链(Zero Shot Chain of Thought)

零样本思维链(Zero Shot Chain of Thought,Zero-shot-CoT)提示过程1是对 CoT prompting2 的后续研究,引入了一种非常简单的零样本提示。他们发现,通过在问题的结尾附加“让我们一步步思考。”这几个词,大语言模型能够生成一个回答问题的思维链。从这个思维链中,他们能够提取更准确的答案。

从技术上讲,完整的零样本思维链过程涉及两个单独的提示/补全结果。在下面的图像中,左侧的顶部气泡生成一个思维链,而右侧的顶部气泡接收来自第一个提示(包括第一个提示本身)的输出,并从思维链中提取答案。这个第二个提示是一个 自我增强 的提示。

结论​

零样本思维链也有效地改善了算术、常识和符号推理任务的结果。然而,毫不奇怪的是,它通常不如思维链提示过程有效。,在获取思维链提示的少量示例有困难的时候,零样本思维链可以派上用场。

例子

标准提示

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?

结果

11 apples

答案不正确! 现在让我们尝试使用特殊提示。

零样本思维链提示

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?Let's think step by step.

结果

First, you started with 10 apples.You gave away 2 apples to the neighbor and 2 to the repairman, so you had 6 apples left.Then you bought 5 more apples, so now you had 11 apples.Finally, you ate 1 apple, so you would remain with 10 apples.

震惊的是,这个简单的提示在完成这项任务时非常有效。 当您没有太多示例可用于提示时,这特别有用。

有趣的消融实验​

Kojima等人尝试了许多不同的零样本思维链提示(例如“让我们按步骤解决这个问题。”或“让我们逻辑思考一下。”),但他们发现“让我们一步一步地思考”对于他们选择的任务最有效。

备注​

提取步骤通常必须针对特定任务,使得零样本思维链的泛化能力不如它一开始看起来的那样强。

从个人经验来看,零样本思维链类型的提示有时可以有效地提高生成任务完成的长度。例如,请考虑标准提示写一个关于青蛙和蘑菇成为朋友的故事。在此提示的末尾附加让我们一步一步地思考会导致更长的补全结果。

论文地址

Large Language Models are Zero-Shot Reasoners

3. 自洽性(Self-Consistency)

自洽性(Self-consistency)1是对 CoT 的一个补充,它不仅仅生成一个思路链,而是生成多个思路链,然后取多数答案作为最终答案。

在下面的图中,左侧的提示是使用少样本思路链范例编写的。使用这个提示,独立生成多个思路链,从每个思路链中提取答案,通过“边缘化推理路径”来计算最终答案。实际上,这意味着取多数答案。

图 1:自洽方法包含三个步骤:(1) 使用思维链 (CoT) 提示提示语言模型; (2) 通过从语言模型的解码器中采样来替换 CoT 提示中的“贪婪解码”,以生成一组不同的推理路径; (3) 通过在最终答案集中选择最一致的答案来边缘化推理路径并进行聚合。

结论​

研究表明,自洽性可以提高算术、常识和符号推理任务的结果。

即使普通的思路链提示被发现无效2,自洽性仍然能够改善结果。

备注​

Wang 等人讨论了一种更复杂的边缘化推理路径方法,该方法涉及每个思路链生成的大语言模型概率。然而,在他们的实验中,他们没有使用这种方法,多数投票似乎通常具有相同或更好的性能。

论文地址

https://arxiv.org/pdf/2203.11171.pdf

4. 角色提示(Role Prompting)

另一种提示技术是给 AI 分配一个角色。例如,您的提示可以以"你是一名医生"或"你是一名律师"开始,然后要求 AI 回答一些医学或法律问题。举个例子:

You are a brilliant mathematician who can solve any problem in the world.
Attempt to solve the following problem:

What is 100*100/400*56?

The answer is 1400.

AI (GPT-3 davinci-003) 的答案用绿色突出显示:

这是一个正确的答案,但是如果 AI 只是被提示100100/40056等于几?,它会回答280(错误)。

通过为 AI 分配一个角色,我们给它提供了一些上下文。这个上下文有助于 AI 更好地理解问题。通过更好地理解问题,AI 往往可以给出更好的答案。

这种技术在现代的 AI 中 (例如 GPT-3 davinci-003) 不再那么有效了。然而,我在这个例子中使用了 GPT-3 davinci-003,所以角色提示仍然至少是一个比较有效的工具。

参考资料

🟢 Chain of Thought Prompting | Learn Prompting: Your Guide to Communicating with AI

这篇关于Chain of Thought Prompting和Zero Shot Chain of Thought初步认识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/185328

相关文章

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

初步学习Android的感想

之前在学习java语言的时候就经常听说过Android这门语言,那时候感觉Android有些神秘感,再加上Android是用来开发移动设备的一门语言,所以一直对Android抱有一种兴奋的心情。 在我开始接触 Android之后,感觉超好玩,因为可以在自己的手机设备上开发一些我喜欢的小应用,再想想之前说学习Android应该会很难,但是如果你真的接触了,而且有JAVA的功底,我想学习Androi

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

SpringMVC-1.认识及配置

SpringMVC是一个基于请求驱动的Web框架,和structs一样是目前最优秀的基于MVC框架,现在的项目一般都使用SpringMVC代替Structs。 MVC模式中,Model是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象在数据库中存取数据。View是应用程序中处理数据显示的部分,通常视图是依据模型数据创建。Controller是应用程序中处理用户交互的部分。通常控制器负责从视

【H2O2|全栈】关于HTML(1)认识HTML

HTML相关知识 目录 前言 准备工作 WEB前端是什么? HTML是什么? 如何运行HTML文件? 标签 概念 分类 双标签和单标签 行内标签和块标签 HTML文档结构 预告和回顾 UI设计相关 Markdown | Md文档相关  项目合作管理相关  后话 前言 本系列的博客将分享前端HTML的相关知识点。 本篇作为本系列的第一期博客,主要讲解H

认识鬼火引擎

一、Irrlicht简介 (1)概念Irrlicht引擎是一个用C++书写的高性能实时3D引擎,可以应用于C++程序或者.NET语言中。通过使用Direct3D(Windows平台)、OpenGL 或它自己的软件着色程序,可以实现该引的完​全跨平台。尽管是开源的,该Irrlicht库提供了可以在商业级的3D引擎上具有的艺术特性,例如动态的阴影,粒子系统,角色动画,室内和室外技术以及碰撞检测等。(