1. COT:Chain of Thought

COT 是 2022.01 由 google 提出的针对提升 LLM 的推理能力的 Prompt Engineering 方法。

paper:

参考资料:

1. 研究背景

  • LLM 使用大力出奇迹的方法(增加模型的训练数据和参数量)在情感分析和主题分类等 NLP 任务上已经实现了强大的性能。这些任务称为 system-1 tasks,这些任务能够很快很直观的被人类所理解。
  • 但 LLM 在推理任务中具有局限性:难以在推理任务中取得良好的性能,比如数学、符号、常识推理。这类任务称为 system-2 tasks,人类对这些任务需要详细的推理。

LLM 在推理任务中的局限性被称为 flat scaling curves,即简单地增加模型规模不会导致实质性的性能增益(大力不能出奇迹了)。

2. CoT的原理

CoT 的核心在于让 LLM 模拟人类一步一步思考和推理的过程(step-by-step thought process),并将该过程写入到 prompt 中。因此 CoT 是一种 Prompt Engineering 方法,并不涉及模型结构的改进。

传统的 Standard Prompt 只是 LLM 能力的下限,通过各种 Prompt Engineering 方法可以提高 LLM 的性能。

区别于传统的 Standard Prompt 从输入直接到输出的映射 「 input --> output 」 的方式,CoT 完成了从输入到思维链再到输出的映射,即 「 input --> reasoning chain --> output 」。如果将使用 CoT 的 Prompt 进行分解,可以更加详细的观察到 CoT 的工作流程。COT的原理如下图所示:

在这里插入图片描述

3. CoT Prompt

一个完整的包含 CoT Prompt 由指令(Instruction),逻辑依据(Rationale),示例(Exempes)三部分组成:

  • Instruction:用于描述问题并且告知大模型的输出格式
  • Rationale:指 CoT 的中间推理过程,可以包含问题的解决方案、中间推理步骤以及与问题相关的任何外部知识
  • Exempes:指以 Few-Shot 的方式为大模型提供输入输出对的基本格式,每一个示例都包含:问题、推理过程、答案。

以是否包含 Exempes 为区分,可以将 CoT 分为 Zero-Shot CoT 与 Few-Shot CoT:

  • Zero-Shot CoT:不添加 Exempes 而仅仅在指令中添加一行经典的 “Let’s think step by step”(GPT-3是这个指令),就可以“唤醒”LLM的推理能力。
  • Few-Shot Cot:在 Exempes 中详细描述了“解题步骤”,让模型照猫画虎得到推理能力。最早的 Exempes 是人为制定的,这可能导致 LLM 的性能依赖于 Exempes 的质量,因此后面出现了 Auto Cot 的工作,使 LLM 自动生成 Rationale
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