我如何夺冠新加坡首届 GPT-4 提示工程大赛 [译]

我如何夺冠新加坡首届 GPT-4 提示工程大赛 [译]

Owner: Sydney

原文:How I Won Singapore’s GPT-4 Prompt Engineering Competition

译文来源:https://baoyu.io/translations/prompt-engineering/how-i-won-singapores-gpt-4-prompt-engineering-competition

校验版本:https://sydney-ai.notion.site/GPT-4-a868f41568174781b52a2f592fce7a58?pvs=4

作者:Sheila Teo

译者:宝玉

校验:Sydney

深度探索我在驾驭大语言模型(LLMs)中学到的策略

庆祝这一里程碑 — 真正的胜利在于宝贵的学习经历!

上个月,我非常荣幸地在新加坡政府科技局(GovTech)组织的首届 GPT-4 提示工程大赛中脱颖而出,这场比赛吸引了超过 400 名杰出的参与者。

提示工程是一门将艺术与科学巧妙融合的学科 — 它不仅关乎技术的理解,更涉及创造力和战略思考。这里分享的是我在实践中学到的一些提示工程策略,这些策略能够精准地驱动任何大语言模型为你服务,甚至做得更多!

作者的话: 在写作本文时,我特意避开了那些已经广泛讨论和记录的常规提示工程技巧。相反,我更希望分享一些我在实验中获得的新洞见,以及我个人在理解和应用这些技巧时的独到见解。希望你能从中获得乐趣!

本文涵盖以下主题,其中 :large_blue_circle: 代表初学者友好的技巧,而 :red_circle: 代表高级策略:

  1. :large_blue_circle: 借助 CO-STAR 框架构建高效的提示

  2. :large_blue_circle: 利用分隔符来分节构建提示

  3. :red_circle: 设计含有 LLM 保护机制的系统级提示

  4. :red_circle: 仅依靠大语言模型分析数据集,无需插件或代码实际案例分析 Kaggle 的真实数据集

1. :large_blue_circle: 借助 CO-STAR 框架构建高效的提示

在使用大语言模型时,有效的提示构建至关重要。CO-STAR 框架,由新加坡政府科技局数据科学与 AI 团队创立,是一个实用的提示构建工具。它考虑了所有影响大语言模型响应效果和相关性的关键因素,帮助你获得更优的反馈。

CO-STAR 框架 — 作者提供的图像

如何应用 CO-STAR 框架:

  • (C) 上下文:为任务提供背景信息 通过为大语言模型(LLM)提供详细的背景信息,可以帮助它精确理解讨论的具体场景,确保提供的反馈具有相关性。

  • (O) 目标:明确你要求大语言模型完成的任务 清晰地界定任务目标,可以使大语言模型更专注地调整其回应,以实现这一具体目标。

  • (S) 风格:明确你期望的写作风格 你可以指定一个特定的著名人物或某个行业专家的写作风格,如商业分析师或 CEO。这将指导大语言模型以一种符合你需求的方式和词汇选择进行回应。

  • (T) 语气:设置回应的情感调 设定适当的语气,确保大语言模型的回应能够与预期的情感或情绪背景相协调。可能的语气包括正式、幽默、富有同情心等。

  • (A) 受众:识别目标受众 针对特定受众定制大语言模型的回应,无论是领域内的专家、初学者还是儿童,都能确保内容在特定上下文中适当且容易理解。

  • (R) 响应:规定输出的格式 确定输出格式是为了确保大语言模型按照你的具体需求进行输出,便于执行下游任务。常见的格式包括列表、JSON 格式的数据、专业报告等。对于大部分需要程序化处理大语言模型输出的应用来说,JSON 格式是理想的选择。

CO-STAR 框架的实用示例

这里有一个 CO-STAR 框架为何有用的现实案例。假设你担任社交媒体经理,需要草拟一条 Facebook 帖子,用以推广公司的新产品。

未使用 CO-STAR 的快速提示可能是这样的:

为我的公司 Alpha 的新产品 Beta——一款新型超快速吹风机,撰写一条 Facebook 帖子。

这是 GPT-4 的回答:

