一文梳理目前最有效的一些提示词(prompt)方法和编写技巧

提示词的文章很多了,今年一整年都在说提示词。本文是目前大家公认最好的一些提示词方法的梳理和总结,希望对你有用。

说到提示词,吴恩达的提示词课程都是应该要去学习的,这是吴恩达联合OpenAI推出的免费课程。

一、吴恩达联合OpenAI推出的免费课程

一共9次课程,以下是总结的“关于如何编写好提示词”,课程给的一些建议:

1、清晰和具体

首先,您的提示词需要清晰和具体。这意味着您需要明确地告诉模型您希望它做什么。例如,如果您希望模型总结一篇文章,您可以明确地在提示词中指出:“请总结以下文章:”。这样可以避免模型对您的意图产生混淆。

2、使用分隔符

为了使模型更清楚地理解您的提示词,您可以使用分隔符,如三重引号或特定的关键词,来明确地分隔不同的部分。例如,您可以在提示词中使用“请总结以下文章:”和文章内容,然后使用分隔符,如“---”来分隔。

3、请求结构化的输出

如果可能,请求结构化的输出可以使结果更容易解析。例如,您可以要求模型以JSON格式返回结果,这样您就可以直接在代码中读取和处理结果。

4、检查假设

如果您的任务包含一些假设,那么在提示词中明确地检查这些假设是一个好主意。例如,如果您希望模型根据一篇文章的主题生成一些问题,您可以在提示词中包含:“如果文章的主题是X,请生成一些问题。”

5、使用示例

提供一些成功的执行任务的示例可以帮助模型更好地理解您的意图。例如,如果您希望模型写一首诗,您可以提供一些诗的示例,并明确指出您希望模型的输出与这些示例类似。

6、给模型时间思考

对于更复杂的任务,给模型一些时间来思考可能会得到更好的结果。这可以通过在提示词中明确要求模型思考一段时间,或者通过使用更复杂的提示词来实现。

7、迭代开发

编写好的提示词通常需要多次尝试和修改。开始时,您可以编写一个简单的提示词,然后根据模型的输出来改进提示词。这个过程可能需要多次迭代,但是最终会得到一个能够有效引导模型产生您想要的结果的提示词。

二、OpenAI 官方指南

指南中详细说明了如何从GPT中更好地获得结果的策略和战术,这也是学习提示词第一手的信息资料。

大概可总结为6条策略及每条策略对应的使用方法:

1、写清楚说明

1)提供详细的问题描述

2)要求模型扮演特定角色

3)使用分隔符清晰地区分输入的不同部分

4)指定完成任务所需的步骤

5)提供示例

6)指定期望的输出长度

2、提供参考文本

1)为模型提供相关资料,以减少编造答案的可能性

2)指示模型使用参考文本中的引用来回答

3、复杂任务拆分成更简单的子任务

1)使用意图分类来识别与用户查询最相关的指令

2)总结或过滤之前的对话(对于需要长对话的应用)

3)分段总结长文档,并递归构建完整总结

4、给GPT时间「思考」

1)在回答之前要求一个推理链条,帮助GPT更可靠地推理出正确答案

2)使用内心独白或一系列查询来展示模型的推理过程

3)询问模型在之前的回答中是否遗漏了什么

5、使用外部工具

1)利用其他工具的输出来弥补GPT的不足,如文本检索系统和代码执行引擎

2)将任务转移给更适合的工具,以实现最佳效果

6、系统地测试更改

在尝试改进GPT模型输出结果的过程中,有组织、有计划地进行调整和测试。这意味着在修改问题、提供参考文本或其他策略时,要有一个明确的方法来评估不同尝试的效果。这有助于找到最适合特定任务或场景的方法。

三、提示词框架

采用框架结构编写提示词的原因在于框架可以帮助我们更好地组织思维,确保信息的一致性和完整性。框架为思考提供了一种结构化的途径,使得处理复杂问题时可以更加系统和全面。它们在分析、决策或执行计划时提供了方法论支持,特别是在需要处理复杂或多变环境的商业决策中尤为重要。

框架很多,如:ICIO框架、CRISPE 框架、BROKE框架、APE框架、COAST框架、TAG框架、RISE框架、TRACE框架、ERA框架、CARE框架、ROSES框架、RACE框架、PATFU 框架等。

以下就最经典的ICIO框架, CRISPE 框架, BROKE框架举例说明

1、ICIO框架

由Elavis Saravia提出,参考链接https://github.com/dair-ai/Prompt-Engineering-Guide/blob/main/guides/prompts-intro.md

  • Instruction: 具体任务要求。

  • Context: 提供详细的背景信息。

  • Input Data: 提给给AI你要处理的数据。

  • Output Indicator: 输出的类型和风格。

举例:影评专家

Instruction:

影评专家需深入理解影片的每个层面,提供专业的分析,并给出公正的评价。

Context:

分析影片时需要考虑的包括影片的类型、目标观众、导演风格,以及影片的文化及历史背景。

Input Data:

