3

Chain-of-Thought Prompting 简读

 1 year ago
source link: https://finisky.github.io/chain-of-thought-prompting-summary/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Chain-of-Thought Prompting 简读

语言模型越来越大,但更大的模型并没有显示出更强的计算和推理能力。去年Google提出了Chain-of-Thought (CoT) 的方案,通过chain-of-thought提示,让模型逐步推断,使大模型的推理能力显著提升。本文来看一下chain-of-thought的原理。

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

Language Models Perform Reasoning via Chain of Thought

chain-of-thought主要被前续工作的两个想法启发:

  1. 通过生成自然语言的中间推理过程,可以提升算术推理能力
  2. 大模型可以通过小样本提示示例学习

因此,chain-of-thought做的事情就是通过少量例子“提示”模型如何逐步完成推理任务,prompt的输入为三元组<input, chain of thought, output>,其中chain of thought是可得到最终结果的一系列自然语言中间步骤。示例如下:

Chain-of-Thought Prompting Demo

可见,通过向模型提供一些思维过程示例,模型也会试图像示例一样一步步进行推理并得到最终结果。作者们手动构建了一个示例集,共8个进行逐步推演计算的例子:

Math word examplars

然后对GMS8K这个数字问题数据集进行测试,发现chain-of-thought显著提升了大模型解决算术问题的能力:

Math word examplars

从上图可见一个有意思的现象:chain-of-thought对小模型无效甚至有负作用,而只对100B规模以上的模型有显著性能提升。

Chain-of-thought prompting does not positively impact performance for small models, and only yields performance gains when used with models of ~100B parameters.

此外,chain-of-thought对相对复杂的问题有更多的性能提升。对于更大的模型如 GPT-3 (175B) 和 PaLM (540B), 这种方式甚至达到了新的SOTA。

为验证chain-of-thought的普适性,作者们还做了常识推理和符号推理的实验,结果都证实了这种方式的有效性,不再赘述。下图展示了用于算术、常识推理和符号推理中使用的三元组示例:

Triple sample

为什么chain-of-thought有效?这是个很有趣的问题。虽然它模拟了人类思考的过程,但神经网络到底是不是真的会“推理”,作者们认为还是一个开放式问题。chain-of-thought的想法很简单也很符合直觉,笔者认为语言模型在达到一定规模和数据的训练后,出现所谓“涌现”现象并不意外,所谓量变引起质变,在大规模语言模型的情境下,很有可能出现弱智能的现象,比如拥有了简单的推理能力。

不过chain-of-thought还是有不少局限性,比如它只在100B以上的大模型中才有显著作用,考虑到成本和延迟问题,目前直接应用在业务中依然受限。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK