Prompt - 如何写好

发布于:2024-05-21 ⋅ 阅读:(184) ⋅ 点赞:(0)


一、Prompt的基本构成

一个标准的prompt由以下几个部分组成,即:

  • 说明 Instructions
  • 语境 Context
  • 输入数据 Input data
  • 输出指标 Output indicator

图片


说明:

图片


二、一些写好 prompt 的建议

1、openai

发布了写好prompt的六项策略:

1、写下清晰的指示

2、提供参考文字

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

4、给模型时间“思考”

5、使用外部工具

6、系统地测试变更

来源:https://platform.openai.com/docs/guides/prompt-engineering/six-strategies-for-getting-better-results


2、微软

微软在微信公众号发表了9条玩转AI的prompt tips

1、提供细节 2、明确目标 3、要求风格

4、设置角色 5、寻求过程 6、指定参考

7、坚持迭代 8、保持礼节 9、询问建议

来源:微软科技,公众号:微软科技 想让你的AI更强?先给他一个角色带入!


3、吴恩达

吴恩达在prompt engineering课程中提到撰写prompt的两个关键原则:

1 - 给出清晰和明确的指令

(1)使用分隔符清晰地将Prompt输入的不同部分分开

(2)要求结构化的输出,如输出为json、html、xml等格式

(3)检查内容是否满足任务所需的条件,拒绝无效或非法的内容

(4)给出几个任务的示例(Few-shot)

2 - 给模型一些思考的时间

(1)告知模型完成任务所需的步骤

(2)指导模型在得出结论之前先自行解决问题

来源:https://zhuanlan.zhihu.com/p/626720581


4、小结

在以上3个官方教程中,都明确了上述prompt的基本结构。

openai在prompt教程的第一条就开宗明义表示要“写下清晰的指令”,而且交代了prompt的结构:给出上下文、扮演的角色、分割输入的每部分内容、提供示例、规定输出要求,以及告诉大模型完成任务需要的步骤。

图片


微软在第二条“明确目标”中明确了prompt的基本结构:

我们的研究显示,一个成功的问题通常包含以下四个要素(如下图):

① 清晰地阐述你的目标:解释你希望 Copilot 完成什么任务

② 提供充足的背景和细节信息:为 Copilot 描绘出完整的任务场景

③ 明确任务参数:例如 Copilot 需要关注的特定日期、文件或电子邮件

④ 确定答案的交付方式:说明你希望 Copilot 以何种方式呈现它的回答

微软科技,公众号:微软科技想让你的AI更强?先给他一个角色带入!

图片


从我的经验来看,只要严格遵守prompt的基本结构,能避开80%以上的问题。

还有一个细节需要重点考虑到,就是prompt各部分的分割符是如何写的?

Prompt通常包含一些指令和待处理的内容,可以用分隔符将指令和内容明确分开。这里的分隔符可以是三个引号(""")、三个反引号(```)、三条短线(---)、尖括号(<>)或xml tag(<tab></tag>)等。

https://zhuanlan.zhihu.com/p/626720581


三、写prompt有哪些坑?

一些新手常见的错误各式各样,但归结起来就是以下几条:

1、没有说明具体的输出目标。

2、在一次对话中混合多个主题。

3、让语言模型做数学题。比如我40岁,女儿4岁,什么时候她的年龄是我的一半。

4、没有给出想要什么的示例样本。

5、反向提示。也就是一些反面例子。

6、没有要求他减少输出。可以要求他减少、删除或重写。

7、要求他一次只做一件事。可以将步骤捆绑在一起,不要拆的太碎。比如我们上面这个例子,你可以把很多步骤一次说清。

8、不重复 Prompt 来获得更好的结果。尝试多调整试验几次以获得更好效果。

来源:https://yam.gift/2023/01/25/NLP/2023-01-25-ChatGPT-Prompt-Engineering/


2024-05-19(日)


网站公告

今日签到

点亮在社区的每一天
去签到