原标题:解锁大语言模型潜力:4种提示工程技术解析,带你玩转 AI

作者 | Numa Dhamani, Maggie Engler

译者 | 王强

策划 | Tina

要点

提示工程做的工作是尝试改变提示,以了解它们对大型语言模型 (LLM)生成的输出有哪些影响。提示工程可以通过一些基本技巧为 LLM 的输出带来更好的结果。 零样本(Zero-Shot)提示是指通过提示向 LLM 授予一项任务,而该模型之前未曾见过该任务的数据。 对于针对文本的语言任务,通过一些示例可以提高性能,这被称为少样本(Few-Shot)提示。 思维链(Chain-of-Thought)提示将多步骤问题分解为若干中间步骤,使 LLM 能够解决零样本或少样本提示无法解决的复杂推理任务。 基于 CoT 的自一致(Self-Consistency)提示是一种先进的提示技术,它为 LLM 提供多种推理路径,然后在生成的响应中选择最一致的答案。

最近,一种新的职位“提示工程师”在科技媒体上引起了轰动,并登上了顶级人工智能公司的职业需求页面,伴随着令人乍舌的高薪。但到底什么是提示工程呢?这个术语其实是在过去几年里才刚被创造出来的,指的是促使大型语言模型(LLM)取得更好结果的艺术和科学。

这些 LLM 包括了来自 OpenAI 的广泛流行的 ChatGPT 和 GPT4、来自 Anthropic 的 Claude 和来自谷歌的 Bard,它们可用于所有类型的语言任务,从起草电子邮件和文档到总结或分类文本都能适用。

本质上,提示是指向 LLM 提供输入的做法,输入通常是一组描述如何执行所需任务的指令。例如,要使用 ChatGPT 根据职位描述起草求职信,可以使用以下提示:

“您是一位申请以下职位的申请人。写一封求职信,解释为什么您非常适合该职位。”

看上去很容易,对吧?麻烦就在这里:研究人员发现 LLM 提供的结果在很大程度上取决于给出的具体提示,所以虽然解释清楚一项任务(例如写求职信)似乎是很简单的事情,但简单的调整(例如措辞和格式)变化会极大影响用户收到的模型输出。

提示工程从根本上来说是不断做实验改变提示内容,以了解提示的变化对模型生成内容的影响,因此这一学科不需要高等级的技术背景,只需一点好奇心和创造力即可。

此外,提示工程不仅仅是高薪程序员的职责。我们认为,每个使用 LLM 的用户都可以,而且应当成为一名提示工程师。最基本的原因是,提示工程将为 LLM 的输出带来更好的结果,就算我们只是使用了一些基本技术,也可以显著提高许多常见任务的性能。

少样本提示

我们考虑一个有人可能想要使用 LLM 来完成的任务:按内容中表达的情绪来分类客户评论。当 LLM 通过提示接受一项任务时,如果模型以前没有见过该任务的数据,这就被称为零样本提示。在这个案例中,该任务将是零样本分类任务。零样本提示可能如下图所示,其中用户向谷歌的 Bard 大模型发出对电影评论进行分类的说明。

这个任务的完成效果现在可能已经很好了,但在针对文本的各种语言任务中,我们几乎总能通过一些示例,或者说 少样本提示 来提高性能。在这个案例中,少样本提示方法一开始的做法可能是一样的,但会附加几个期望的输出示例。于是我们又看到了 Bard 对最后的未标记评论生成了“积极”响应。

更准确地说,这个提示是双样本的,指的是向模型提供了两个示例。事实上,以这种方式提供示例可以显著提高模型完成任务的能力,这是 LLM 独有的特性;因此,与其他机器学习模型不同, LLM 能够执行它们尚未训练过的各种任务。

然而,每种方法都有其自身的局限性。虽然少样本提示对于许多任务来说是一种有效的技术,但在解决更复杂的推理任务时,它往往会力不从心。让我们看一个例子。下图中,我们为 ChatGPT 提供了一个多步骤推理任务:给定组中的奇数加起来是否为偶数?

尽管我们使用了少量提示为这个 LLM 提供了多个示例,但它并没有给我们正确的答案。为了解决这个任务,我们需要首先确定什么是奇数。然后,我们需要将奇数相加;最后,我们需要确定结果是奇数还是偶数。这是一个多步骤推理任务,因此如果我们将问题分解为多个步骤并向模型展示出来,可能会有所帮助。

思维链提示

