Press "Enter" to skip to content

Prompt 工程指南(四)—— 高级技术篇之思维链、自洽性与生成知识提示

这是 Prompt 提示工程系列的第四篇:


上篇教程中,学院君给大家演示了零样本和少样本提示,它们可以满足大部分日常普通场景需求,但是在涉及到数学、推理之类场景的时候显得捉襟见肘,所以我们需要探索更多提示技术。今天要介绍的就是处理这些场景需求的提示工程。

思维链提示

思维链提示(Chain-of-Thought,CoT)是一种用于提高大语言模型推理能力的技术,通过提示模型生成一系列推理步骤来解决多步骤的问题。研究表明,这种技术可以显著提高模型在数学、常识、推理等方面的准确性。该技术的应用使得模型能够将多步骤的问题分解成中间步骤,从而更好地理解和解决问题。

这是一种引入中间推理步骤以实现复杂推理能力的提示技术,由 魏等人在 2022 年提出。你可以将其与少样本提示相结合,以在需要推理的更复杂任务上获得更好的结果:

image-20230328141149149

示例:

这组数中奇数加起来的和是偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1),得到25。答案为不是。
这组数中奇数加起来的和是偶数:17、10、19、4、8、12、24。
A:将所有奇数相加(17、19),得到36。答案为是。
这组数中奇数加起来的和是偶数:16、11、14、4、8、13、24。
A:将所有奇数相加(11、13),得到24。答案为是。
这组数中奇数加起来的和是偶数:17、9、10、12、13、4、2。
A:将所有奇数相加(17、9、13),得到39。答案为不是。
这组数中奇数加起来的和是偶数:15、32、5、13、82、7、1。
A:

输出:

image-20230328142310658

哇!我们可以看到,当我们提供推理步骤时,结果是完美的。实际上,我们可以通过提供更少的示例样本来解决此任务 —— 只需一个示例即可。

示例:

这组数中奇数加起来的和是偶数:4、8、9、15、12、2、1。
A:将所有奇数相加(9、15、1),得到25。答案为不是。
这组数中奇数加起来的和是偶数:15、32、5、13、82、7、1。
A:

输出:

image-20230328142844930

思维链提示是足够大的语言模型出现的一种新型能力。

零样本思维链提示

上面展示的是少样本思维链提示,下面我们来看零样本思维链提示的效果:

image-20230328143258534

一种最近提出的新思路是零样本思维链提示(zero-shot CoT),它本质上是在原始提示中添加“逐步思考”提示。让我们尝试一个简单的问题,看看模型的表现如何:

提示:

我去市场买了10个苹果。我给了2个苹果给邻居,2个给了修理工。然后我又去买了5个苹果并吃了1个。我还剩下多少苹果?

输出:

image-20230328143508214

答案是不正确的!现在,我们尝试使用零样本思维链提示。

提示:

我去市场买了10个苹果,我给了2个苹果给邻居,2个给了修理工。然后我又去买了5个苹果并吃了1个。我还剩下多少苹果?
让我们逐步思考。

输出:

image-20230328143632340

这个引入思维链的零样本提示很有效。在你没有太多提示例子可用时,这种提示技术尤其有用。

自洽性

当前 Prompt 提示工程领域中较为先进的技术还有自洽性(Self-Consistency)。王等人 2022 年提出了自洽性,目标是“用思维链提示中的自洽解码替代简单的贪婪解码”,自洽性提高了大语言模型的思维链推理能力。其想法是通过少样本思维链(CoT)提示采样多个、多样化的推理路径,并使用生成的结果来选择最一致的答案。这有助于提高思维链提示在涉及数学和常识推理任务上的准确性。

最近的研究表明,自洽性在语言模型的思维链推理中具有显著的作用:思维链推理是指在给定的上下文中,根据先前生成的句子,生成下一个句子的能力。自洽性是一种新的解码策略,可以替代以往的贪心解码算法。自洽性解码策略考虑了模型生成的每个可能的候选句子,并选择与先前生成的句子最相似的句子作为下一个句子,从而提高了模型的推理准确性。

让我们尝试以下数学推理示例。

先给一个零样本提示:

当我6岁的时候,我的妹妹年龄是我的一半。现在我70岁了,我妹妹多大?

输出:

