7 种下一代提示工程技术

7 Next-Generation Prompt Engineering Techniques

7 种下一代提示工程技术
作者 | Ideogram 提供图片

随着 ChatGPT 和 Gemini 等大型语言模型 (LLM) 产品风靡全球,我们需要调整我们的技能以跟上潮流。在当今时代,我们需要的技能之一就是提示工程。

提示工程是设计有效提示以优化 LLM 性能和输出的策略。通过构建输入,提示工程旨在提供相关且高质量的结果。

有许多标准的提示工程技术,例如零样本、少样本和思维链,但本文将探讨您可能以前听说过的各种高级技术。

话不多说,让我们开始吧。
 

1. 元提示 (Meta Prompting)

元提示是一种提示工程技术,它依赖于某些 LLM 来生成和完善其他 LLM(包括自身)的提示。这是一种我们开发高级提示的方法,而提示完善 LLM 将为我们生成更具体、更有效的输入。

该技术通过将提示本身视为输出。元提示的主要方面在于,它允许 LLM 生成提示、解释提示,并根据反馈调整提示输出。这是一项出色的技术,能够让 LLM 自我反思。

元提示技术具有以下优点:自动化有效提示的生产、轻松适应需要处理复杂任务的提示场景,以及提高 LLM 输出的质量。

元提示也带来了一些挑战。虽然它是指导结构化响应的好技术,但它需要依赖 LLM 的内在知识库来生成提示。对于 LLM 了解甚少的特定任务,其性能可能不佳。

下面详细展示了元提示的示例。这是初始提示:

生成一个详细的提示,帮助语言模型撰写一篇有说服力的文章。生成的提示应包括有关结构、语气和文章应涵盖的基本要素的说明。

生成的元提示如下所示:

撰写一篇有说服力的文章,论证为什么可再生能源应该取代化石燃料成为主要的能源来源。文章结构如下:
引言:以一个引人入胜的开头开始,并提供清晰的论点陈述。
正文段落 1:讨论环境效益,使用证据和例子。
正文段落 2:讨论经济优势,例如就业创造和成本节约。
正文段落 3:反驳潜在的反对意见,例如可行性或成本问题,并进行逻辑反驳。
结论:总结要点,并以强有力的行动呼吁结束。通篇使用自信且有说服力的语气。

借助经过训练以生成更好提示的 LLM 的力量,元提示无疑可以帮助您改进 LLM 的输出。

2. 由少到多提示 (Least-to-Most Prompting)

由少到多提示 (LtM) 是一种有前途的工程技术,它通过帮助 LLM 将复杂问题分解成更小的子问题来提高其处理复杂问题的能力。该方法允许 LLM 生成更准确、更全面的输出,因为提示旨在顺序解决问题。其提示将引导模型逐步得出实际答案。

如果您已经有解决方案,并希望模型遵循这些步骤,那么 LtM 是一个很好的方法。它还能很好地指导模型,使其不会偏离解决您想解决的问题所必需的解释,这对于来自特定领域的复杂问题尤其理想。

这项技术的问题在于,您需要了解您想解决的问题,并在提示中正确提供。您还需要正确地分解问题,因为如果一开始的步骤就错了,错误就会累积。

下面展示了 LtM 提示的示例:

问题:句子“The quick brown fox jumps over the lazy dog”中有多少个唯一的单词?让我们分解这个问题:
1. 识别句子中的所有单词。
2. 确定哪些单词是唯一的。
3. 计算唯一单词的数量。

结果将是模型遵循上述步骤并生成最终输出。

答案:8 个唯一的单词

如果您知道自己期望什么,并希望 LLM 高效处理工作,那么您可能想尝试使用这项技术。

3. 多任务提示 (Multi-Task Prompting)

多任务提示是一种提示工程技术,其中一个提示被设计为同时执行多个任务。该提示允许 LLM 在单次运行中处理互相关联的操作。

多任务提示的提示将设计成将所有任务集成到其中,并根据手头的不同任务有效地构建输出。清晰地定义提示并分隔每个任务是此技术成功的关键。

使用多任务提示的优势在于其输出的效率。提示将一起处理相关任务,从而保持上下文。它还将使 AI 能够更好地管理复杂场景,尤其是那些需要同时处理多项任务的场景。

多任务提示需要能够处理更高复杂度任务的 LLM,因为提示将包含多个任务。此外,您分配给提示的任务越多,输出准确性下降的可能性就越大。

下面展示了多任务提示示例:

分析以下客户评论的情感并总结其主要观点:《我最近购买了新款智能手机,虽然我很欣赏它时尚的设计,但电池续航能力令人失望,摄像头质量也很差。》

上述提示的输出如下:

情感分析
评论的情感是混合的,略偏负面。评论者承认了一个积极的方面(时尚的设计),但对两个关键功能(电池续航能力和摄像头质量)表示不满。

主要观点摘要
积极方面:智能手机的设计时尚且受到赞赏。

消极方面
电池续航能力令人失望。
摄像头质量不符合预期。

4. 角色提示 (Role Prompting)

角色提示是一种提示工程技术,我们要求 LLM 扮演特定的角色或人设。这意味着我们要求模型扮演某种角色,例如老师、机械师、科学家等,以指导模型的输出。

通过分配角色,我们可以期望模型在回答中具有特定的风格和重点。这将使模型能够保持其答案的相关性,并拥有角色所需的领域特定信息。