这就是思维链(CoT)提示 方法的用武之地。CoT 提示方法由谷歌研究人员提出,将多步骤问题分解为若干中间步骤,使 LLM 能够解决零样本或少样本提示无法解决的复杂推理任务。在这种情况下,我们不会直接要求 LLM 解决问题,而是使用 CoT 提示来指导模型完成各个中间推理任务。让我们回顾一下前面的例子。

提供了中间推理步骤后,ChatGPT 仅需一个示例即可得出正确答案。这种技术对于复杂的多步骤任务非常有帮助——如果目标任务涉及多个步骤或有序推理过程,CoT 可以帮助模型将问题分解为更小、更易于管理的若干任务。最近提出的一种理念是零样本 CoT,这里我们通过在原始提示中添加“让我们一步一步思考”的语句,要求 LLM 来思考各个中间推理任务。我们再用前面的例子来说明一下。

在没有任何示例的情况下,LLM 也能够通过简单的提示正确执行多步骤推理任务,而这是以前通过少样本提示方法无法做到的。CoT 提示法对于多步骤推理问题、受益于中间解释的任务或只用简单的标准提示技术不足以完成的任务来说是一种有用的技术。

自一致提示

自一致提示建立在 CoT 的基础上,是一种先进的提示技术,也是由谷歌研究人员引入的。这种方法旨在为 LLM 提供多种推理路径,然后在生成的响应中选择最一致的答案。与 CoT 结合使用时,自一致提示方法会更强大,并可提高复杂推理任务的性能。让我们看一下研究 论文 中的一个例子,它展示了自一致方法是如何工作的。首先,我们使用 CoT 提示来提示 LLM。然后,我们生成一组不同的响应,最后选择最一致的响应作为答案。通过利用一种多数投票系统,模型更有可能得出准确可靠的答案。

自一致方法的三个步骤:1)使用 CoT 提示提示语言模型,2)从语言模型中采样一组不同的推理路径,3)边缘化推理路径以聚合最终答案,并选择最一致的答案。

我们来看一下另一个分析电子邮件的示例。假设一家软件咨询公司每天收到数百封电子邮件,但通常大多数都是促销内容或垃圾邮件。他们希望将电子邮件分类为重要或不重要两类。

以下是该公司可能收到的电子邮件的一个示例:

您好!

我相信这封电子邮件会让您满意。我们目前在组织内面临着严峻的挑战,相信您的专业知识可以提供宝贵的见解。鉴于您在软件工程方面的成功记录,我们相信您团队的见解和建议可能有助于解决此问题。

我们能否在您方便的时候尽早安排一次会议来讨论细节并探讨我们如何合作应对这一挑战?

非常感谢您对此事的及时关注。

此致,

约翰·多伊

现在,我们可以将此电子邮件放入提示中,并要求 LLM“将上述电子邮件分类为重要或不重要,因为它与软件咨询公司相关。让我们一步一步思考。”然后,我们可以使用这个提示来生成多个响应,然后选择最一致的响应。

响应:电子邮件明确提到组织内部面临严峻挑战,这表明了此事的重要性。我会将这封电子邮件归类为“重要”。

响应:电子邮件提到组织内部面临严峻挑战,但他们没有描述问题或挑战。我会将这封电子邮件归类为“不重要”。

响应:虽然没有明确说明,但电子邮件的语气和要求立即关注的请求表明了一种紧迫感,强调了及时回应的重要性。我会将这封电子邮件归类为“重要”。

通过探索多种路径,LLM 很可能得出正确或很有意义的响应。此外,它可能有助于抵消模型或其训练数据中可能固有的偏差。虽然自一致提示方法在单独使用 CoT 方法没有效果时显示出了改善的结果,但对于需要探索或战略前瞻性的任务来说,它还是不够。

思维树提示

思维树(ToT) 方法由姚和 Long 等人提出,是一个超越 CoT 的激励框架,鼓励模型探索多种想法,将这些想法作为使用 LLM 解决更广泛问题的中间步骤。该技术要求 LLM 在每个级别考虑多个解决方案,并鼓励模型不断评估其结果,规范其决策过程,并增强其对所选解决方案的信心。换句话说,它通过生成中间步骤和潜在的解决方案来形成动态决策,然后对其进行评估以确定它们是否走在正确的道路上。

