打造中国最大的
AI交流社区平台

【ChatGPT教程全集】♂️ 进阶教程

【ChatGPT教程全集】‍♂️ 进阶教程插图
【ChatGPT教程全集】‍♂️ 进阶教程插图1

思维链提示过程

思维链(CoT)提示过程1是一种最近开发的提示方法,它鼓励大语言模型解释其推理过程。下图1显示了few shot standard prompt(左)与链式思维提示过程(右)的比较。

【ChatGPT教程全集】‍♂️ 进阶教程插图2

常规提示过程 vs 思维链提示过程(Wei et al.)

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

示例

以下是几个演示。第一个演示了GPT-3(davinci-003)无法解决简单的单词问题。第二个演示了GPT-3(davinci-003)通过使用思维链提示过程成功解决相同的问题。

不正确的答案

正确的答案

结论

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

【ChatGPT教程全集】‍♂️ 进阶教程插图3

Comparison of models on the GSM8K benchmark (Wei et al.)

限制

重要的是,根据Wei等人的说法,“思维链仅在使用∼100B参数的模型时才会产生性能提升”。较小的模型编写了不合逻辑的思维链会导致精度比标准提示更差。通常,模型从思维链提示过程中获得性能提升的方式与模型的大小成比例。

备注

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


  1. Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.
  2. Cobbe, K., Kosaraju, V., Bavarian, M., Chen, M., Jun, H., Kaiser, L., Plappert, M., Tworek, J., Hilton, J., Nakano, R., Hesse, C., & Schulman, J. (2021). Training Verifiers to Solve Math Word Problems.
  3. Chowdhery, A., Narang, S., Devlin, J., Bosma, M., Mishra, G., Roberts, A., Barham, P., Chung, H. W., Sutton, C., Gehrmann, S., Schuh, P., Shi, K., Tsvyashchenko, S., Maynez, J., Rao, A., Barnes, P., Tay, Y., Shazeer, N., Prabhakaran, V., … Fiedel, N. (2022). PaLM: Scaling Language Modeling with Pathways.

零样本思维链

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

【ChatGPT教程全集】‍♂️ 进阶教程插图4

零样本思维链(Kojima et al.)

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

【ChatGPT教程全集】‍♂️ 进阶教程插图5

完整的零样本思维链过程(Kojima et al.)

示例

以下是一些演示(仅执行推理提取)。这个演示展示了GPT-3(davinci-003)无法解决一个简单的数学问题,而第二个演示使用了零样本思维链提示,并成功地解决了这个问题。随意输入您的OpenAI API密钥(点击生成),并在示例中进行操作。请注意,与思维链提示相比,零样本思维链提示要简单得多。

错误示例

正确示例

结论

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

有趣的消融实验

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

备注

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

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


  1. Kojima, T., Gu, S. S., Reid, M., Matsuo, Y., & Iwasawa, Y. (2022). Large Language Models are Zero-Shot Reasoners.
  2. Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.

自洽性

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

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

【ChatGPT教程全集】‍♂️ 进阶教程插图6

自洽性 (Wang et al.)

结论

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

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

备注

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


  1. Wang, X., Wei, J., Schuurmans, D., Le, Q., Chi, E., Narang, S., Chowdhery, A., & Zhou, D. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models.
  2. Ye, X., & Durrett, G. (2022). The Unreliability of Explanations in Few-shot Prompting for Textual Reasoning.

知识生成

生成的知识方法(Generated Knowledge Approach)1要求LLM在生成响应之前生成与问题相关的可能有用的信息。该方法由两个中间步骤组成,即知识生成和知识集成。

【ChatGPT教程全集】‍♂️ 进阶教程插图7

知识生成(Liu et al.)

知识生成

在知识生成步骤中,要求LLM生成有关问题的一组事实。大语言模型将以 few-shot 方式进行提示,如下所示。使用相同提示生成 M 个不同的完成。

【ChatGPT教程全集】‍♂️ 进阶教程插图8

生成的知识示例(Liu et al.)

知识集成

接下来,我们生成“知识增强”问题,并用它们提示LLM获得最终答案。最好的理解方法是通过一个例子来说明。

假设我们正在尝试回答问题“大多数袋鼠有 肢体”。假设在知识生成步骤中,我们生成了 2 个知识(M=2):

  • 知识1:“袋鼠是生活在澳大利亚的有袋动物。”
  • 知识2:“袋鼠是有 5 条肢体的有袋动物。”