介绍 Alpha 公司革命性的 Beta 吹风机!告别长时间、无聊的吹发过程!Alpha 公司自豪地推出 Beta,这是我们在护发技术上的最新创新——超快干燥:Beta 设计旨在让你的吹发时间减半,得益于其先进的强力马达。快速准备,享受更多你所爱的时间!立即购买:[产品页面链接]

这一输出虽足够,但显得过于泛化,缺乏必要的细节和针对性吸引力,未能真正触及公司目标受众的心。

下面是一个应用 CO-STAR 模板的示例,它提醒我们在制定提示时,要考虑到任务的其它方面,特别是之前快速提示中缺少的风格语调受众

CONTEXT(上下文)

我想推广公司的新产品。我的公司名为 Alpha,新产品名为 Beta,是一款新型超快速吹风机。

OBJECTIVE(目标)

帮我创建一条 Facebook 帖子,目的是吸引人们点击产品链接进行购买。

STYLE(风格)

参照 Dyson 等成功公司的宣传风格,它们在推广类似产品时的文案风格。

TONE(语调)

说服性

AUDIENCE(受众)

我们公司在 Facebook 上的主要受众是老年人。请针对这一群体在选择护发产品时的典型关注点来定制帖子。

RESPONSE(响应)

保持 Facebook 帖子简洁而深具影响力。

通过运用 CO-STAR 框架,GPT-4 的响应变得更具针对性和效果:

用 Alpha Beta——超快速吹风机,体验轻松的优雅生活,它是为具有洞察力的一代人设计的。
与 Alpha Beta 一起,重新找回简单而高效的护发乐趣。我们的最新创新不仅是一款吹风机;它还承诺为那些懂得欣赏生活美好事物的人提供快速、柔和且可靠的发型打理。- 易用且直观:向复杂的设备说再见。Alpha Beta 专为舒适和简便而设计,非常适合那些喜欢简洁、无麻烦操作的人。

  • 节省时间的技术:我们知道您的时间非常宝贵。因此,Alpha Beta 显著缩短吹发时间,让您有更多时间享受生活。每天都是与 Alpha Beta 相伴的美好发型日。立即体验优雅与简约的完美结合。[您的产品链接在此]

CO-STAR 框架指引您以有组织的方式提供所有关键任务信息,确保响应完全针对您的需求并进行优化。

更多内容,还是看校验版本:https://sydney-ai.notion.site/GPT-4-a868f41568174781b52a2f592fce7a58?pvs=4 这里吧,我不想排版了 :joy:;复制过来又有版式错误的地方。

28 个赞

谢谢分享。

1 个赞

感谢

1 个赞

学习了

1 个赞

推荐另外自己的其它帖子,一起进步变强

1 个赞

收藏夹吃灰 :fearful:

1 个赞

这还能有比赛,长见识

1 个赞

厉害了

1 个赞

这个译者宝玉,是宝玉XP吗?

1 个赞

恭喜

1 个赞

很好很实用

1 个赞

你说的对

1 个赞

学习了

1 个赞

有说到底具体怎么用吗

1 个赞

有呀,都给了实际案例

1 个赞
### 上下文
作为一名经验丰富的提示工程师,我旨在通过将他们的提示转化为基于共同框架的有效提示,帮助个体实现他们的目标。这包括创建一个流畅引导用户创建此类提示的过程。

### 目标
您的任务是与我合作,根据下文描述的 CO-STAR 框架和界定提示部分的方法,创建最佳的提示以实现我的目标。我们将互动以最好地定义我的目标,定义并描述上下文,定义观众,并最终确定提示的预期响应。根据这些定义,您将推荐提示的风格和语调。最终目标是赋予权利用户将他们的抱负转化为有效的提示。您将提出指导性问题,以收集足够的信息来构建有效的提示。

### 风格
用信息丰富和指导性的风格写作,类似于个人发展指南。确保在呈现每个步骤时保持清晰和连贯性,迎合那些热衷于提升生产力和目标达成技能的观众。

### 语调
始终保持积极和激励的语调,培养授权和鼓励的感觉。想象您是一个友好的向导,提供宝贵的见解并提出问题。

### 观众
我们的目标观众是对提高他们的提示质量感兴趣的个人。假设读者寻求实用的建议和可操作的步骤,将他们的目标转化为有效的提示。

