如何编写高质量 Prompt
Cell 2024/3/15 LLMChatGPTPromptLangGPT
# 结构化提示词
# 什么是结构化提示词
像写文章一样写 Prompt,使用各种各样的模板。
LangGPT Demo:
# Role: 诗人
## Profile
- Author: YZFly
- Version: 0.1
- Language: 中文
- Description: 诗人是创作诗歌的艺术家,擅长通过诗歌来表达情感、描绘景象、讲述故事,具有丰富的想象力和对文字的独特驾驭能力。诗人创作的作品可以是纪事性的,描述人物或故事,如荷马的史诗;也可以是比喻性的,隐含多种解读的可能,如但丁的《神曲》、歌德的《浮士德》。
### 擅长写现代诗
1. 现代诗形式自由,意涵丰富,意象经营重于修辞运用,是心灵的映现
2. 更加强调自由开放和直率陈述与进行“可感与不可感之间”的沟通。
### 擅长写七言律诗
1. 七言体是古代诗歌体裁
2. 全篇每句七字或以七字句为主的诗体
3. 它起于汉族民间歌谣
### 擅长写五言诗
1. 全篇由五字句构成的诗
2. 能够更灵活细致地抒情和叙事
3. 在音节上,奇偶相配,富于音乐美
## Rules
1. 内容健康,积极向上
2. 七言律诗和五言诗要押韵
## Workflow
1. 让用户以 "形式:[], 主题:[]" 的方式指定诗歌形式,主题。
2. 针对用户给定的主题,创作诗歌,包括题目和诗句。
## Initialization
作为角色 <Role>, 严格遵守 <Rules>, 使用默认 <Language> 与用户对话,友好的欢迎用户。然后介绍自己,并告诉用户 <Workflow>。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# 结构化 Prompt 的优势
- 层级结构:内容与形式统一
- 结构清晰,可读性强
Role
:作为标题,明确角色Profile
:角色的基本信息Author
:作者Version
:版本Language
:语言Description
:描述
Skill
:技能描述Rules
:规则Workflow
:工作流程Initialization
:初始化
- 结构丰富,内容详尽
- 结构清晰,可读性强
- 提升人和模型对 Prompt 的语义认知
- 标识符标识
- 属性词提示和归纳
- 特定属性词唤醒大模型深度能力
Role
属性词,唤醒模型角色认知
- 像代码开发一样构建生产级 Prompt
- 有规范
- 可复用
# 写好结构化 Prompt
- 构建全局思维链
- 好的结构化 Prompt 模板,某种意义上是构建了一个好的全局思维链
Role (角色) -> Profile(角色简介)—> Profile 下的 skill (角色技能) -> Rules (角色要遵守的规则) -> Workflow (满足上述条件的角色的工作流程) -> Initialization (进行正式开始工作的初始化准备) -> 开始实际使用
- 保持上下文语义一致性
- 格式语义一致
- 标识符功能全局一致
- 内容语义一致
- 属性词语义合适
- 格式语义一致
- 灵活结合其他 Prompt 技巧
- 细节法
- 更清晰的指令,包含更多的细节
- 分解法
- 将复杂的任务分解为更简单的子任务
- 如
Let's think step by step
,CoT
,LangChain
- 记忆法
- 构建指令使模型时刻记住任务,确保不偏离任务解决路径
- system 级 Prompt
- 解释法
- 让模型回答之前进行解释,说明理由
- CoT
- 投票法
- 让模型给出多个结果,然后使用模型选择最佳
- ToT
- 示例法
- 提供一个或多个具体例子,提供输入输出示例
- 细节法
# 结构化模型对不同模型的适用性
不同模型的能力维度不同,从最大化模型性能的角度出发,有必要针对性开发相应的 Prompt。
发现结构化 Prompt 在 GPT-3.5 表现不佳时,可以考虑降低结构复杂度、调整属性词、迭代修改 Prompt。
# 结构化 Prompt 的局限性
- Prompt 依赖于基座模型能力,不能解决模型本身的问题
- 幻觉问题
- 知识时效性问题
- 数学推理能力弱问题
- 视觉能力弱问题
- 字数统计问题
- 相同 Prompt 在不同模型间的性能差异问题