如果您需要答案具有更高的相关性,并且希望模型的输出符合特定领域,那么这项技术是一个不错的选择。但是,我们需要小心,因为模型可能会延续某些角色的刻板印象,并且只有当模型接受了能够很好地模仿该角色的多样化数据的训练时,该角色才会有效。

以下是角色提示的示例。

作为一名历史学家,请概述工业革命的原因和后果。

下面显示了输出的简短版本。

工业革命是历史上一个变革性的时期,始于 18 世纪末,主要在英国,然后扩散到世界其他地区。它标志着从农业和手工经济转向工业化和机械化生产体系。

输出可能比这长得多,但重要的是模型要扮演一个可以用来指导响应的角色。

5. 任务特定提示 (Task-Specific Prompting)

任务特定提示是一种提示工程技术,在与 LLM 交互时为特定类型的任务指定提示。提示设计将包含遵循任务要求的特定说明和上下文。

这项提示工程技术将导致提示设计对目标任务有深入的理解,同时还能利用 LLM 的创造力。如果您已经有想做的事情,并且不想让模型偏离它,那么这是一项很好的技术,只要您提供足够清晰的解释和输出格式。

这项技术对于获得模型精确的输出非常棒,如果我们已经有了特定的目标,那么它也很有效。但是,用户需要能够清晰地构建提示,以便模型能够根据任务表现出色。

示例提示将如下所示:

任务:代码调试
分析以下 Python 代码片段,并识别任何错误或低效之处。
您的分析应
1. 清楚地描述代码的预期功能。
2. 指出代码中的任何问题或错误,并解释原因。
3. 提出修复问题或优化代码的解决方案或改进。
4. 如果适用,提供代码的更正或改进版本。

代码
def calculate_average(numbers)
total = 0
for i in range(len(numbers))
total += numbers[i]
return total / len(numbers)
分析

结果将遵循上面提示中概述的任务。

6. 程序辅助语言模型 (PAL)

程序辅助语言模型,或称 PAL,是一种提示工程技术,它集成了一个外部编程环境来解决预期任务。这与标准的思维链提示不同,因为解决方案不是以自由文本形式呈现,而是以运行时环境(如 Python)的形式呈现。

此方法将允许 LLM 将输入转换为更结构化的程序大纲步骤,并依赖外部解释器来帮助解决问题。如果您需要编程能力来解决问题,这是一种非常出色的技术。

您只需要模型能够访问外部编程工具。您可以选择使用 ChatGPT 等产品,也可以自行开发。

下面展示了 PAL 的示例提示。

# Q: Sarah 的银行账户里有 150 美元。她又存了 200 美元,然后取了 50 美元。她现在有多少钱?
# Sarah 最初的银行账户余额是 150 美元。
initial_balance = 150

# 她存了 200 美元。
deposit = 200

# 她取了 50 美元。
withdrawal = 50

# 答案是她账户的最终余额。
answer = initial_balance + deposit – withdrawal
print(answer)

# Q: 一列火车在 3 小时内行驶了 120 英里。它的平均速度是多少英里/小时?
# 火车在 3 小时内行驶了 120 英里。
distance = 120
time = 3

# 平均速度是距离除以时间。
average_speed = distance / time
print(average_speed)

# Q: Alice 买了 12 包铅笔。每包有 8 支铅笔。她给了同学 35 支铅笔。她还剩下多少支铅笔?

输出将与此类似:
要计算 Alice 还剩下多少支铅笔,我们需要遵循以下步骤:
计算 Alice 购买的铅笔总数。
减去她送出的铅笔数量。

这是代码解决方案:

这是模型获得指导并以编程方式提供结构化输出的好方法。
 

7. 验证链 (Chain-of-Verification, CoVe) 提示

 
验证链 (CoVe) 是一种提示工程技术,通过系统地验证输出然后进行完善来提高 LLM 的准确性。这是一种专门用于解决任何幻觉问题的设计方法。

它通过以下四个不同的步骤工作:

1. LLM 根据输入生成初步答案。

例如

尼古拉·特斯拉的三个著名发明是特斯拉线圈、交流电 (AC) 系统和无线电。

2. 根据上述响应,模型生成具体问题来验证其答案的准确性。

模型为每个声明生成验证问题:

“特斯拉线圈是尼古拉·特斯拉发明的吗?”
“尼古拉·特斯拉发明了交流电系统吗?”
“尼古拉·特斯拉发明了无线电吗?”

3. 然后模型单独回答上述问题以验证模型。

“是的,特斯拉线圈由尼古拉·特斯拉于 1891 年发明。它是一种谐振变压器电路,用于产生高电压、低电流的电力。”
“尼古拉·特斯拉对交流电系统的发展和普及做出了重大贡献,但他并非独自发明。交流电系统是协作努力的结果。”
“尽管特斯拉对无线电技术做出了重大贡献,但无线电的发明主要归功于古列尔莫·马可尼。”

4. 然后模型整合上述验证答案以完善模型输出。

尼古拉·特斯拉的三个著名发明是特斯拉线圈、他对交流电系统的贡献以及无线电技术(尽管无线电的发明归功于古列尔莫·马可尼)。

使用上述技术,可以完全完善模型结果并进行验证,以提高模型的输出准确性。

结论

完善提示以改进 LLM 模型是提示工程技术的目的。通过这样做,我们可以提高模型的准确性并产生更相关的输出。在本文中,我们探讨了七种不同的下一代提示工程技术,您可以立即使用它们来帮助您的提示工程工作。

希望这对您有所帮助!

暂无评论。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。