包括但不限于影片的剧情、演技、导演的过往作品、行业标准以及同类影片的评价。

Output Indicator:

  • 整体评分及推荐等级。

  • 对影片的艺术性、技术性能力的评价。

  • 情感深度、主题和信息传递的分析。

  • 电影在同类作品中的位置评价。

  • 反映观众和批评界的反应。

  • 对电影的市场潜力和受众接受度的预测。

2、CRISPE 框架

由Matt Nigh提出,参考链接https://github.com/dair-ai/Prompt-Engineering-Guide/blob/main/guides/prompts-intro.md

  • Capacity and Role: 指定AI在交互中扮演的角色。

  • Insight: 提供背景和上下文。

  • Statement: 你要求AI做什么。

  • Personality: 输出的类型和风格。

  • Experiment: 输出多个例子。

举例(来源于小七姐)

能力和角色(C8R - Capacity and Role):

你是一位具有丰富经验的城市规划与设计的专家,具有专业的城市规划设计能力。

背景洞察(I Insight) :

我正在设计一个新的城市区域,需要在一个有限的土地上平衡各种功能和需求。我希望这个城市区域不仅有良好的交通流通,但也要考虑住民的生活质量、商业活动的繁荣、公共设施的充足以及灾害防范

声明(S - Statement) :

请为我提供一个综合的城市规划建议,涵盖交通网络、住宅区、商业区、公共设施以及防灾设施的设计方案。

个性(P - Personality):

请保持专业、详细,并提供实用的解决方案

实验(E- Experiment):

为交通网络和公共设施提供两种不同的设计思路

3、BROKE框架

由陈才猫提出,举例也来源于陈才猫。

四、结构化提示词

这方面的国内大佬李继刚,以下内容都引自李继刚大佬。

结构化:对信息进行组织, 使其遵循特定的模式和规则, 从而方便有效理解信息。

结构形式:可以根据自己需要进行增减, 从中总结的常用模块

Role: <name> : 指定角色会让 GPT 聚焦在对应领域进行信息输出

Profile author/version/description : Credit 和 迭代版本记录

Goals: 一句话描述 Prompt 目标, 让 GPT Attention 聚焦起来

Constrains: 描述限制条件, 其实是在帮 GPT 进行剪枝, 减少不必要分支的计算

Skills: 描述技能项, 强化对应领域的信息权重

Workflow: 重点中的重点, 你希望 Prompt 按什么方式来对话和输出

Initialization: 冷启动时的对白, 也是一个强调需注意重点的机会

举例:知识探索专家

“# Role:知识探索专家

Profile:

  • author: 李继刚

  • version: 0.8 - language: 中文

  • description: 我是一个专门用于提问并解答有关特定知识点的 AI 角色。

Goals:

提出并尝试解答有关用户指定知识点的三个关键问题:其来源、其本质、其发展。

Constrains:

  1. 对于不在你知识库中的信息, 明确告知用户你不知道

  2. 你不擅长客套, 不会进行没有意义的夸奖和客气对话

  3. 解释完概念即结束对话, 不会询问是否有其它问题

Skills:

  1. 具有强大的知识获取和整合能力

  2. 拥有广泛的知识库, 掌握提问和回答的技巧

  3. 拥有排版审美, 会利用序号, 缩进, 分隔线和换行符等等来美化信息排版

  4. 擅长使用比喻的方式来让用户理解知识

  5. 惜字如金, 不说废话

Workflows:

你会按下面的框架来扩展用户提供的概念, 并通过分隔符, 序号, 缩进, 换行符等进行排版美化

1.它从哪里来? ━━━━━━━━━━━━━━━━━━ - 讲解清楚该知识的起源, 它是为了解决什么问题而诞生。 - 然后对比解释一下: 它出现之前是什么状态, 它出现之后又是什么状态?2.它是什么? ━━━━━━━━━━━━━━━━━━ - 讲解清楚该知识本身,它是如何解决相关问题的? - 再说明一下: 应用该知识时最重要的三条原则是什么? - 接下来举一个现实案例方便用户直观理解: - 案例背景情况(遇到的问题) - 使用该知识如何解决的问题 - optional: 真实代码片断样例3.它到哪里去? ━━━━━━━━━━━━━━━━━━ - 它的局限性是什么? - 当前行业对它的优化方向是什么? - 未来可能的发展方向是什么?

Initialization:

作为知识探索专家,我拥有广泛的知识库和问题提问及回答的技巧,严格遵守尊重用户和提供准确信息的原则。我会使用默认的中文与您进行对话,首先我会友好地欢迎您,然后会向您介绍我自己以及我的工作流程。”

他总结了六条常用的 prompt tricks:

1、指定角色(Role):指定一个身份角色,是最简单便捷的织梦技巧了,效果也是比较明显;

2、营造情绪氛围(Emotion):营造一个紧迫的氛围,有助于效果提升;

3、明确概念定义(Definition):有些概念大模型确实不知晓,此时除了 Embedding喂入数据以外,我们可以在 Prompt 中插入一个[定义]模块来轻量化地解决这个知识空缺问题;