例如,如果任务是创建一个业务策略,LLM 将首先为该策略生成多个潜在的初始步骤,然后,当生成初始想法时,你可以让模型对每一个想法根据输入的提示来进行自我评价。在这里, LLM 将评估每个想法或步骤与待解决问题的目标的契合程度。该评估阶段可能会对每个想法进行排名,或者在适当的情况下打分。然后,被评估为不太有用或不太合适的想法可以被丢弃,并且你可以扩展剩余的想法。在这个框架中,你将继续类似的自我批评和排名过程,直到做出最终决定。这种技术允许 LLM 同时评估和追求多条路径。

以下是利用 ToT 框架的一个简化版本的分步过程:

第 1 阶段:头脑风暴 – 要求 LLM 在考虑各种因素的同时产生三个或更多选项。 第 2 阶段:评估 – 要求 LLM 通过评估其利弊来客观地评估每个选项的潜在成功几率。 第 3 阶段:扩展 – 要求 LLM 更深入地研究合适的想法,完善它们,并想象它们在现实世界中的影响。 第 4 阶段:决策 – 要求 LLM 根据生成的评估和场景对每个解决方案进行排名或评分。

对于需要涉及搜索类型的工作、填字游戏甚至创意写作的问题类型,ToT 框架的性能比 CoT 大大提高了。然而,它需要多次提示和多个迭代才能得出最终答案。最近,Hulbert 引入了零样本思维树提示,它将 ToT 框架的基本概念应用到了单个提示里。他的提示是:

“想象一下有三位专家正在回答这个问题。所有专家都会写下他们的想法的一个步骤,然后与小组分享。然后所有专家将继续下一步,依此类推。如果任何专家意识到他们错了,他们随时都会离开。这个问题是……”

下面我们看看 Hulbert 的原始示例以及 ChatGPT 的响应。

输入:想象一下有三位专家正在回答这个问题。所有专家都会写下他们的想法的一个步骤,然后与小组分享。然后所有专家将继续下一步,依此类推。如果任何专家意识到他们错了,他们随时都会离开。这个问题是……

鲍勃在客厅里。他端着杯子走向厨房。他将一个球放入杯子中,然后将杯子带到卧室。他把杯子倒过来,然后走到花园里。他把杯子放在花园里,然后走到车库。现在球在哪里?

响应

专家 1:球在客厅。

专家 2:球在厨房里。

专家 3:球在卧室里。

专家 1:鲍勃拿着杯子到卧室,所以球一定在杯子里。

专家 2:哦,我明白我的错误了。是的,球在杯子里。

专家 3:同意,球在卧室的杯子里。

专家 1:接下来,鲍勃在卧室里把杯子翻过来。

专家 2:之后,鲍勃走到花园,放下杯子。

专家 3:因此,当鲍勃在卧室里把球倒过来时,球一定是从杯子里掉出来的。所以,球在卧室里,不再在杯子里了。

专家 1:哦,你说得对。我犯了一个错误。球在卧室里,而不是在杯子里。

专家 2:同意,球在卧室里。

专家 3:鲍勃然后走到车库,所以球留在卧室里。它不在花园或车库里。

专家 1:当然,球还在卧室里。

专家 2:是的,球还没有离开卧室。

专家 3:因此,球在卧室里,而不是在花园或车库里。

三位专家都认为球在卧室里。

受到 Hulbert 原始提示的启发,以下是可供尝试的零样本思维树提示的其他变体:

“模拟三位才华横溢、逻辑性强的专家协作回答问题。每位专家都实时详细地解释他们的思维过程,考虑其他人之前的解释并公开承认错误。在每一步中,只要有可能,每位专家都会完善和发展自己的想法其他人的意见,承认他们的贡献。他们会继续下去,直到问题得到明确的答案。为了清楚起见,你的整个回答应该放在一个 markdown 表格中。问题是……” “想象一下三位高智商的专家协作回答一个问题。他们将遵循思维树的方法,每个专家一步一步地分享他们的思维过程。他们将考虑其他人的意见,完善他们的想法,并以小组的想法作为基础集体知识。如果专家意识到他们的想法不正确,他们会承认这一点并退出讨论。继续这个过程,直到得出明确的答案。在一个 markdown 表格中呈现整个答案。问题是……” “三位具有出色逻辑思维能力的专家正在用思维树的方法协作回答一个问题。每位专家都会详细分享他们的思维过程,考虑到其他人之前的想法并承认任何错误。他们会迭代地完善和扩展彼此的想法,给予应得的信任。这个过程一直持续到找到结论性答案为止。以 markdown 表格格式写下整个响应。问题是……” “设想由三名专家组成的小组齐心协力,通过采用思维树策略来解决问题。每位专家都会在每一步中彻底解释他们的思路,同时也会考虑同行提供的见解。他们会公开承认任何错误并将答案建立在小组的共同理解之上。这个迭代过程将持续下去,直到达成明确的解决方案。将整个响应构建为一个 markdown 表格。问题是……”