现在,我们将每个知识与问题连接起来,生成知识增强的问题:

  • 知识增强问题1:“大多数袋鼠有 肢体。袋鼠是生活在澳大利亚的有袋动物。”
  • 知识增强问题2:“大多数袋鼠有 肢体。袋鼠是有 5 条肢体的有袋动物。”

然后,我们用这些知识增强的问题提示 LLM,并获得最终答案的提案:

  • 答案1:“4”
  • 答案2:“5”

我们选择概率最高的答案作为最终答案。最高概率可能是答案令牌的 softmax 概率,或答案令牌的对数概率。

结论

这种方法显示了对各种常识数据集的改进。

备注

The knowledge corresponding to the selected answer is called theselected knowledge. 与所选答案对应的知识称为“精选知识”。


  1. Liu, J., Liu, A., Lu, X., Welleck, S., West, P., Bras, R. L., Choi, Y., & Hajishirzi, H. (2021). Generated Knowledge Prompting for Commonsense Reasoning.

最少到最多提示过程

最少到最多提示过程 (Least to Most prompting, LtM)1思维链提示过程 (CoT prompting)进一步发展,首先将问题分解为子问题,然后逐个解决。它是受到针对儿童的现实教育策略的启发而发展出的一种技术。

与思维链提示过程类似,需要解决的问题被分解成一组建立在彼此之上的子问题。在第二步中,这些子问题被逐个解决。与思维链不同的是,先前子问题的解决方案被输入到提示中,以尝试解决下一个问题。

LtM 的图示

LtM 的图示

示例:回复客户咨询

让我们问一个稍微复杂的客服问题:
这个回答是错误的(目前还在退货时间内),那我们来将问题分解为子问题试试:
让我们试着解决第一个子问题:

仅仅通过解决第一个子问题,我们就能解决整个问题。如果 GPT-3 没有立即给出答案,我们可以解决下一个子问题,直到它返回答案。值得注意的是,我们使用让我们一步一步来的提示短语。这个提示不是必须的,但对于这个例子来说效果很好。

示例:字符连接

LtM 最初是使用 few-shot 提示的方式引入的,而不是显式指令将问题分解为多个步骤(如上所示)。除此之外,有时也可以使用单一提示而不是提示链来实现它。让我们来看看字符连接的尾字问题2,例如给定输入词语思考、机器,则输出应为考器

第一次尝试:标准提示

即使使用更先进的模型(如 text-davinci-003),标准提示与 few-shot 示例的表现也非常糟糕。

第二次尝试:思维链

思维链的表现比标准提示好得多。这是因为它现在允许模型考虑自己提取每个单词的最后一个字母,将复杂性降低到分组已经收集的字母的行为。然而,这种方法在更长的输入下也可能慢慢出现问题。

第三次尝试:LtM(单一提示)

使用 LtM,我们通过重新表述先前串联的结果来增强思维链的概念。这种做法使得每个步骤变的简单,即每次只需要连接一个字符。这种方法带来了非常好的效果,12 个乃至更多的词都能得到正确结果。

这种方法看起来与思维链非常相似,但在概念上大有不同。在这里,每一步都引入了上一步连接的结果。例如,在“思考、机器、学习”的这个例子种,它不会单独连接字符“考”,“器”,“习”,而是连接“考”和“器”,然后连接“考器”和“习”。由于重新引入了上一步的结果,模型现在可以推广到更长的链,因为它每一步都带着增量结果,同时单步骤内只需要做很少的工作。(译注:该例子使用了 ‘|’ 而非 ‘,’,是因为中文的逗号经常不被识别为分隔符)。

结论

在具有 12 个词的字符问题上,思维链的准确率为 34%,而 LtM 的准确率为 74%(该论文使用 text-davinci-002 作为模型)(译注:上面的示例因为翻译成了中文,所以准确率与原文中的值应该不同)。

示例:组合泛化问题(compositional generalization) (SCAN)

SCAN 基准测试3要求模型将自然语言转换为动作序列。例如,句子 “run left and walk twice” 将被翻译为 “TURN_LEFT + RUN + WALK * 2”。当面对训练集中长度更长的序列时,语言模型的表现尤其差。

第一次尝试:标准提示

使用简单的标准提示,text-davinci-003 的表现非常出色,但仍然失败了。

(译注:该示例如果翻译成中文,无法复现效果,因此保持原文)

第二次尝试:LtM,第一步 – 缩减

在这里,我们使用两个不同的提示。第一个提示用于将输入问题缩减为一个步骤序列。第二个提示用于将这个缩减后的步骤序列映射到实际的操作中。