image-20230328181319672

输出是错误的!我们如何通过自洽性来改进呢?让我们试试。我们将使用王等人 2022 年的少样本示例。

提示:

Q:树林里有15棵树。今天园丁们要在树林里种树。他们种完后,这里会有21棵树。园丁们今天种了多少棵树?
A:一开始有15棵树,后来有了21棵树。差值一定是他们种下的树的数量。所以,他们必须种了21-15=6棵树。答案是6。
Q:如果停车场里有3辆汽车,又来了2辆汽车,停车场里现在有多少辆汽车?
A:停车场里已经有3辆汽车,又来了2辆。现在有3+2=5辆汽车。答案是5。
Q:莉娅有32块巧克力,她的妹妹有42块。如果她们吃了35块,她们还剩下多少块巧克力?
A:莉娅有32块巧克力,她姐姐有42块,这意味着原本有32+42=74块巧克力。已经吃了35块,所以她们总共还剩下74 - 35 = 39块巧克力。答案是39。
Q:詹森有20个棒棒糖,他给了丹尼一些棒棒糖,现在詹森只剩下12个棒棒糖了。詹森给了丹尼多少个棒棒糖?
A:詹森原本有20个棒棒糖,因为他现在只有12个,所以他一定把剩下的给了丹尼。他给丹尼的棒棒糖数量一定是20 - 12 = 8个棒棒糖。答案是8。
Q:肖恩有5个玩具。在圣诞节,他从妈妈和爸爸那里分别得到了2个玩具。现在他一共有多少个玩具?
A:他原本有5个玩具。从妈妈那里得到2个,之后他有5 + 2 = 7个玩具。然后他又从爸爸那里得到了2个,所以总共他有7 + 2 = 9个玩具。答案是9。
Q:服务器房间里有9台电脑。星期一到星期四,每天都会增加5台电脑。现在服务器房里共有多少台电脑?
A:从星期一到星期四共有4天,每天都增加了5台电脑。这意味着总共增加了4 * 5 = 20台电脑。一开始有9台电脑,所以现在有9 + 20 = 29台电脑。答案是29。
Q:迈克原本有58个高尔夫球。星期二,他丢了23个高尔夫球。星期三,他又丢了2个。星期三结束时他还剩下多少个高尔夫球?
A:迈克一开始有58个球。星期二他丢了23个,所以之后他还有58 - 23 = 35个球。星期三他又丢了2个,所以现在他还有35 - 2 = 33个球。答案是33。
Q: 奥利维有23美元。她以每个3美元的价格买了5个贝果。她还剩下多少钱?
A: 她以每个3美元的价格买了5个贝果。这意味着她花了3*5=15美元,还剩下23-15=8美元。答案是8。
Q:当我6岁时,我的妹妹只有我的一半年龄。现在我70岁了,我的妹妹多大了?
A:

输出1:

当我6岁时,我的妹妹只有我的一半年龄,所以她是3岁。现在我70岁了,所以她是70 - 3 = 67岁。答案是67。

输出2:

当叙述者6岁时,他的妹妹只有他一半的年龄,也就是3岁。现在叙述者70岁了,他的妹妹会是70 - 3 = 67岁。答案是67。

输出3:

当我6岁时,我的妹妹只有我的一半年龄,所以她是3岁。现在我70岁了,所以她是70 / 2 = 35岁。答案是35。

计算最终答案需要进行一些步骤(详细内容请查看论文),但为了简便起见,我们可以看到已经有一个占多数的答案出现(输出1和输出2),所以这基本上这就是最终答案:

image-20230328185911757

生成知识提示

大语言模型(LLMs)在持续优化,还有一种流行的技术是将知识或信息纳入模型,以帮助模型进行更准确的预测,这正是刘等人在 2022 年的论文中尝试的内容 —— 生成知识,作为提示的一部分。

生成知识提示是一种利用语言模型自动生成知识并整合到常识推理中的方法,这种方法利用了大语言模型的优势,将其作为改进常识推理的、灵活的外部知识来源。通过使用通用的提示格式直接从语言模型中生成知识陈述,然后选择与给定任务相关的知识,可以提高常识推理的准确性。这种方法在语言生成、自然语言推理和问答系统等领域具有广泛的应用前景。

Knowledge Generation

