Chain-of-Thought(CoT)

0 阅读5分钟

1. 思维链概念的开山之作——Chain-of-Thought Prompting

CoT 提示过程是一种最近开发的提示方法,它鼓励大语言模型解释其推理过程。思维链的主要思想是通过向大语言模型展示一些少量的 exapmles,在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。

以一个数学题为例:

可以看到模型无法做出正确的回答。但如果说,我们给模型一些关于解题的思路,就像我们数学考试,都会把解题过程写出来再最终得出答案,不然无法得分。CoT 做的就是这件事,示例如下:

思维链提示,就是把一个多步骤推理问题,分解成很多个中间步骤,分配给更多的计算量,生成更多的 token,再把这些答案拼接在一起进行求解。

2. Zero-shot-CoT

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

image.png 这句“Let's think step by step”是经过验证的,比如对比下面的其它的 instruction,尤其那些不相关的和误导的,效果就非常差,说明大模型真的是在理解这句 instruction 的意思。

image.png

3. 多数投票提高CoT性能——自洽性(Self-consistency)

这篇文章是 CoT 后很快的一个跟进工作,是 CoT 系列改进的重要一步,在 2022 年 3 月在arxiv上被放出来。这篇文章几乎用的和 CoT 完全一样的数据集和设置,主要改进是对答案进行了多数投票(majority vote),并且发现其可以显著地提高思维链方法的性能。

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

image.png

4. LtM (Least to Most prompting)提示

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

image.png

5. Flan-PaLM/T5:CoT + Finetuning

Flan-T5 是 Google 最新的一篇工作,通过在超大规模的任务上进行微调,让语言模型具备了极强的泛化性能,做到单个模型就可以在 1800 多个 NLP 任务上都能有很好的表现。这意味着模型一旦训练完毕,可以直接在几乎全部的 NLP 任务上直接使用。

Flan-T5 是在吸收 Flan 的精华的基础上,加入了 CoT 的数据来做 finetune。PaLM/T5 是 2019 年 Google 发布的一个语言模型。论文的核心贡献是提出一套多任务的微调方案,来极大提升语言模型的泛化性。 image.png

这也进一步证明了 CoT 是可以和当前流行的 instruction tuning 无缝衔接的。下面看一下Flan-PaLM/T5的具体做法。

image.png 如上图所示,根据 “是否需要进行推理 (CoT)” 以及 “是否需要提供示例(Few-shot)” 可将输入输出划分成四种类型:

  • CoT(chain-of-thought) : ❎,few-shot: ❎ (图中左上)

    • 输入:指令 + 问题
    • 输出:答案
  • CoT(chain-of-thought) : ✅,few-shot: ❎ (图中右上)

    • 输入:指令 + CoT 引导(by reasoning step by step) + 问题
    • 输出:推理 + 答案
  • CoT(chain-of-thought): ❎,few-shot: ✅ (图中左下)

    • 输入:指令 + 示例问题 + 示例问题答案 + 指令 + 问题
    • 输出:答案
  • CoT(chain-of-thought): ✅,few-shot: ✅(图中右下)

    • 输入:指令 + CoT 引导 + 示例问题 + 示例问题推理 + 示例问题答案 + 指令 + CoT 引导 + 问题
    • 输出:推理 + 答案

    6. 提升小模型的推理能力:Fine-tune-CoT

    基于 CoT 方法的主要缺点是它需要依赖于拥有数百亿参数的巨大语言模型。由于计算要求和推理成本过于庞大,这些模型难以大规模部署。鉴于此,论文提出了一种名为 Fine-tune-CoT 的方法,该方法旨在利用非常大的语言模型的思维链推理能力来指导小模型解决复杂任务。

    用前面的 Zero-shot-Cot从非常大的教师模型中生成推理,并使用它们来微调较小的学生模型。

    Fine-tune-CoT 的核心思想是采用 Zero-Shot-CoT 生成我们的问答数据,然后使用温度 T 采样(也可以用 Top-k 采样),以此生成尽可能多的数据,然后再进行 Fine-tune。

image.png

7. CoT的局限性

首先思维链必须在模型规模足够大时才能涌现

其次思维链的应用领域是有限的。 目前,思维链只是在一些有限的领域,比如数学问题,五个常识推理基准(CommonsenseQA,StrategyQA,Date Understanding 和 Sports Understanding 以及 SayCan)上显现出作用,其他类型的任务,像是机器翻译,性能提升效果还有待评估。

参考

大模型思维链(Chain-of-Thought)技术原理