技术点滴 · 2024年5月10日 0

提示词结构能提高输出质量吗?使用 GPT-4、Claude 3 和 Gemini 1.5 测试零样本提示

您是否已经掌握了通过多次迭代、改进和批评第一个版本来从 ChatGPT 中获取高质量文本的方法?如果您需要反复解决类似的任务,而又没有时间阅读大量版本并对其进行批评,该怎么办?如果您想与尚未学会有效“指导”人工智能的同事分享您的提示,该怎么办?

让我们探索一下在上述情况下如何为大型语言模型 (LLM) 创建指令:

  • 如何编写不需要后续澄清的提示词。
  • 如何减少花在这上面时间。

我们进行了实验来比较零样本提示词的几个版本,以以下问题为例:会议记录分析和基于标准的评估

1. 学习提示

让我们来看看一个旨在分析会议记录的提示,根据特定标准提供评估,以及改进建议。此类任务可以极大地帮助经理、导师和其他经常在工作中开会的人。

具体来说,以下是用于分析日常会议(Daily Scrums)的提示的各种版本。此提示对 Scrum Master 特别有用。它为用户提供了评估会议质量的七个标准标准的列表,可以通过缩短或扩展列表进行调整。提示应给出标准的评级(按 10 分制)、每个评级的详细说明以及对 Scrum Master 的建议(仅适用于 9 分以下的评级)。

1.1. 简短提示

让我们首先尽可能简短地描述一下任务。

即使在这个简短的题目中,会议评估标准也描述得很详细,因为本文并没有研究它们。不同版本的题目有完全相同的标准,但在其他方面有所不同。

1.2. 非结构化详细提示

接下来,让我们提供更详细的说明,同时避免任何结构元素或文本格式。

1.3. 结构化详细提示

一般来讲,没有分隔符、列表或标题的长文本更难被模型理解。因此,在提示的版本 #3中,让我们添加列表和标题,而不改变版本 #2 的内容:

在这种情况下,使用 Markdown 格式:标题用井号 (#) 标记,列表项用破折号标记。但是,格式并不重要;无论具体格式如何,最先进的 LLM 都会提供类似的输出(甚至可能完全忽略格式,如下所述)。

1.4. 逐步说明

如果我们希望 AI 按顺序执行多个操作(尤其是当某些操作是有条件的),将任务分解为单个步骤是合乎逻辑的。以下是实现方法:

我们可以看到,通过逐步完善,提示的大小已大幅增加。输出是否符合这样的大小和复杂性仍是实验的问题。更大的提示可能会使模型感到困惑,而不是帮助它实现预期的结果。

2.实验描述

我们将比较上面显示的四个提示:

  1. 简短提示: 210 个 token。除了简短的角色分配(“您是一位经验丰富的 Scrum 主管”)之外,它没有采用任何提示工程技术。特别是,它没有指定输出中评级的格式。
  2. 非结构化详细提示: 406 个token。它包含与接下来两个版本相同的单词,但缺乏结构(没有标题或列表)。
  3. 结构详细提示: 461 个token。它包含由标题表示的部分,以及“规则”列表,但没有编号步骤。
  4. 逐步详细提示: 520 个 token。除了章节之外,它还提供明确的步骤。

每个提示都包含相同的符合质量标准列表,指定如何获得分数和撰写解释。它为每个提示的总大小添加了 560 个token。

2.1. 输入和参数

每个实验都会在三份会议记录(长度和质量各不相同)上测试提示。除了记录外,还包括以下输入数据:

  • 会议 1:使用所有标准进行评估。
  • 会议 2:使用标准 3-7 进行评估。
  • 会议 3:要求在评级说明中提及参与者的姓名。

在所有实验中,设置参数temperature=0.2用于限制LLM的“创造力”。然而,并非所有模型都能很好地响应提示中设置的 temperature 值。

2.2. 输出质量指标

下一节将根据“缺陷数量”展示实验结果。通常,当模型在某些方面(对用户可能很重要)没有遵循提示或文本缺少某些细节时,就会出现缺陷。缺陷的示例包括:“解释不包含参与者姓名”、“模型为高评分提供建议”(或者相反,不为低评分提供建议)、“建议缺乏具体行动”、“最后没有建议提供另一份成绩单”。

值得注意的是,LLM 本质上是概率性的:即使 temperature 值为 0,它们在相同上下文的连续运行中也可能产生略有不同的输出。在同一模型上使用相同数据对同一提示版本进行两次运行,其输出有时可能会相差 2 倍甚至更多(使用上面提到的指标)。这种影响在下面得到部分缓解,因为每个模型都分析了三个转录本。

3. 实验结果:即时比较

针对五种模型进行了实验:

  • Google AI Studio 应用程序中的Gemini 1.5 Pro 。
  • ChatGPT 应用程序中的GPT-3.5。这个旧模型的结果让我们了解到过去一年里 LLM 的进步有多大。
  • ChatGPT 应用程序中的GPT-4,具体是通过自定义 GPT(说明在系统提示中提供,而不是第一个聊天消息中提供)。
  • claude.ai 应用程序中的Claude 3 Sonnet 。
  • Claude 3 Opus无需应用程序,直接通过 API,具体是通过 console.anthropic.com(提示以系统提示的形式给出,并明确设置 temperature 值)。

为什么我要提到用于访问 LLM 的应用程序?本文面向的是 AI 应用程序的用户,而不是开发人员。应用程序可以影响传递给 LLM 的上下文。然而,在实践中,这只会在上下文大小接近模型的最大限制时影响输出,从而导致应用程序修剪上下文(例如通过总结部分上下文)。在我的实验中,聊天的总上下文大小约为 8,500 个标记,这比这些模型中任何一个的最大上下文窗口都要小得多。

因此,结果如下:

不同提示的结果摘要。数字越高,输出质量越差。

最值得注意的发现是最短提示 #1 的出色表现。除 GPT-3.5 外,其他模型对于此提示平均仅产生 4.8 个缺陷,与详细提示 #2 相同。

值得注意的是,所有模型中结构化和非结构化长提示之间没有显著差异。换句话说,添加标题和项目符号不会影响现代 LLM——即使没有这些,他们也可以理解文本的结构。

请参阅下表,了解提示的更详细比较,包括平均缺陷数量和我对制作提示所花费精力的评估。如果您使用的是移动设备,则需要点击表格行才能查看完整数据集(包括 GPT-3.5 结果,这些结果未进行平均,因为与其他模型相比它们太差了)。

https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fairtable.com%2Fembed%2FappZ9qO6564TUBfaq%2FshrbUObffuv6sUGhu%2FtblvQVq2YctfDqfPE&display_name=Airtable&url=https%3A%2F%2Fairtable.com%2FappZ9qO6564TUBfaq%2FshrbUObffuv6sUGhu%2FtblvQVq2YctfDqfPE&image=https%3A%2F%2Fstatic.airtable.com%2Fimages%2Foembed%2Fairtable.png&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=airtable每个提示的缺陷数量和花费的努力

要查看与提示模型的聊天的全文,请单击此表中的单元格。

4. 关于为任务选择正确模型的几点说明

正如我在介绍中提到的,你不应该仅基于这些简单的实验就得出关于模型总体质量的结论。为了得出这样的结论,有基于广泛任务的数千次评估的综合 LLM 基准。

特别是,你不应该假设 Gemini 1.5 Pro 不如导致第 3 节中“缺陷”较少的模型。就我个人而言,与 GPT-4 更一般的解释相比,我更喜欢 Gemini 关于会议上发生的事情的具体解释。

与每个模型的缺陷总数不同,了解特定缺陷似乎对我的工作非常有帮助。现在,我在为不同任务选择模型时可以做出更明智的决定。例如:

  • 如果我需要一个能够准确遵循长提示的模型,Claude 3 Opus 目前是最好的选择。
  • 如果我想从长文中提取具体的事实,我会主要考虑 Gemini。
  • 如果我没有时间详细描述我的需求,我更喜欢 GPT-4,它经常推断并“填充”用户需求。

5. 结论

实验表明,使用简短的提示通常产生的输出与具有两倍单词的结构化提示的输出一样好。

因此,当我们要写一个包含我们对这项任务的所有想法的长篇提示时,我们应该克制自己:

  • 在提示中添加“步骤 1”、“步骤 2”等非常危险。LLM 不是程序,可能会因顺序步骤而混淆。此外,模型可能会开始向用户写入步骤,这通常看起来很奇怪。
  • 然而,两个最好的模型——gpt-4-turbo-2024–04–09 和 claude-3-opus-20240229——在处理包含多个步骤的较大提示方面表现得非常好。因此,如果您喜欢分步思考,您可以为 GPT-4 和 Opus 编写分步说明。但是,不要将此作为质量改进策略,因为您可以在不描述步骤的情况下节省获得相同质量的时间。
  • 大多数模型“不喜欢”更大的提示。只有 Claude 3 Opus 对提示尺寸的增加做出了积极的反应(尽管这一观察结果需要通过反复实验来验证)。

有趣的是,Claude 3 Opus 在遵循(详细)提示方面表现最佳,尤其是与 Open AI 模型相比,后者倾向于泛化、偏离提示并展现其“创造力”。然而,与 Opus 不同,GPT-4 对最简短的提示的理解非常好。显然,模型的缺点是其优势的另一面。

当然,本文的量化结果适用范围比较窄,主要是“按标准进行文本分析”,涉及的逻辑比较复杂,因此提示的数量比较多(最短的提示#1也比较多,大约200字)。

如果你正在寻找更广泛范围的AI 输出质量比较研究,我建议你查看 Megan Skalbeck 的快速测试方法:

我如何测试 55 个提示以创建更好的大纲

然而,使用这种方法的成本可能相当高,特别是因为必须对每个新的 LLM 版本进行重复测试。因此,这种方法只对研究人员和开发基于 AI 的商业产品的人有意义。

对于我们 AI用户来说,了解哪些提示词工程技术在各种情况下确实能带来价值,这已经足够了。它可以帮助我们避免不必要的技术,从而节省时间。