1. 文章简介
这篇文章是10月份Google提出的又一篇关于LLM的prompt tuning的文章。
在之前的prompt tuning的文章当中,主流的思路还是CoT + few shot。主要就是将任务进行拆分,然后分步进行实现。
而这里,作者反其道而之,先step back从更宏观的角度来看问题,让LLM对其有一个整体的把握,然后再回到detail上面让模型回答具体的问题。
通过这种方式,文中宣称在一些复杂任务上获得了超过CoT的更好的效果。
2. 方法介绍
关于文中方法的具体实现,其实和之前提到的也差不多,就是一个两步的prompt策略:
- 抽象阶段
- 根据给定的具体问题要求模型从中回答一个更一般的问题;
- 推理阶段
- 借助1中抽象出的一般结论,让模型重新来回答原始的具体问题。
具体可以参考文中给出的下图:
3. 实验整理
下面,我们来看一下文中的具体实验效果。
文中主要是在下述三个数据集当中进行的实验考察:
- STEM
- Knowledge QA
- Multi-Hop Reasoning
而关于文中使用的LLM,则是以PaLM-2L作为主要模型,与GPT4以及相同模型下的不同prompt策略进行考察。
下面,我们来看看各个具体任务当中的效果表现。
1. STEM
STEM任务主要是考察了一些高中物理和化学的问答。
关于这部分的prompt template如下所示:
可以看到,主要就是先让LLM从问题当中抽象出问题涉及的第一性原理,然后来回答对应的问题。
实验得到的效果如下:
可以看到:
- 整体上Step Back的效果是优于其他类型的prompt tuning策略的,且效果甚至超过了GPT4上的效果。
文中还做了一些消解实验,考察了以下few shot对Step Back策略的影响,得到结果如下:
可以看到:
- 整体来说,Step Back策略对于few shot是兼容的,Step Back在few shot下呈现出持续的稳定性。
最后,文中还对STEM数据集上的错误进行了case分析,得到结果如下:
可以看到:
- Step Back的错误主要来自于Math Error以及Reasoning Error。
2. Knowledge QA
Knowledge QA任务主要是指TimeQA和SituatedQA,主要就是根据一段给定的文本来回答一些关于时间和地点的具体问题。
同样的,我们先给出文中对于这一任务下的prompt如下:
首先,用few shot的方式让LLM自己来生成对应问题的step back的问题。然后再用下图的prompt请求两次分别来获得step back抽取文本和最终的回答。
文中得到的实验结果如下:
可以看到:
- Step Back的效果同样优于其他的prompt tuning策略,且优于GPT4的效果。
文中同样对这个任务进行了消解实验,得到结果如下:
可以看到:
- Step Back策略在few shot上面表现出了鲁棒性;
- Step Back的错误同样主要来源于Reasoning与RAG生成的Step Back问题生成上面。
3. Multi-Hop Reasoning
Multi-Hop Reasoning主要是指MuSiQue任务和StrategyQA任务,主要会回答一些需要分析和推理的问题。
Multi-Hop Reasoning的prompt构造方式和上述Knowledge QA的prompt是完全一致的,文中给出了一下这一任务下的Step Back的question示例如下:
在这一任务上,文中得到的实验效果如下:
可以看到:
- 与前述Knowledge QA的结果一致,Step Back的效果优于其他prompt tuning的结果,且优于GPT4的效果。
4. 结论 & 思考
结论而言,这篇文章感觉更多的还是给出了另一个角度的prompt tuning思路,和我们平时干活做题差不多,有时候,先退一步从更高的角度去思考问题的本质,然后再回来考察具体的问题细节可以获得更好的效果。
不过,考虑到prompt tuning工作本身的不稳定性,这篇文章的结论可能也不见得那么通用,事实上文中自身也建议的是仅在复杂任务当中这一策略suppose能够提供较大的效果提升,而对于一般的简单任务,上述方法不见得一定能带来效果增益。
但是,无论如何,终究还是给出了一个prompt优化的新思路,考虑到当前工作越来越需要和prompt本身打交道,因此丰富prompt调优的思路本身就已经足够有价值了,希望后续的工作中这个思路真的能够help吧。