我们尝试一个简单的提示来看看对于常识推理等任务,这种方法有多大帮助。

还是先给一个零样本提示:

打高尔夫的一部分规则是试图获得比别人更高的总分。是或否? 

输出:

image-20230328192214831

这种类型的错误揭示了大语言模型在执行需要更多关于世界知识的任务时的局限性。我们如何用知识生成来改进呢?

首先,我们生成一些“知识”:

提示:

输入:希腊比墨西哥大。 
知识:希腊的面积约为131,957平方公里,而墨西哥的面积约为1,964,375平方公里,因此墨西哥比希腊大约139%。
输入:眼镜总是起雾。
知识:当您的汗水、呼吸和周围湿度中的水蒸气落在冷表面上时,就会在眼镜镜片上产生冷凝。水蒸气在冷表面冷却后变成了液滴,形成了一层薄膜,你看到的就是雾。相对于你的呼吸,你的镜片会相对较冷,尤其是当外部空气很冷时。
输入:一条鱼能够思考。
知识:鱼比它们看起来更聪明。在许多方面,如记忆力,它们的认知能力与“更高”等级的脊椎动物(包括非人类灵长类动物)相当或超过。鱼的长期记忆帮助它们跟踪复杂的社会关系。
输入:吸烟者在一生中大量吸烟的常见后果是患肺癌的几率高于正常人。
知识:那些一生中每天平均吸烟量不到一支的人死于肺癌的风险比从未吸烟者高出9倍。在每天吸烟1至10支的人群中,死于肺癌的风险比从未吸烟者高出近12倍。
输入:石头和卵石的大小相同。
知识:卵石是一种具有4至64毫米粒径的岩石碎片,基于Udden-Wentworth沉积学尺度进行分类。通常认为卵石比颗粒(直径为2至4毫米)大,而比砾石(直径为64至256毫米)小。
输入:高尔夫的一部分规则是试图获得比别人更高的总分。
知识:

知识1:

高尔夫的目标是用最少的击球次数完成一组洞。高尔夫比赛通常包括18个洞,在标准高尔夫球场的一轮比赛中,每个洞只打一次。每击一球算作一个点,总的击球数用于确定比赛的获胜者。

知识2:

高尔夫是一项精确的击球运动,比赛中的选手(或高尔夫球手)使用多种类型的球杆将球击入球场上一系列的球洞,目标是用尽可能少的击球次数完成比赛。比赛的目标是以最低的得分完成比赛,得分是通过将每个球洞上的总击球次数相加计算得出的。得分最低的选手获胜。

以上是刘等人 2022 年的论文中提供的提示。

下一步我们来整合知识并得出预测,我将问题重新格式化为问答格式以指导答案的最终格式:

提示:

问题:高尔夫的一部分是试图比别人得到更高的总分。是或否? 
知识:高尔夫的目标是在尽可能少的击球次数内完成一定数量的球洞。一轮高尔夫比赛通常包括18个球洞。在标准高尔夫球场上的每个球洞在一轮比赛中都会被打一次。每次击球算作一个分数,总击球次数决定了比赛的胜者。
解释和回答:

借助知识生成,回答的信心非常高:

image-20230330004602641

而如果没有借助知识生成:

问题:高尔夫的一部分是试图比别人得到更高的总分。是或否? 
知识:高尔夫是一项精确的击球运动,比赛中的选手(或高尔夫球手)使用多种类型的球杆将球击入球场上一系列的球洞,目标是用尽可能少的击球次数完成比赛。比赛的目标是以最低的得分完成比赛,得分是通过将每个球洞上的总击球次数相加计算得出的。得分最低的选手获胜。
解释和回答:

得到的回答信心较低:

image-20230330004658925

在这个例子中,有一些非常有趣的事情发生了。在第一个答案中,模型非常有信心,但在第二个答案中信心就没有那么高了。为了演示目的,我简化了这个过程,但在得出最终答案时还需要考虑一些更多的细节,这些细节可以查看论文获取。


最后,欢迎大家加入免费的 AI&ChatGPT 研习社与大家一起讨论 AI&ChatGPT 的最新动态,免费领取最新 AI 相关的学习资源:

img

你还可以微信扫码关注我的微信公众号获取极客书房最新动态:

img
发表回复