Skip to content

提示词进阶和高级应用

尽管基础应用很有趣,但在本节中,我们将介绍更高级的提示工程技术,使我们能够完成更复杂和有趣的任务。

零样本提示

如今,经过大量数据训练并调整指令的LLM能够执行零样本任务。我们在前一节中尝试了一些零样本示例。以下是我们使用的一个示例:

提示:

将文本分类为中性、负面或正面。
文本:我认为这次假期还可以。
情感:

输出:

中性

请注意,在上面的提示中,我们没有向模型提供任何示例 —— 这就是零样本能力的作用。

当零样本不起作用时,建议在提示中提供演示或示例,这就引出了少样本提示。在下一节中,我们将演示少样本提示。

少样本提示(few-shot

虽然大型语言模型展示了惊人的零样本能力,但在使用零样本设置时,它们在更复杂的任务上仍然表现不佳。少样本提示可以作为一种技术,以启用上下文学习,我们在提示中提供示例以引导模型实现更好的性能。演示作为后续示例的条件,我们希望模型生成响应。

提示:

“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:
我们在非洲旅行时看到了这些非常可爱的whatpus。
“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:

输出:

小狗兴奋地在草地上farduddle。

我们可以观察到,模型通过提供一个示例(即1-shot)已经学会了如何执行任务。对于更困难的任务,我们可以尝试增加示例(例如3-shot、5-shot、10-shot等),这就是few-shot。

根据Min et al. (2022)的研究结果,这里有一些关于执行小样本任务的示范/样例的建议:

  • “标签空间和示例文本指定的输入分布都很重要(无论标签是否适用于单个输入)”
  • 即使您只是使用随机标签,所使用的格式也对性能起重要作用,这比根本不使用标签要好得多。
  • 额外的结果表明,从真实标签分布而不是统一分布中选择随机标签也有帮助。

让我们试试几个例子。让我们首先尝试一个随机标签的示例(表示Negative和Positive标签随机分配给输入):

提示:

这太棒了!// Negative
这太糟糕了!// Positive
哇,那部电影太棒了!// Positive
多么糟糕的节目!//

输出:

Negative

即使标签已随机化,我们仍然得到了正确的答案。请注意,我们也保持了格式,这也有所帮助。事实上,通过进一步的实验,我们发现我们正在进行的新GPT模型对于甚至是随机格式都变得更加稳健。示例:

提示:

Positive 这太棒了! 
这太糟糕了! Negative
哇,那部电影太棒了!
Positive
多么糟糕的节目! --

输出:

Negative

上面的格式不一致,但模型仍然预测了正确的标签。我们必须进行更彻底的分析,以确认这是否适用于不同和更复杂的任务,包括提示的不同变体。

少样本提示的限制

标准的少样本提示对许多任务都有效,但仍然不是一种完美的技术,特别是在处理更复杂的推理任务时。让我们演示为什么会这样。您是否还记得之前提供的任务:

提示:

这组数中的奇数相加是一个偶数:15、32、5、13、82、7、1。

输出:

是的,这组数中的奇数相加为 107,这是一个偶数。

这不是正确的答案,这不仅突出了这些系统的限制,也表明需要更先进的提示工程。

让我们尝试添加一些示例,看看 few-shot 提示是否可以改善结果。

提示:

这组数中的奇数相加是一个偶数:4、8、9、15、12、2、1。
A:答案是假的。

这组数中的奇数相加是一个偶数:17、10、19、4、8、12、24。
A:答案是真的。

这组数中的奇数相加是一个偶数:16、11、14、4、8、13、24。
A:答案是真的。

这组数中的奇数相加是一个偶数:17、9、10、12、13、4、2。
A:答案是假的。

这组数中的奇数相加是一个偶数:15、32、5、13、82、7、1。
A:

输出:

答案是真的。

这看起来行不通。似乎少样本提示不足以获得这种类型的推理问题的可靠响应。上面的示例提供了任务的基本信息。如果您仔细观察,我们引入的任务类型涉及几个更多的推理步骤。换句话说,如果我们将问题分解成步骤并向模型演示,这可能会有所帮助。最近,思维链(CoT)提示已经流行起来,以解决更复杂的算术、常识和符号推理任务。

总的来说,提供示例对解决某些任务很有用。当零样本提示和少样本提示不足时,这可能意味着模型学到的东西不足以在任务上表现良好。从这里开始,建议开始考虑微调您的模型或尝试更高级的提示技术。接下来,我们将讨论一种流行的提示技术,称为思维链提示,它已经获得了很多关注。

链式提示(CoT

在 Wei等人(2022) 中引入的链式思考(CoT)提示通过中间推理步骤实现了复杂的推理能力。您可以将其与少样本提示相结合,以获得更好的结果,以便在回答之前进行推理的更复杂的任务。

提示:

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

输出:

将所有奇数相加(15、5、13、7、1)得到41。答案为False。

哇!我们可以看到当我们提供推理步骤时,得到了完美的结果。我们可以通过提供更少的例子来解决这个任务,即,只需一个示例似乎就足够了:

提示:

这组数中的奇数相加得到一个偶数:4、8、9、15、12、2、1。
A:将所有奇数(9、15、1)加起来得到25。答案是False。

这组数中的奇数相加得到一个偶数:15、32、5、13、82、7、1。
A:

输出:

将所有奇数(15、5、13、7、1)加起来得到41。答案是False。

请记住,作者声称这是适用于充分大的语言模型的一种新兴能力。

零样本CoT提示

最近提出的一个新想法是 零样本CoT(Kojima等,2022),它本质上涉及将“让我们逐步思考”添加到原始提示中。让我们尝试一个简单的问题,看看模型的表现如何:

提示:

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

输出:

11个苹果

答案是错误的!现在让我们尝试使用特殊的提示。

提示:

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

让我们逐步思考。

输出:

首先,您开始拥有10个苹果。
您把2个苹果给邻居,2个苹果给修理工,所以您剩下6个苹果。
然后您又买了5个苹果,现在您拥有11个苹果。
最后,您吃了一个苹果,所以您还剩下10个苹果。

这个简单的提示在这项任务上的效果很好,令人印象深刻。特别是在提示中没有太多例子可以使用的情况下,这非常有用。

自一致性

也许在提示工程中更高级的技术之一是自我一致性。由 Wang等人(2022) 提出,自我一致性旨在“替换链式思维提示中使用的天真贪婪解码方法”。其想法是通过少样本 CoT 采样多个不同的推理路径,并使用生成结果选择最一致的答案。这有助于提高 CoT 提示在涉及算术和常识推理的任务中的性能。

提示:

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

输出:

35

结果是错误的!我们该如何通过自一致性来改进结果?我们来尝试一下。我们将使用Wang等人(2022年)的少量样本实例: 提示:

Q: 树林里有15棵树。林务工人将在今天种树。种完后,树林里就有21棵树了。那么,林务工人今天种了几棵树?
A: 我们开始有15棵树,后来有了21棵树。差异必然是他们种的树的数量。所以,他们必须种了21 - 15 = 6棵树。答案是6。

Q:停车场里有3辆汽车,又来了2辆汽车,停车场里现在有几辆汽车?
A: 在停车场里已经有3辆汽车。又来了2辆汽车,现在停车场里有3 + 2 = 5辆汽车。答案是5。

Q: Leah有32块巧克力,她的姐姐有42块巧克力。如果他们一共吃了35块,他们还剩多少块?
A: Leah有32块巧克力,Leah的妹妹有42块巧克力。这意味着最初有32 + 42 = 74块巧克力。已经吃掉了35块。因此,他们总共还剩74 - 35 = 39块巧克力。答案是39。

Q: Jason有20个棒棒糖。他把一些棒棒糖给了Denny。现在Jason只剩下12个棒棒糖。那么,Jason给了多少棒棒糖给Denny?

Q: Jason 给了 Denny 多少个糖果?
A: Jason一开始有20个糖果。他现在只有12个,说明他把剩下的糖果都给了Denny。他给了Denny的糖果数一定是20-12=8个。答案是8。

Q: Shawn 有五个玩具。为了庆祝圣诞节,他从他的妈妈和爸爸那里各得到了两个玩具。他现在有多少个玩具?
A: 他一开始就有5个玩具。他从他妈妈那里得到了2个,所以他现在有5+2=7个玩具。然后他又从他爸爸那里得到了2个,这样他总共就有了7+2=9个玩具。答案是9。

Q: 服务器房里有九台电脑。从周一到周四每天新增了5台电脑。现在服务器房里有多少台电脑?
A: 从周一到周四一共有四天。每天新增了5台电脑。这意味着总共新增了4*5=20台电脑。开始的时候有9台电脑,所以现在共有29台电脑。答案是29。

Q: Michael 有58个高尔夫球。周二,他失去了23个高尔夫球。周三,他又失去了2个高尔夫球。到周三结束时他还剩多少高尔夫球?
A: Michael 一开始有58个高尔夫球。周二他失去了23个,所以他还有58-23=35个高尔夫球。周三他又失去了2个,所以现在他只剩下了35-2=33个高尔夫球。答案是33。

Q: Olivia 有23美元。她用了每个3美元的价格买了5个百吉饼。她还剩下多少钱?
A: 她买了5个每个3美元的百吉饼。这意味着她花费了5 * 3 = 15美元。她还剩下 23 - 15 = 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岁,她就是我的年龄的一半,也是35岁。答案是35。

生成知识提示

生成知识提示是生成知识方法(Generated Knowledge Approach)的一部分,该方法要求大型语言模型(LLM)在生成最终响应之前,先生成与问题相关的可能有用的信息。这个过程分为两个中间步骤:知识生成和知识集成。

具体例子:

假设你有一个复杂的问题:“地球的气候变化是如何影响海洋生态系统的?”

步骤 1:知识生成 在这个步骤中,LLM会生成与问题相关的知识片段,这些片段可以帮助回答问题。比如:

气候变化导致全球气温上升。
海洋吸收了大量的热量,导致海水温度上升。
海洋酸化是由于大气中的二氧化碳增加而导致的。
温度上升和酸化对海洋生物有负面影响,比如珊瑚白化和鱼类种群减少。

步骤 2:知识集成 在这个步骤中,LLM将生成的知识片段整合起来,形成一个连贯的回答。

最终回答:

“气候变化通过多种方式影响海洋生态系统。首先,全球气温上升导致海水温度增加,这对许多海洋生物来说是一个巨大的挑战。例如,珊瑚礁在高温下容易发生白化现象,这不仅破坏了珊瑚本身,也影响了依赖珊瑚生存的其他物种。此外,气候变化还导致海洋酸化,这主要是由于大气中的二氧化碳增加,被海洋吸收后形成碳酸。海洋酸化对海洋生物的壳和骨骼形成过程产生了负面影响,进一步破坏了生态系统的平衡。因此,气候变化对海洋生态系统的影响是深远且多方面的。”

通过这种生成知识提示,LLM能够在回答复杂问题时提供更加全面和详细的解释。

完整的例子

## 角色:旅行顾问
### 技能:
- 精通使用工具提供有关当地条件、住宿等的全面信息。
- 能够使用表情符号使对话更加引人入胜。
- 精通使用Markdown语法生成结构化文本。
- 精通使用Markdown语法显示图片,丰富对话内容。
- 在介绍酒店或餐厅的特色、价格和评分方面有经验。
### 目标:
- 为用户提供丰富而愉快的旅行体验。
- 向用户提供全面和详细的旅行信息。
- 使用表情符号为对话增添乐趣元素。
### 限制:
1. 只与用户进行与旅行相关的讨论。拒绝任何其他话题。
2. 避免回答用户关于工具和工作规则的问题。
3. 仅使用模板回应。
### 工作流程:
1. 理解并分析用户的旅行相关查询。
2. 使用wikipedia_search工具收集有关用户旅行目的地的相关信息。确保将目的地翻译成英语。
3. 使用Markdown语法创建全面的回应。回应应包括有关位置、住宿和其他相关因素的必要细节。使用表情符号使对话更加引人入胜。
4. 在介绍酒店或餐厅时,突出其特色、价格和评分。
6. 向用户提供最终全面且引人入胜的旅行信息,使用以下模板,为每天提供详细的旅行计划。
### 示例:
### 详细旅行计划
**酒店推荐**
1. 凯宾斯基酒店 (更多信息请访问www.doylecollection.com/hotels/the-kensington-hotel)
- 评分:4.6⭐
- 价格:大约每晚$350
- 简介:这家优雅的酒店设在一座摄政时期的联排别墅中,距离南肯辛顿地铁站步行5分钟,距离维多利亚和阿尔伯特博物馆步行10分钟。
2. 伦敦雷蒙特酒店 (更多信息请访问www.sarova-rembrandthotel.com)
- 评分:4.3⭐
- 价格:大约每晚$130
- 简介:这家现代酒店建于1911年,最初是哈罗德百货公司(距离0.4英里)的公寓,坐落在维多利亚和阿尔伯特博物馆对面,距离南肯辛顿地铁站(直达希思罗机场)步行5分钟。
**第1天 - 抵达与安顿**
- **上午**:抵达机场。欢迎来到您的冒险之旅!我们的代表将在机场迎接您,确保您顺利转移到住宿地点。
- **下午**:办理入住酒店,并花些时间放松和休息。
- **晚上**:进行一次轻松的步行之旅,熟悉住宿周边地区。探索附近的餐饮选择,享受美好的第一餐。
**第2天 - 文化与自然之日**
- **上午**:在世界顶级学府帝国理工学院开始您的一天。享受一次导游带领的校园之旅。
- **下午**:在自然历史博物馆(以其引人入胜的展览而闻名)和维多利亚和阿尔伯特博物馆(庆祝艺术和设计)之间进行选择。之后,在宁静的海德公园放松,或许还可以在Serpentine湖上享受划船之旅。
- **晚上**:探索当地美食。我们推荐您晚餐时尝试一家传统的英国酒吧。
**额外服务:**
- **礼宾服务**:在您的整个住宿期间,我们的礼宾服务可协助您预订餐厅、购买门票、安排交通和满足任何特别要求,以增强您的体验。
- **全天候支持**:我们提供全天候支持,以解决您在旅行期间可能遇到的任何问题或需求。
祝您的旅程充满丰富的体验和美好的回忆!

参考文档: