思维链

本文主要介绍CoT相关的一些方法和技术

CoT

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

CoT
简单来说就是将原本的问题,经过多个中间步骤最终获取答案,实现更好的推理。

具体实现效果:常识推理能力赶超人类;数学逻辑推理能力大幅度提升;LLM可解释性更强。

  • Zero-shot-CoT

zsCoT

零样本思维链通过引入与样本无关指示,来实现自我增强

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

其实核心就是对生成的多个结果选择取多数的答案,这一个可以直接通过控制temprature和Top-K来实现,很显然这会使得时间会变长。

  • LtM(Least to Most prompting)

LtM

将问题按步骤拆分成多个子问题,解决完多个子问题后回答最终问题。具体训练就是分为多个CoT阶段实现。

  • Flan-PaLM/T5:CoT + Finetuning

Flan-T5:在超大规模的任务上对模型进行微调,使得单个模型在1800多个NLP任务上都能够有很好的表现。

微调方法就是在加入CoT数据。其核心是对多任务数据的统一。

实现流程:

  1. 收集带有标签的数据,将每个任务定义为<数据,任务类型>
  2. 对数据的形式进行改写,比如改写成CoT的形式;并对是否需要CoT和few-shot,进行组合构造
  3. 训练过程:恒定的学习率以及 Adafactor 优化器;同时将多个训练样本打包成一个训练样本,通过特殊结束token进行分割。

结论:

  1. 微调有效果,模型越大越好,任务越多越好
  2. 混杂CoT很重要
  • 提升小模型的推理能力:Fine-tune-CoT

旨在利用大模型思维链推理能力指导小模型解决复杂问题。

FuCoT

简单的说就是用ChatGPT这类大模型生成CoT数据,然后再喂给小模型进行微调。同时该方法需要生成尽可能多的数据。

CoT的局限性

  1. 思维链只有在模型规模足够大的时候才适用,如何实现小模型的思维链应用是值得探索的方向
  2. 应用领域有限,当前的实验结果只是在部分领域有所评估。另外,思维链只是提高模型的推理能力,但不代表模型真正理解内在的逻辑

References

  1. 【他山之石】大模型思维链(Chain-of-Thought)技术原理