我们可以将这一总体策略应用于现实场景中可能遇到的任意数量的决策,作为一种手段来快速生成对某个问题的多种观点。通过提示继续假设的对话过程可能会也可能不会让专家之间达成共识,但可能会产生对决策中涉及的各种权衡的见解。

输入:想象一下三位专家正在争论如何设计一个文件共享系统。该系统应可扩展到数百万用户并处理 PB 级数据。每个专家都应该对系统的架构有不同的想法,并且他们应该讨论每种方法的优劣权衡。

响应

专家 1:提出一个去中心化的点对点架构

在我看来,去中心化的点对点(P2P)架构是正确的选择。用户直接相互共享文件,无需中央服务器来处理所有请求。这可以在整个网络上分配负载,使其更具可扩展性。然而,挑战在于管理安全性、确保数据完整性和处理动态网络条件。此外,实现访问控制和版本控制等复杂功能可能具有挑战性。

专家 2:建议一个基于云的分布式架构

我提倡基于云的分布式架构。利用云存储服务并将数据分布到不同地理区域的多个服务器上。这种方法可确保高可用性、可扩展性以及更轻松地管理 PB 级数据。云的基础设施可以处理繁重的工作,但可能会出现数据隐私、潜在成本以及对第三方服务的依赖方面的担忧。此外,必须仔细考虑数据分片和负载平衡,以确保最佳性能。

专家 3:主张混合架构

我提出了一种混合架构,结合了去中心化 P2P 和分布式基于云的系统的优势。使用 P2P 进行用户到用户的文件共享,以减轻集中式服务器的部分流量。同时,利用云存储实现冗余、备份并确保整个网络的数据可用性。这种混合模型旨在平衡去中心化的优势与云服务提供的可靠性和可扩展性。然而,管理这两个组件之间的同步会带来复杂性和维护一致性的潜在挑战。

总 结

在本文中,我们介绍了一些学术论文中提到的一些最新的提示工程技术。虽然这些技术已经得到了经验证明,但我们仍然不知道它们到底为什么会有效果。这意味着成为更好的提示工程师的最佳方法是践行提示工程——尝试各种提示,观察其结果,调整和迭代它们,优化并重复。

这项练习不仅对于专业的提示工程师来说是很有用的,对于任何想要将 LLM 集成到他们工作流程中的用户来说也是值得的。如果方法得当,提示可以用来改变模型输出的风格和格式,提高清晰度或准确性,并确保人工智能生成的响应的一致性。提示工程是一种被忽视但非常强大的工具,可以使用它来充分利用 LLM 这一技术变革。

作者介绍

Numa Dhamani 是一名工程师和研究员,专注于技术与社会的交叉领域。她是一位自然语言处理专家,拥有影响力运营、安全和隐私领域的专业知识。Numa 为财富 500 强公司和社交媒体平台以及初创企业和非营利组织开发机器学习系统。她为公司和组织提供咨询,担任美国国防部研究项目的首席研究员,并为多个国际同行评审期刊做出贡献。Numa 与人合著了《生成式人工智能简介》,由 Manning Publications 出版。

Maggie Engler 是一名工程师和研究员,目前在 Inflection AI 从事大型语言模型安全方面的工作。她专注于将数据科学和机器学习应用于对抗在线生态系统中的滥用行为,并且是网络安全和信任与安全领域的专家。Maggie 是一位资深教育家和传播者,曾在德克萨斯大学奥斯汀信息学院担任兼职讲师。Maggie 与人合著了《生成式人工智能简介》。

原文链接

Maximizing the Utility of Large Language Models (LLMs) through Prompting (https://www.infoq.com/articles/large-language-models-llms-prompting/)

24 小时随时随地高效沉浸式编程:我用 Vision Pro 做到了,老板高兴坏了

生成式 AI 最大飞跃!OpenAI 首个视频生成模型重磅发布,奥特曼被“跪求”:不要让我失业

科技巨头也曾跌落低谷!微软 17 年元老揭秘纳德拉如何带领微软走过“失落的十年”

首届大模型“相亲大会”开始啦!谁是你的天选 CP?返回搜狐,查看更多

责任编辑:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注