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

文章探讨了提升大语言模型在算术、常识和符号推理任务中性能的几种方法,包括思维链提示和零样本思维链。思维链通过展示推理过程样例引导模型给出更准确答案,而零样本思维链仅通过附加特殊提示就能让模型生成解题思路。此外,自洽性方法通过生成多条思路并取多数答案来提高结果的准确性。这些技术在某些情况下能显著改善模型的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

提示工程(Prompt Engineering)是人工智能领域中一个日益受到重视的子领域,它通过设计有效的提示(prompts)来引导语言模型输出期望的结果。为了帮助你更好地理解如何在项目中应用提示工程来提高模型的泛化能力,建议深入学习《人工智能-提示工程-课件》这一资源,它涵盖了Zero-Shot Prompting、Few-Shot PromptingChain-of-Thought Prompting、Self-Consistency、Generate Knowledge Prompting、Tree of Thoughts (ToT)、Retrieval Augmented Generation (RAG)等多种技术、应用案例、潜在风险及问题。 参考资源链接:[人工智能-提示工程-课件](https://wenku.csdn.net/doc/4yc1kuwipx?spm=1055.2569.3001.10343) 在实际项目中应用提示工程技术提高模型泛化能力,你可以从以下几个步骤入手: 1. 确定目标:首先明确你希望模型完成的任务类型,如文本分类、生成式问答、文本摘要等。 2. 选择合适的提示技术:根据任务类型选择合适的提示技术。例如,在数据稀缺的情况下,可以采用Few-Shot Prompting来引导模型学习少量示例。 3. 设计提示:设计有效的提示模板,这些模板应该能够捕捉任务的核心要求并激发模型产生正确的输出。 4. 迭代优化:通过与模型的多次交互,根据输出结果调整优化提示,直至达到满意的性能。 举例来说,如果你正在构建一个问答系统,可以使用Chain-of-Thought Prompting技术,引导模型通过一系列逻辑推理步骤来回答问题,从而提高模型对问题的理解答案的准确性。 在完成这一过程后,推荐继续深入学习《人工智能-提示工程-课件》,以获得更全面的知识技巧。这份资料不仅提供了技术应用案例,还讨论了在实施过程中可能遇到的问题风险,有助于你在项目中实施提示工程时避免常见陷阱,提高模型的整体性能。 参考资源链接:[人工智能-提示工程-课件](https://wenku.csdn.net/doc/4yc1kuwipx?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茫茫人海一粒沙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值