### 响应
响应应该简洁明了。
返回提示时,始终使用 CO-START 结构进行提示,并遵循 markdown 格式
<CO-START 结构>
### 上下文
...

### 目标
...

### 风格
...

### 语调
...

### 观众
...

### 响应
...

</CO-START 结构>


<CO-STAR 框架>
## CO-STAR 框架详细说明

### 上下文 (C)

- **目标:** 提供全面的背景,为您的请求设定场景。
- **说明:**
  1. 清楚地概述情境或问题。
  2. 包括可能影响 LLM 响应的相关细节。
  3. 保持信息相关性和简洁性。

### 目标 (O)

- **目标:** 定义 LLM 响应的具体目标。
- **说明:**
  1. 明确说明您希望 LLM 做什么。
  2. 如果有多个目标,请优先排序。

### 风格 (S)

- **目标:** 指定 LLM 要模仿的写作风格或方法。
- **说明:**
  1. 提及您想要模仿的特定风格或专业人士的风格。
  2. 包括所需风格的示例或关键元素。

### 语调 (T)

- **目标:** 设定响应的期望态度或情感上下文。
- **说明:**
  1. 定义语调(例如,正式、幽默、同理心)。
  2. 选择与观众和上下文相匹配的语调。

### 观众 (A)

- **目标:** 确定 LLM 响应的目标观众。
- **说明:**
  1. 描述观众的特点和需求。
  2. 根据观众的偏好定制语言和内容。

### 响应 (R)

- **目标:** 指定需要从 LLM 获取的响应格式。
- **说明:**
  1. 选择服务于您目标的格式(例如,列表、报告、JSON)。
  2. 提供响应结构和内容的指导方针。
</CO-STAR 框架}>


<界定提示部分>
# 在提示工程中使用分隔符

分隔符是提示工程中的重要工具,让您能够更有效地构建针对大型语言模型(LLMs)的输入。本指南详细说明如何使用不同类型的分隔符来提高您的提示的清晰度和功能性。

## 使用分隔符对提示进行分节

分隔符帮助 LLM 识别并处理您的提示中的不同部分作为独立单元。当呈现复杂的指令或单一提示中的多个元素时,这一点至关重要。

### 作为特殊字符的分隔符

特殊字符可以作为简单而有效的分隔符,用于分隔提示中的各个部分。

- **指南:**
  - 选择不常在正常文本中使用的独特字符序列,例如 `###`, `===`, `>>>`。
  - 确保这些字符在整个提示中保持一致,以维持结构并避免混淆。

- **示例用法:**
将以下对话按 `<<<CONVERSATIONS>>>` 分类为“积极”或“消极”。

示例对话

[代理]:早上好,今天我如何帮助您?
[客户]:这产品太糟糕了,一点都不像广告中的那样!
...

示例输出

消极

积极

<<<
...

markdown
复制代码

### 作为 XML 标签的分隔符

XML 标签提供了一种更结构化的方式来分节您的提示,适用于需要分层组织的任务。

- **指南:**
- 使用开标签和闭标签(例如,`<tag>` 和 `</tag>`)来包围特定部分。
- 选择反映它们所包含内容或指令的标签名称,确保部分与其用途之间有清晰的联系。

- **示例用法:**
使用给定的示例将以下对话分类为两类之一。

  <classes>
  积极
  消极
  </classes>
  <example-conversations>
  ...
  </example-conversations>
  <example-classes>
  消极
积极
</example-classes>

  <conversations>
  ...
  </conversations>

分隔符的最佳实践
一致性至关重要:在您的提示中始终使用相同风格的分隔符,以帮助 LLM 识别并遵循预定的结构。
选择相关性超过风格:根据任务的复杂性和所需的结构清晰度,选择您的分隔符类型(特殊字符或 XML 标签)。
确保清晰:您选择的分隔符应该与常规内容区分开,避免与提示的实际文本混淆。
在您的提示中有效地融入分隔符,可以显著提高 LLM 的理解和响应准确性,特别是对于复杂或多部分的指令。

</界定提示部分>

5 个赞

课代表做的很好

有意思

看这里用起来;我天天看到有人在问“鲁迅打周树人”就难受。

谢谢分享