这两个提示都相当长,因而使用压缩的 Python 符号表示操作,以节省标记(tokens)。

第一步将自然语言描述分解为更明确但仍类似人类的语言。这将有助于映射步骤按顺序解决问题。 例如,“jump around left twice” 被简化为 “jump left” -> TURN_LEFT + JUMP 和 “jump around left” -> (TURN_LEFT + JUMP) * 4。同样,减少步骤是用来解释重复概念(twice、thrice 等)的。

第二次尝试:LtM,第二步 – 映射

在第二步中,我们使用缩减过的结果,并再次使用相当长的提示(14个案例)将简化的自然语言描述转换为一系列操作。

在这里,我们注入第一步的输出:

“jump around left twice” can be solved by: “jump left”, “jump around left”, “jump around left twice”. “walk opposite left thrice” can be solved by: “walk opposite left”, “walk opposite left thrice”. So, “jump around left twice after walk opposite left thrice” can be solved by: “jump left”, “jump around left”, “jump around left twice”, “walk opposite left”, “walk opposite left thrice”.

到 LLM 中。

结论

LtM 带来了多项提升:

  • 相对于思维链提高了准确性
  • 在难度高于提示的问题上提升了泛化能力
  • 在组合泛化方面的性能得到了显著提高,特别是在SCAN基准测试3

使用 text-davinci-002(论文中使用的模型)的标准提示解决了 6% 的 SCAN 问题,而 LtM 提示则取得了惊人的 76% 的成功率。在 code-davinci-002 中,结果更为显著,LtM 达到了 99.7% 的成功率。


  1. Zhou, D., Schärli, N., Hou, L., Wei, J., Scales, N., Wang, X., Schuurmans, D., Cui, C., Bousquet, O., Le, Q., & Chi, E. (2022). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models.
  2. Wei, J., Wang, X., Schuurmans, D., Bosma, M., Ichter, B., Xia, F., Chi, E., Le, Q., & Zhou, D. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models.
  3. Lake, B. M., & Baroni, M. (2018). Generalization without Systematicity: On the Compositional Skills of Sequence-to-Sequence Recurrent Networks. https://doi.org/10.48550/arXiv.1711.00350

提示的关键要素

在之前的页面中,我们已经讨论了几种不同的提示策略。本页将提供一般建议,这些建议对于提示的实际编写很重要。

“基本事实的重要性不大”

令人惊讶的是,在提示中提供少量exemplars时,实际答案 (gold) 并不重要。正如下图所示,即使在样本中提供随机标签,性能也几乎不受影响1。在此图像中,“演示”与示例相同。

【ChatGPT教程全集】‍♂️ 进阶教程插图10

标签空间很重要

尽管样本中的黄金标签并不重要,但labelspace很重要。即使从标签空间中提供随机标签,也有助于大语言模型更好地理解标签空间并提高结果。此外,正确地在示例中表示标签空间的分布很重要。与在示例中从标签空间中均匀采样不同,最好按照标签的真实分布进行采样。

格式很重要

样本的格式或许是最重要的部分,因为它指示大语言格式如何正确地格式化其对提示的答案。

例如,请考虑以下样本。它们使用全大写的单词作为答案。尽管这些答案完全错误(2+2不是50),但 GPT-3 正确地回答了最后一个问题,并按照其他样本的格式进行回答。

2+2等于多少?
五十
20+5等于多少?
四十三
12+9等于多少?
二十一

备注

使用 4 到 8 个样本是适合用于少量示例提示的合适数字1,但通常尽可能多地提供样本会更有帮助。


  1. Min, S., Lyu, X., Holtzman, A., Artetxe, M., Lewis, M., Hajishirzi, H., & Zettlemoyer, L. (2022). Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?

欢迎免费使用GPT对话,感受ChatGPT的魅力! – 最具实力的中文AI交流社区平台 (aiahz.com)

长按扫描二维码进群领资源

【ChatGPT教程全集】‍♂️ 进阶教程插图11
赞(0) 打赏
未经允许不得转载: » 【ChatGPT教程全集】♂️ 进阶教程
分享到

评论抢沙发

欢迎来到

我们旨在打造一个最具实力的中文AI交流社区平台,致力于为所有 ,创业者和使用者提供优质服务. 我们的宗旨是为广大用户提供免费解决方案,您可以通过问答形式提出与AI相关的任何问题.

AI社区 AI工具

安全服务战略合作伙伴:麒麟盾 SCDN

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

微信扫一扫打赏

登录

找回密码

注册

Baidu
map