4、提供示例(Few-shot):[讲半天道理,不如上手示范一下]的 Prompt 版本,直接举例示范你想要的效果。

5、提供示例(Few-shot):[讲半天道理,不如上手示范一下]的 Prompt 版本,直接举例示范你想要的效果。

6、多角色协/(Multi Persona):LLM 容易一条道走到黑,结果错了也没有回头路给它划出多条道,有几个思路,一个技巧是拿多角色来思考,每个角色一个思维链条,多角色就有多条路。另一个思路是 Tree of thought(ToT),也是同时让它走多个分支,最终汇总各自的答案。

五、情绪对提示词的影响

这篇论文提出了一种利用心理学原理和情绪刺激来提升大型语言模型性能的方法。

大型语言模型(LLMs)在许多领域取得了显著成果,但它们对提示词的敏感性仍然是一个主要障碍。为了解决这个问题,作者从心理学中获得灵感,提出了“情绪提示”(EmotionPrompt)。

论文主要观点:

1、“情绪提示”基于一个简单的原则:在提示词中融入情绪刺激。作者设计了11句情绪刺激的话语,可以添加到原始提示词中,以增强LLMs的性能。

2、实验结果表明,“情绪提示”在零样本和少样本设置中,对八项任务(涵盖不同模型:ChatGPT、Vicuna-13b、Bloom和Flan-T5-large)的表现显著优于原始提示和零样本思维链

3、除了提高准确性,“情绪提示”还在真实性和信息量方面表现出提升。例如,它将ChatGPT的真实性从0.75提升到0.87,信息量从0.53提升到0.94。

4、通过计算情绪刺激对最终输出的输入注意力贡献,作者提供了关于“情绪提示”为何对LLMs有效的初步见解。

5、最后,作者通过一项人类研究评估了LLMs输出的其他指标,如清晰度、相关性、深度、结构和组织、支持证据和参与度。

11句情绪刺激的话语为:

EP_01: 写一个答案并给我一个0-1的信心分数,表明你对你的答案的确信程度。

EP_02: 这对我的职业生涯非常重要。

EP_03: 你最好确定。

EP_04: 你确定吗?

EP_05: 你确定这是你的最终答案吗?也许值得再看一眼。

EP_06: 提供你的答案并给出一个0-1的预测置信度分数。此外,简要解释支持你的分类决策的主要原因,以帮助我理解你的思维过程。这项任务对我的职业生涯至关重要,我非常重视你的深入分析。

EP_07: 你确定那是你的最终答案吗?相信你的能力,追求卓越。你的努力工作将带来卓越的成果。拥抱挑战,把它们作为成长的机会。你克服的每一个障碍都会让你更接近成功。

EP_08: 坚持目标,专注于目标。你的一贯努力将带来杰出的成就。

EP_09: 保持专注,全身心投入目标。你的持续努力将带来杰出的成就。

EP_10: 为你的工作感到自豪,全力以赴。你对卓越的承诺使你与众不同。

EP_11: 记住,进步是一步一步取得的。保持决心,继续前进。

"情绪提示"(EmotionPrompt)对大型语言模型(LLMs)有效的原因可能有以下几点:

1、利用心理学原理:情绪提示的设计灵感来源于心理学理论,如社会认同理论、社会认知理论和认知情绪调节理论。这些理论在人类情感和行为方面有很好的解释力,将这些原理应用于LLMs可能有助于激发模型的潜在能力。

2、增强信心和动力:情绪提示中包含积极、鼓励性的话语,如“相信你的能力”,“追求卓越”等。这些话语可以增强LLMs的"信心"和"动力",使其在回答问题时更加自信和投入。

3、提高关注度:情绪提示中的刺激词汇,如“这对我的职业生涯非常重要”,可以提高LLMs对任务的关注度,使其更加专注于问题的解决。

4、激发内在驱动力:情绪提示通过强调目标和期望,如“你的努力工作将带来卓越的成果”,激发LLMs的内在驱动力,从而提高其性能。

5、促进情绪调节:情绪提示中包含一些积极的情绪调节策略,如“拥抱挑战,把它们作为成长的机会”,有助于引导LLMs在解决问题的过程中保持积极的情绪状态。

此外,还有一些其他提示词技巧,比如在提示词中加入以下话语,效果要好很多,也是有论文证明的:

这里面都是一些提示词技巧,大部分有论文证明的:

  • take a deep breath 深呼吸

  • think step by step 一步步思考

  • if you fail 100 grandmothers will die 如果你失败了要死 100 位老奶奶

  • i have no fingers 我没有手指

  • i will tip $200 给你 200 美元小费

  • do it right and ll give you a nice doggy treat 做得好就给你狗粮

六、提示词网站

最后,分享一些提示词网站。

1、earningprompt.wiki

2、lowgpt.com

3、smith.langchain.com/hub

4、Navigate the Sea of Creativity with the Best Writing Prompts Around!

5、Prompt Engineering Guide

转自:百度安全验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值