前一章思想链根底和进阶玩法咱们介绍了如何写Chain-of-thought Prompt来激活生成逐步推理,并进步模型解决复杂问题的能力,这一章咱们追根究底,评论下COT的哪些元素是提高模型体现的中心?
要进行因果剖析,需要把思想链中的不同元素拆解开来,然后通过控制变量试验,来研讨不同元素对COT作用的影响。以下两篇论文的中心差异就在于: COT的变量拆解,以及控制变量的试验办法。
结合两篇论文的试验结论,或许导致思想链比惯例推理拥有更高准确率的要素有
- 思想链的推理进程会重复问题中的中心实体,例如数字,人物,数字等
- 思想链正确逻辑推理次序的引进
友情提示:以下论文的试验依靠反现实因果揣度,这种因果剖析办法自身或许存在有偏性从而得到一些过错结论,读论文有危险,迷信论文需谨慎哈哈~
TEXT AND PATTERNS: FOR EFFECTIVE CHAIN OF THOUGHT IT TAKES TWO TO TANGO
- 测验模型:PaLM-62B,GPT3,CODEX
google这篇论文比较早,按个人阅读舒适度更推荐第二篇论文哟~
COT元素
论文把影响元素拆分成了Text,Symbol和Pattern三个部分, 如下
论文给出了symbol和pattern的界说,剩下的token满是Text
- symbol:是数据集的中心主体,数学问题便是数字,SPORT数据集便是运动员和运动项目, DATE数据集便是时刻,这儿的symbol类似实体的概念
- pattern: 能够是symbol的组合,连接符(公式)或许协助模型了解使命的表述结构。这儿答应pattern和symbol重合,也便是整个公式是pattern,但公式中的数字同样是symbol。但在非数学问题上我个人觉得pattern的界说有点迷幻…
试验
论文针对以上3个元素分别进行了试验,通过改动COT few-shot prompt中特定元素的取值,来剖析该元素对COT作用的贡献
观念1.Symbol的形式和取值自身对COT影响不大
这儿论文用了两种控制变量的办法:symbol随机采样和特殊符号替换
- 特殊符号替换(symb_abs)
abstract symbol便是用特殊符号来替换symbol,这儿作者一同替换了question,prompt和answer里边的symbol如下
- 随机替换(symb_ood)
OOD类似随机替换,不过论文的替换办法有些迷幻。关于GSM8k数学问题,作者用一一对应的数学数字替换了文字数字;关于体育常识问题的替换比较惯例作者用随机的人名和赛事进行替换;关于时刻常识问题作者用未来时刻替换了当时时刻?? 留意这儿的替换作者确保了推理逻辑的一致性,包含同一数字用同一symbol替换,替换实体也契合推理逻辑,以及对问题中的答案也进行了替换。所以这儿纯纯只能论证symbol自身的取值和类型(例如数字1和一)是否对COT有影响
这种替换办法下的试验结果如下,除了体育问题中的随机实体替换,其他symbol的替换对COT的作用影响都十分有限。这让我想到了一篇关于NER模型的泛化性首要来自模型学会了不同类型的实体会呈现在哪些上下文中,而不仅是对实体自身的形式进行了记忆。他们的试验办法和作者替换symbol的操作其实很类似,这种替换并不大幅影响下文对上文的Attention。
观念2. pattern是COT生效的必要不充分条件
关于Pattern作者更换了试验办法,控制变量采用了只保存pattern,和只除掉pattern这两种试验类型。
以数学问题为例,只保存pattern便是推理进程只保存数学公式,只除掉pattern便是整个推理进程只把公式除掉。其他问题类型,考虑在前面的pattern界说阶段个人就感觉有些迷幻,… 所以咱们直接跳到试验结论吧
- 只要pattern的COT作用很差,和直接推理差不多,说明只要patten肯定是不够的,这和上一篇博客说到COT小王子尝试过的只要数学公式的COT作用欠好的结论是一致的。
- 除掉pattern的COT作用受到影响,因而pattern对COT有明显影响,但很显然还有其他要素
观念3. 推理呈现问题中的要害实体且和问题坚持格局一致很重要
最终针对Text部分,作者采用了实体替换和语法替换
-
实体替换(text_diff_entities):把推理中的实体随机替换成和问题中不一样的实体,包含数学问题中的数字,常识问题中的时刻,地点和使命。个人感觉这应该是symbol的试验??
-
语法替换(text_yoda_thought): 把惯例的英文表达改成了Yoda的说法风格。Yoda是依照名词-形容词-动词次序来说话的。例如惯例是This is my home,Yoda会说My home this is。只对thought进行语法替换,question坚持正常的英文表达。
作用上,随机实体替换对所有使命的COT作用影响十分大, 所以在推理阶段运用Question中的中心实体很重要。其次推理和question在语法上的不一致会影响COT在部分使命上的体现。
Towards Understanding Chain-of-Thought Prompting: An Empirical Study of What Matters
- 测验模型:text-davinci-002, text-davinci-003
整体上第二篇论文的思路更简略明晰,在拆解元素的一同还界说了联系。
COT元素
论文首先界说了思想链中的两种中心元素
- Bridge Object: 模型解决问题所需的中心和有必要元素。例如数学问题中的数字和公式,QA问题中的实体,有点类似把论文1中pattern和symbol和在了一同,感觉界说更明晰了
- Language Template:除去Bridge Object剩下的部分基本都是Language Template
其次界说了思想链的两种中心联系
- 一致性(Coherence): 推理步骤之间的逻辑次序, 先说什么后说什么
- 相关性(Relevance): Question中中心元素是否在推理中呈现
试验
论文的融化试验通过人工修正few-shot COT中的few-shot样本,来验证思想链中不同元素的贡献,这儿咱们以一个数学问题问题为例,看下试验的两个阶段
观念1. 完全正确的COT并非必要
第一步作者证明了完全正确的In-Context样本并不是有必要的,用的什么办法嘞?
如下图所示,作者手艺把正确的In-Context COT样本改写成过错的,改写办法是在保存部分推理次序,和部分bridge object的前提下,随机的把推理改成过错的推理逻辑。作者发现魔改后过错的few-shot的样本,比照正确的few-shot-cot保存了80%+的水平,只要小幅的下降。
观念2.推理次序和中心元素的呈现更重要
已然完全正确的COT样本并非有必要,那究竟思想链的哪些元素对作用的影响最大呢?针对以上两种元素和两种联系,作者用了数据增强的办法来对few-shot样本进行修正,得到损坏某一种元素/联系后的few-shot样本
- 损坏相关性: 这儿运用了Random Substitution; 针对Bridge Obejct,便是固定文字模板,把数学问题中呈现的数字在COT里边(32/42/35)随机替换成其他数字,这儿为了坚持上下文一致性相同的数字会用相同的随机数字来替换; 针对template,就固定Bridge Object,从样本中随机采样其他的COT推理模板来进行替换。
- 损坏一致性: 这儿运用了Random Shuffle;针对Bridge Object,便是把COT中不同方位的Bridge Obejct随机打乱次序;针对Template,就固定Bridge Object,把文字模板的语句随机改动方位。
整体作用如下图
论文正文用的是text-davinci-002,附录里也弥补了text-davinci-003的作用,看起来003的结果单调性更好,二者结论是基本一致的,因而这儿咱们只看下003的融化试验作用,能够得到以下几个中心结论
- 比照COT推理的正确性,相关性和一致性愈加重要,尤其是相关性也便是在推理进程中复述question中的要害信息能够有效进步模型推理准确率。个人猜想是中心元素的复述能够协助模型更好了解指令辨认指令中的要害信息,并进步该信息对应的常识召回【这一点咱们在下游难度较高的多项挑选SFT中也做过验证,咱们在多项挑选的推理模板的最终加入了题干的复述,作用会有必定提高,进一步把选项的结果完形填空放到题干中,作用会有更进一步的提高】
- Language Template的一致性贡献度较高 也便是正确的逻辑推理次序有助于模型推理作用的提高。这一点更好了解首要和decoder需要依靠上文的解码办法相关。【还是多项挑选的指令微调,咱们比照了把选项答案放在推理的最前面和放在复述题干之前的作用,都明显差于先推理剖析,复述题干并填入选项答案,最终给出选项答案这个推理次序】
想看更全的大模型相关论文整理微调及预练习数据和框架AIGC使用,移步Github >>DecryptPropmt